[AWS] EC2 / 배치그룹 / 최대 절전 중지 방식
EC2는 흔히 생각하는 가상 서버이다.
- OS, CPU Core, Memory, Disk, Network 등을 필요에 따라 설정 가능한 가상 서버
- 프리티어 등급에서는 t2.micro(1 CPU Core, 1 GB Memory 등)을 무료로 사용 가능
1. EC2 인스턴스 생성
- EC2 인스턴스 생성에 관한 글은 구글에 살짝 검색하면 멋진 글들이 많아서 생략
2. EC2 인스턴스 정보
- 인스턴스 목록에서 인스턴스 ID를 클릭하면 상세 정보 확인 가능
* Public IP: 외부에서 해당 인스턴스와 통신할 수 있는 IP
=> 인스턴스 중지 시 IP 변경됨(정적 할당한 경우는 아니겠지만..)
* Private IP: AWS 네트워크 내에서 해당 인스턴스와 통신할 수 있는 IP
=> 인스턴스 중지해도 IP 변경 없음
* 인스턴스 플랫폼
* 사용하는 Key Pair
* 설정되어 있는 보안 그룹 등
3. 배치그룹
ㅇ EC2 배치그룹(Placement Groups)이란?
- EC2가 AWS 인프라에 배치되는 방식을 제어
" AWS에 EC2 인스턴스가 어떻게 배치되길 원하는지 전달"
배치 그룹 유형
1) Cluster: 단일 가용 영역 내 지연 시간이 짧은 h/w 설정
- 높은 성능을 제공(10GB 속도의 네트워크 요구 등)
- 랙(H/W)에 문제가 생기면 모든 인스턴스가 동시에 죽음
- 배치 그룹 내 인스턴스가 동일한 랙에 존재(동일 h/w 및 동일 rack)
- 고성능 고위험(=> EX 빅 데이터 작업 = 짧은 지연 시간 / 높은 대역폭 )
2) Spread(분산): 인스턴스가 다른 h/w에 분산
- 배치 그룹 당 가용 영역에 최대 7개의 EC2 인스턴스까지 가질 수 있음(= 규모 제한 있음)
- 죽으면 안되는 가용성이 중요한 APP의 경우 분산 배치 그룹 사용
- 클러스터 배치 그룹과 완전 반대
- 모든 EC2 인스턴스가 각각 다른 H/W에 배치
- 여러 가용 영역, H/W에 배치되어 동시 실패 위험 최소화
3) Partition(분할): 여러 파티션에 인스턴스 분할 / 파티션은 가용 영역 내 다양한 Rack에 의존
- 인스턴스를 논리적 파티션에 분산하여 파티션에 있는 인스턴스가 다른 파티션의 인스턴스와 H/W를 공유하지 않음
ㄴ 파티션 갯수 = 사용하고 있는 Rack 갯수 (배치 그룹 내 파티션 끼리 동일한 하드웨어 사용 X)
- 가용 영역당 최대 7개의 파티션 사용 가능(최대 수 백개의 인시던트 구성 가능)
- Rack 실패에서 안전
- EC2 인스턴스가 어떤 파티션에 있는지 메타데이터 서비스 사용하여 정보 획득 가능
- 주로 HDFS, HBase, Cassandra, Kafka, Hadoop, Cassandra, Kafka 등 대규모의 분산 및 복제된 워크로드에 사용
[배치 그룹 생성]
- 좌측 메뉴 '네트워크 및 보안' - '배치 그룹' - '배치 그룹 생성'
- 이름, 배치 전략, 태그 등을 작성 후 그룹 생성
- 인스턴스에 배치 그룹 설정
* 배치 그룹 설정은 인스턴스를 생성할 때, 중지된 상태일 때 설정 가능
* 클러스터 배치는 t2.micro는 지원 불가
4. 최대 절전 중지 방식(Hibernate)
- EC2 인스턴스 중지 시, EBS(Root 볼륨/디스크 내 데이터)는 유지
- EC2 인스턴스 종료 시, EBS 사라짐
- EC2 인스턴스 시작 시, OS 부팅 시작 -> 사용자 데이터 스크립트 동작 -> APP 실행 -> 캐시 구성
ㄴ 이렇게 다시 시작하면 시간이 걸린다.
EC2 Hibernate가 설정되었다면 RAM에 있던 데이터(휘발성)를 보존 => 즉, 부팅이 더 빨라짐
ㄴ Hibernate는 OS를 완전 중지하거나 다시 시작하는 것이 아닌 잠시 멈춤이기에
ㄴ RAM 데이터를 root EBS 볼륨에 파일로 남겨둔다
* 조건: root EBS 볼륨은 반드시 암호화 / 볼륨 용량이 충분(남은 EBS > RAM) 해야함
=> 순서 RAM 메모리를 EBS에 덤프 -> 인스턴스 종료 시 RAM 증발 / EBS에 RAM 데이터 존재 -> 인스턴스 실행 시 디스크에서 RAM으로 데이터 로딩
사용하는 경우
- 장기간 실행중인 프로세스를 중지하지 않을 떄
- RAM 상태 저장하고 싶을 떄
- 빠른 재부팅 필요
- 서비스 초기화 시간 없이 절전 모드 전환하고 싶을때
Hibernate 특징
- 다양한 OS 지원, 모든 종류 인스턴스에 사용 가능
- RAM 크기 보다 큰 볼륨 필요
- Bare metal 인스턴스 사이즈는 지원 불가
- 루트 볼륨(즉 EBS)에만 저장 가능 / 암호화 필수 / 인스턴스 스토어 불가 / 충분한 크기
- 절전 모드를 유지할 수 있는 기간 존재
- 인스턴스 생성 시, '스토리지 고급 설정' - 충분한 크기(사진 속 인스턴스의 RAM은 1G), 암호화 설정
- '고급 세부 정보' - '최대 절전 중지 방식' 설정
EC2 인스턴스 구매 옵션 -> 오류 있을
수 있음
- 지금까지 사용한 인스턴스는 시간 단위로 비용이 발생
=> 예약 인스턴스(Reserved)를 사용하면 기간은 1년, 3년 장기간의 워크로드를 유지할 경우 좀 더 저렴하게 이용 가능
=> 전환형 예약 인스턴스(Convertible Reserved)은 시간이 지나면 인스턴스 타입을 변경하길 원하는 경우
=> 절약 플랜
- 기간은 1년 or 3년으로 특정 인스턴스 유형을 약정하는 게 아닌 달러 단위로 특정한 사용향을 약정하여 좀 더 현대적인 방식
=>스폿 인스턴스
- 아주 짧은 원크로드로 아주 저렴하나 인스턴스가 언제든 손실될 수 있어 신뢰성 낮음
=> 전용 호스트는 물리 서버 전체를 예약해서 인스턴스 배치를 제어할 수 있음
=> 전용 인스턴스는 다른 고객과 하드웨어 공유 X
=> 용량 예약은 원하는 기간 특정한 AZ에 용량 예약 가능
=?> EC2 On Demand
- 리눅스나 윈도우 사용시 1분 이후 초 단위로 청구가 이뤄짐
- 다른 os는 1시간 단위로 청구
- 비용이 가장 많이 들지만 바로 지불할 금액 x / 약정
- 단기적이고 중단 없는 워크로드 + APP의 트래픽을 예측 못할 때
=> 예약 인시턴스
온디맨드에 비해 72% 저렴
- 특정 인스턴스 속성 예약(인스턴스 타입, 리전, 테넌시, OS 등)
- 예약 기간을 1년 OR 3년(할인 더 만아)
- 결제는 부분 선결제, 선결제 없음, 전부 선결제(할인율 가장 큼)
- 특정한 리전이나 존(Zonal - 특정 AZ에 예약 용량)으로 선택 가능
- 사용량이 일정한 APP에 예약 인시턴스를 사용하는게 좋음
- 예약 인스턴스를 마켓 플레이스에서 구입 후 필요 없어지면 팔 수 있다.
=> 전환형 예약 인시턴스
- 인스턴스 타입, 인스턴스 패밀리, os, 범위, 테넌시 변경 가능
- 유연성이 더 커서 할인률은 조금 낮아짐
=> Ec2 절약 플랜(Saving Plan)
- 장기간 사용시 할인
- 1년 or 3년 동안 시간당 10달러로 약정
- 사용량이 한도를 넘어서면 온 디맨드 가격으로 청구
- 절약 플랜의 경우 특정한 인스턴스 패밀리, 리전 고정
- 인스턴스 사이즈나 os, 테넌시 등 전환 가능
=> 스팟 인스턴스(Spot)
- 할인률이 가장 큼
- 지불하려는 최대 금액 설정 후 그 금액을 넘어가면 인스턴스 손실
- AWS에서 가장 비용효율적인 인스턴스로 회복력이 있다면 유용
- 배치 작업 / 데이터 분석 / 이미지 처리 / 모든 종류의 분산형 워크로드 / 시작 OR 종료 시간이 유연한 워크로드
- 아주 중요한 작업이나 DB에는 적절치 않음
=> 전용 호스트
- 오직 나만을 위한 인스턴스 수용력을 가진 물리적 서버
- 컴플라이언스, 서버를 기준으로 할당되는 라이센스(소켓, 코어에 따라) 이슈를 해결
- 전용 호스트는 온디맨드 요금이나 1년 or 3년 예약 가능
- 실제 물리적 서버 예약하기에 가장 비싼 옵션
- raw level의 h/w 가시성 제공
=> 전용 인스턴스
- 오직 내 전용 하드웨어에서 실행되는 인스턴스
- 같은 계정에선 다른 인스턴스와 하드웨어 공유 가능하나 인스턴스 배치에 대한 통제권 없음
- 중지 / 시작 후 하드웨어 옮길 수 있음
=> EC2 수용력(Capacity) 예약
- 원하는 기간 동안 특정한 AZ에서 온디맨드 인스턴스를 예약
- 필요할 때마다 접근 가능
- 기간 약정은 없어서 언제든 용량을 예약하고 취소 가능
- 청구 할인 없음
- 용량을 예약하는게 유일한 목적
- 할인을 받으려면 지역별 예약 인스턴스나 절약 플랜과 결합 필요
- 예약을 해두면 인스턴스 실행 여부와 상관 없이 비용 청구
- 특정한 AZ에 있어야 하는 단기적이고 중단 없는 워크로드에 아주 적합합니다
<스팟 인스턴스>
=> 스팟 인스턴스는 최대 90& 까지 할인
=> 스팟 인스턴스는 정의된 가격을 초과하면 두 가지 선택 가능
1) 2분의 유예 기간이 있으며 인스턴스를 중지
2) 2분의 유예 기간 동안 인스턴스 회수X => 스팟 블록 사용
=> 스팟 블록은 지정된 기간 동안 스팟 인스턴스를 차단하는 것 / 회수 X 이나 드물게 회수 될 수도
'AWS' 카테고리의 다른 글
[AWS] EBS, 스냅샷, AMI, EFS (0) | 2024.04.02 |
---|---|
[AWS] IAM (0) | 2024.03.14 |
[AWS] MFA 적용 (0) | 2024.01.18 |
[AWS] Elastic IP, ENI (1) | 2023.10.10 |
[AWS] VPC 및 서브넷 생성 (0) | 2023.06.14 |