본문 바로가기

Compute/EC2

AWS Spot Instance 이해하기

AWS 스팟 인스턴스는 사전 약정 없이 On-demand 요금보다 70~90% 절감된 비용으로 사용할 수 있는 EC2 Instance(VM)이다.  시작하려는 인스턴스에 대해 현재 시간에 유효한 가격만 지불하면 된다.

 

주로 Batch Job 등 용도로 사용하는 서버에 잘 어울린다.

 

장점은 세 가지로 나열할 수 있다.

첫 번째, 용량 활용

EC2 스페어 용량의 수요와 공급량에 따라 가격이 결정되기 때문에 시장 중심의 낮은 가격으로 Amazon EC2의 안정성, 보안성, 성능, 제어 및 탄력성을 제공 받을 수 있다.

두 번째, 운영비용 절감

On-demand Instance와 비교하여 최대 70~90%의 운영 비용을 절감할 수 있다.

세 번째, 처리량 향상

상태 비저장 웹 서비스, 이미지 랜더링, 빅데이터 분석, 대량의 병렬 계산 등 애플리케이션을 실행하고 확장 가능하다.

 

스팟 인스턴스의 최대 가격 지정이 가능하다.

On-demand vs Spot 비용 비교

최고 가격 > 스팟 가격: 인스턴스 시작

최고 가격 < 스팟 가격: 인스턴스 종료

 

 

스팟 인스턴스는 애플리케이션에 따른 4가지 종류가 있다.

스팟 인스턴스 요청

각각의 타입은 아래 내용을 참고하자.

Load balancing workloads : 모든 가용영역에서 동일한 사이즈의 인스턴스 사용. 웹서비스에 적합.

Flexible workloads :  모든 AZ에서 모든 사이즈의 인스턴스 사용. 배치 와 CI/CD 작업에 적합

Big data workloads : 단일 AZ에서 여러사이즈의 인스턴스 사용. MapReduce 작업에 적합.

Defined duration workloads :  1~6시간 동안의 스팟 블록(지정된 지속시간) 인스턴스 사용.

 

스팟 인스턴스 사용 전략

스팟 인스턴스를 사용시 중단에 항상 대비 해야함

- 종료시 2분전에 경고하는 공지 제공

- 종료 공지를 이용하여 스팟 인스턴스의 상태를 모니터링

- 합리적인 입찰 가격 사용

- 예상치 못한 인스턴스 종료에 어플리케이션이 대처할 수 있도록 확인

- 스팟 인스턴스가 종료되어도 영향을 받지 않을 장소(S3, EBS)에 중요 데이터 정기 저장

 

스팟 인스턴스 중단 이유

- 가격 - 스팟 가격이 최고 가격보다 크다.

- 용량 - 미사용 EC2 인스턴스가 스팟 인스턴스의 수요를 충족할 만큼 충분하지 않으면 Amazon EC2에서 스팟 인스턴스를 중단한다. 인스턴스가 중단되는 순서는 Amazon EC2에서 결정된다.

- 제약 조건 - 요청에 시작 그룹 또는 가용 영역 그룹과 같은 제약 조건이 포함되는 경우 제약 조건을 더 이상 충족할 수 없으면, 이러한 스팟 인스턴스가 그룹으로 종료된다

 

참고

 

스팟 인스턴스 중단 - Amazon Elastic Compute Cloud

스팟 인스턴스 중단 스팟 인스턴스에 대한 수요는 매 순간 상당히 다를 수 있으며 스팟 인스턴스의 가용성도 사용 가능한 미사용 EC2 인스턴스의 양에 따라 상당히 달라질 수 있습니다. 스팟 인스턴스가 중단될 가능성은 항상 있습니다. 따라서 스팟 인스턴스 중단에 대비하여 애플리케이션을 준비해야 합니다. EC2 집합 또는 스팟 집합에 지정된 온디맨드 인스턴스는 중단할 수 없습니다. 서비스 중단의 이유 Amazon EC2에서 스팟 인스턴스를 중단시킬 수 있는 이

docs.aws.amazon.com

스팟 집합

스팟 집합은 스팟 인스턴스의 모음

스팟 인스턴스가 가격 또는 용량의 변경으로 중단될 경우 목표 용량 집합을 유지하려고 시도함

집합 할당 전략

- lowestPrice (최저가격)

최저 가격의 풀에서 스팟 인스턴스를 가져옴

기본 전략으로 최저가로 입찰 가능

-Diversified (다각화)

- 모든 풀에 분산해서 스팟 인스턴스를 가져옴

- 가용성 및 하나의 풀에서 발생하는 가격상승에 덜 민감해짐

- 온디맨드 가격보다 높은 가격의 풀에서는 시작하지 않음

 

참고

 

스팟 집합 작동 방식 - Amazon Elastic Compute Cloud

스팟 집합 작동 방식 스팟 집합은 스팟 인스턴스 및 온디맨드 인스턴스의 모음 또는 플릿입니다. 스팟 집합은 사용자가 스팟 집합 요청에서 지정한 목표 용량을 충족하는 데 필요한 수만큼 스팟 인스턴스 및 온디맨드 인스턴스를 시작하려고 합니다. 스팟 인스턴스에 대한 요청은 요청에 지정된 최대 가격이 현재 스팟 가격을 초과하고 사용 가능한 용량이 있으면 수행됩니다. 스팟 인스턴스가 중단될 경우 스팟 집합은 대상 용량 플릿을 유지하려고 시도합니다. 또한 플릿에 대

docs.aws.amazon.com

 

스팟 집합 요청

스팟 할당 전략은 아래 그림과 같이 두 가지가 있다.

스팟 집합 합당 전략
스팟 인스턴스 요청 정보

스팟 집합에서 온디맨드 용량을 채우려고 시도하는 경우 기본적으로 최저 가격의 인스턴스 유형을 먼저 시작한다.

예를 들어 서로 다른 인스턴스 유형인 c4.large, c5.large를 집합요청으로 설정하는 경우, 1개의 온디맨드를 포함한 총 목표 용량을 5로 설정했을때, 온디맨드 가격은 c5.large (0.096USD)  c4.large(0.114USD) 보다 저렴하므로, 온디맨드 용량을 c5.large를 채운 후 나머지를 설정합니다.

 

 

스팟 요금 History

스팟 Pricing History

스팟 인스턴스의 입찰 가격 정책에 도움을 주기 위해 생긴 기능이다. 지난 90일 동안의 스팟 가격 기록을 인스턴스 유형, 운영 체제 및 가용 영역을 기준으로 확인하여 스팟 인스턴스의 비용에 대한 인사이트를 얻을 수 있다.

 

스팟 인스턴스에 대한 CloudWatch 메트릭은 아래와 같다.

AvailableInstancePoolsCount

- 스팟 집합 요청에 지정된 스팟 인스턴스 풀. (단위 : )

BidsSummittedForCapacity

- Amazon EC2가 입찰을 제출한 용량. (단위 : )

EligibleInstancePoolCount

- Amazon EC2가 입찰을 이행할 수 있는 스팟 집합 요청에 지정된 스팟인스턴스 풀.

- Amazon EC2는 입찰가격이 스팟가격보다 낮거나 스팟 가격이 On-Demand 인스턴스 가격보다 높은 경우

풀에서 입찰을 이행하지 않습니다. (단위 : )

FulfilledCapacity

- Amazon EC2 달성한 용량.  (단위 : )

MaxPercentCapacityAllocation

- 스팟 집합 요청에 지정된 모슨 스팟 인스턴스 풀에 걸친 PercentCapacityAllocation의 최대값. (단위 : 백분율)

PendingCapacity

- TargetCapacity FulfilledCapacity의 차이점. (단위 : )

PercentCapacityAllocation

- 지정된 차원의 스팟인스턴스 풀에 할당된 용량.

- 모든 스팟 인스턴스 풀에 기록된 최대값을 얻으려면 MaxPercentCapacityAllocation을 사용하십시오. (단위 : 백분율)

TargetCapacity

- 스팟 집합 요청의 목표 용량. (단위 : )

TerminatingCapacity

- 스팟 인스턴스 간섭으로 인해 종료되고 있는 용량. (단위 : )

태그