메뉴
Amazon Elastic Compute Cloud
User Guide for Linux Instances

스팟 집합의 작동 방식

스팟 집합은 스팟 인스턴스의 모음입니다. 스팟 집합이 스팟 집합 요청에서 지정한 목표 용량을 충족시키는 데 필요한 스팟 인스턴스의 수 시작을 시도합니다. 또한, 스팟 인스턴스가 스팟 가격 또는 사용 가능한 용량의 변경으로 인해 중단될 경우 스팟 집합은 목표 용량 집합을 유지하려고 시도합니다.

스팟 인스턴스 풀은 동일한 인스턴스 유형, 운영 체제, 가용 영역 및 네트워크 플랫폼을 지닌 일련의 미사용 EC2 인스턴스입니다(EC2-Classic 또는 EC2-VPC). 스팟 집합 요청을 할 때 인스턴스 유형, AMI, 가용 영역 또는 서브넷에 따라 바뀌는 여러 시작 사양을 포함할 수 있습니다. 스팟 집합은 스팟 집합 요청에 포함된 시작 사양을 기준으로 하는 요청과 스팟 집합 요청의 구성을 이행하는 데 사용되는 스팟 인스턴스 풀을 선택합니다. 스팟 인스턴스는 선택한 풀에서 가져옵니다.

스팟 집합 할당 전략

시작 사양으로 표시되는 가용 스팟 인스턴스 풀로부터 스팟 집합 요청을 이행하는 방법은 스팟 집합에 대한 할당 전략에 따라 결정됩니다. 다음은 스팟 집합 요청에서 지정할 수 있는 할당 전략입니다.

lowestPrice

스팟 인스턴스는 최저 가격의 풀에서 가져옵니다. 이는 기본 전략입니다.

diversified

스팟 인스턴스는 모든 풀에 분산됩니다.

할당 전략 선택

사용 사례를 바탕으로 스팟 집합을 최적화할 수 있습니다.

집합이 작거나 짧은 시간 동안 작동할 경우, 모든 인스턴스가 단일 스팟 인스턴스 풀에 있더라도 스팟 인스턴스가 중단될 확률이 낮습니다. 따라서 lowestPrice 전략이 요구를 충족시키는 동시에 최저 가격을 제공할 가능성이 높습니다.

집합이 크거나 긴 시간 동안 작동할 경우, 스팟 인스턴스를 여러 풀로 분산하여 집합의 가용성을 개선할 수 있습니다. 예를 들어 스팟 집합 요청에 풀 10개와 목표 용량으로 인스턴스 100개가 지정되어 있으면, 스팟 집합이 각 풀에서 10개의 스팟 인스턴스를 시작합니다. 한 풀에 대한 스팟 가격이 이 풀에 대한 입찰 가격 이상으로 높아지는 경우, 집합 중 10%만 영향을 받습니다. 이 전략을 사용하면 집합이 시간이 지나면서 어느 한 풀에서 발생하는 스팟 가격의 상승에 덜 민감해집니다.

diversified 전략에서는 스팟 집합이 온디맨드 가격보다 높거나 같은 스팟 가격의 풀로 스팟 인스턴스를 시작하지 않는다는 점에 유의하십시오.

목표 용량 유지

스팟 가격 또는 스팟 인스턴스 풀의 가용 용량 변화로 인해 스팟 인스턴스가 종료된 후에는 스팟 집합이 대체 스팟 인스턴스를 시작합니다. 할당 전략이 lowestPrice인 경우, 스팟 집합은 스팟 가격이 현재 가장 낮은 풀에서 대체 인스턴스를 시작합니다. 할당 전략이 diversified인 경우, 스팟 집합은 나머지 풀 전체에 걸쳐 대체 스팟 인스턴스를 배포합니다.

스팟 가격 재정의

각 스팟 집합 요청은 글로벌 스팟 가격을 포함해야 합니다. 기본적으로, 스팟 집합에서는 각 시작 사양에 대한 입찰 가격으로 이 가격을 사용합니다.

하나 이상의 시작 사양에서 스팟 가격을 선택적으로 지정할 수 있습니다. 이 입찰 가격은 시작 사양에 특정한 것입니다. 시작 사양에 특정 스팟 가격이 포함되는 경우 스팟 집합은 이 가격을 그 시작 사양에 대한 입찰 가격으로 사용하여 글로벌 스팟 가격을 재정의합니다. 특정 스팟 가격을 포함하지 않는 다른 시작 사양에서 글로벌 스팟 가격을 계속 사용합니다.

스팟 집합 인스턴스 가중치 부여

스팟 인스턴스의 집합을 요청할 때 각 인스턴스 유형이 애플리케이션의 성능에 기여하는 용량 단위를 정의하고, 인스턴스 가중치를 사용하여 적절히 각 스팟 인스턴스 풀에 대한 입찰 가격을 조정할 수 있습니다.

기본적으로, 사용자가 지정하는 스팟 가격은 인스턴스 시간당 입찰 가격을 나타냅니다. 인스턴스 가중치 기능을 사용할 때, 사용자가 지정하는 스팟 가격은 단위 시간당 입찰 가격을 나타냅니다. 단위 시간당 입찰 가격은 인스턴스 유형에 따른 입찰 가격을 인스턴스가 나타내는 단위 수로 나누어 계산합니다. 스팟 집합은 목표 용량을 인스턴스 가중치로 나누어 시작할 스팟 인스턴스의 수를 계산합니다. 결과가 정수가 아닌 경우, 스팟 집합은 결과를 다음 정수로 올림하므로 집합의 크기가 목표 용량을 밑돌지는 않습니다. 시작된 인스턴스의 용량이 요청된 목표 용량을 초과하더라도, 스팟 집합은 시작 사양에서 지정한 어떤 풀이든 선택할 수 있습니다.

다음 표에는 목표 용량이 10인 스팟 집합 요청을 위한 단위당 입찰 가격을 결정하기 위한 계산의 예가 포함되어 있습니다.

인스턴스 유형 인스턴스 가중치 인스턴스 시간당 스팟 가격 단위 시간당 스팟 가격 시작된 인스턴스의 수

r3.xlarge

2

0.05 USD

.025

(0.05를 2로 나눈 값)

5

(10을 2로 나눈 값)

r3.8xlarge

8

0.10 USD

.0125

(0.10을 8로 나눈 값)

2

(10을 8로 나눈 후 올림한 결과)

스팟 집합 인스턴스 가중치를 사용해 다음과 같이 원하는 목표 용량을 이행 시점에 단위당 최저 가격으로 풀에 프로비저닝합니다.

  1. 스팟 집합에 대한 목표 용량을 인스턴스(기본값) 또는 선택한 단위(예: 가상 CPU 수, 메모리, 스토리지 또는 처리량)로 설정합니다.

  2. 단위당 입찰 가격을 설정합니다.

  3. 각 시작 구성을 위해, 목표 용량으로 접근하는 방향으로 인스턴스 유형이 나타내는 단위 수를 의미하는 가중치를 지정합니다.

인스턴스 가중치 부여의 예

다음과 같은 구성의 스팟 집합 요청을 고려합니다.

  • 목표 용량은 24

  • 인스턴스 유형이 r3.2xlarge이고 가중치가 6인 시작 사양

  • 인스턴스 유형이 c3.xlarge이고 가중치가 5인 시작 사양

가중치는 목표 용량에 대하여 인스턴스 유형이 나타내는 단위 수를 의미합니다. 첫 번째 시작 사양에서 단위당 최저 스팟 가격(인스턴스 시간당 r3.2xlarge에 대한 스팟 가격을 6으로 나눈 값)을 제공하는 경우, 스팟 집합은 이들 인스턴스 중 4개(24를 6으로 나눈 값)를 시작합니다.

두 번째 시작 사양에서 단위당 최저 스팟 가격(인스턴스 시간당 c3.xlarge에 대한 스팟 가격을 5로 나눈 값)을 제공하는 경우, 스팟 집합은 이들 인스턴스 중 5개(24를 5로 나눈 결과를 올림한 값)를 시작합니다.

인스턴스 가중치 부여 및 할당 전략

다음과 같은 구성의 스팟 집합 요청을 고려합니다.

  • 목표 용량은 30

  • 인스턴스 유형이 c3.2xlarge이고 가중치가 8인 시작 사양

  • 인스턴스 유형이 m3.xlarge이고 가중치가 8인 시작 사양

  • 인스턴스 유형이 r3.xlarge이고 가중치가 8인 시작 사양

스팟 집합이 4개(30을 8로 나눈 결과를 올림한 값)의 인스턴스를 시작합니다. lowestPrice 전략 사용 시, 4개의 인스턴스는 전부 단위당 최저 스팟 가격을 제공하는 풀에서 가져옵니다. diversified 전략 사용 시, 스팟 집합은 3개의 풀 각각에서 1개의 인스턴스를 시작하고 3개의 풀 중 어떤 것에 있는 것이든 4번째 인스턴스가 단위당 최저 스팟 가격을 제공합니다.

연습: 인스턴스 가중치를 부여한 스팟 집합 사용

이 연습에서는 Example Corp이라는 가상의 회사를 통해 인스턴스 가중치를 사용한 스팟 집합에 대한 입찰 프로세스를 설명합니다.

목표

제약 회사인 Example Corp은 암 퇴치 효과가 있는 화합물을 검출하는 데 Amazon EC2의 컴퓨팅 파워를 사용하려고 합니다.

계획

Example Corp은 먼저 스팟 모범 사례를 살펴봅니다. 그런 다음 스팟 집합에 대한 다음 요건을 결정합니다.

인스턴스 유형

Example Corp은 최소 60GB 메모리와 8개의 가상 CPU(vCPU)로 최적의 성능을 자랑하는 컴퓨팅 및 메모리 집약적 애플리케이션을 사용하고 있습니다. 하지만 최저 가격으로 이러한 애플리케이션 리소스를 극대화하는 것이 목표입니다. 그 결과 다음 EC2 인스턴스 유형 중 하나가 이러한 요건에 적합할 것이라는 결정을 내립니다.

인스턴스 유형 메모리(GiB) vCPUs

r3.2xlarge

61

8

r3.4xlarge

122

16

r3.8xlarge

244

32

단위의 목표 용량

인스턴스 가중치를 부여했을 때 목표 용량은 인스턴스 수(기본값) 또는 코어(vCPU), 메모리(GiB) 및 스토리지(GB)와 같은 요소의 조합과 동일할 수 있습니다. 그래서 Example Corp는 단위 1개당 애플리케이션의 기본 용량(60GB 메모리, vCPU 8개)을 고려하여 기본 용량의 20배면 요구에 부응할 것이라고 결정을 내립니다. 그래서 스팟 집합 요청의 목표 용량을 20으로 설정합니다.

인스턴스 가중치

목표 용량이 결정되자 이제는 인스턴스 가중치를 계산합니다. 각 인스턴스 유형에 대한 인스턴스 가중치를 계산하기 위해, 다음과 같이 목표 용량에 이르기 위해 필요한 각 인스턴스 유형의 단위를 결정합니다.

  • r3.2xlarge(61.0GB, 8 vCPU) = 단위 20개 중 1개

  • r3.4xlarge(122.0GB, 16 vCPU) = 단위 20개 중 2개

  • r3.8xlarge(122.0GB, 32 vCPU) = 단위 20개 중 4개

따라서 Example Corp은 스팟 집합 요청 시 1, 2 및 4의 인스턴스 가중치를 각 시작 구성에 할당합니다.

단위 시간당 입찰 가격

Example Corp은 인스턴스 시간당 온디맨드 가격으로 입찰 가격을 시작합니다. 그 밖에 최근 스팟 가격을 사용하거나, 둘을 조합할 수도 있습니다. 이때 단위 시간당 입찰 가격을 계산하려면 인스턴스 시간당 최초 입찰 가격을 가중치로 나눕니다. 예:

인스턴스 유형 온디맨드 가격 인스턴스 가중치 단위 시간당 가격

r3.2xLarge

$0.7

1

$0.7

r3.4xLarge

$1.4

2

$0.7

r3.8xLarge

$2.8

4

$0.7

Example Corp은 단위 시간당 글로벌 입찰 가격으로 $0.7을 입력하여 세 가지 인스턴스 유형을 위해 경쟁할 수도 있습니다. 또한, r3.8xlarge 시작 사양에 단위 시간당 글로벌 입찰 가격으로 $0.7와 단위 시간당 특별 입찰 가격으로 $0.9를 입력할 수도 있습니다. 결국 Example Corp은 스팟 집합의 프로비저닝 전략에 따라 낮은 가격으로 입찰하여 비용을 줄일 수도 있고 높은 가격으로 입찰하여 중단 가능성을 낮출 수도 있습니다.

권한 검증

Example Corp은 스팟 집합 요청을 생성하기 전에 우선 필요한 권한을 가진 IAM 역할이 있는지 검증합니다. 자세한 내용은 스팟 집합 사전 요구사항 단원을 참조하십시오.

요청 생성

Example Corp은 스팟 집합 요청에 대해 다음 구성으로 config.json 파일을 생성합니다.

Copy
{ "SpotPrice": "0.70", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 1 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.4xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 2 } { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.8xlarge", "SubnetId": "subnet-482e4972", "SpotPrice": "0.90", "WeightedCapacity": 4 } ] }

Example Corp이 다음 request-spot-fleet 명령을 사용하여 스팟 집합 요청을 생성합니다.

Copy
aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

자세한 내용은 스팟 집합 요청 단원을 참조하십시오.

이행

할당 전략에서는 스팟 인스턴스가 어느 스팟 인스턴스 풀에서 온 것인지 결정합니다.

(기본 전략인) lowestPrice 전략 사용 시, 스팟 인스턴스는 이행 시점에 단위당 최저 스팟 가격의 풀에서 온 것입니다. 20단위의 용량을 제공하려면 스팟 집합이 r3.2xlarge 인스턴스 20개(20을 1로 나눈 값), r3.4xlarge 인스턴스 10개(20을 2로 나눈 값) 또는 r3.8xlarge 인스턴스 5개(20을 4로 나눈 값)를 시작합니다.

Example Corp에서 diversified 전략을 사용한 경우에는 스팟 인스턴스가 3개의 풀 전부에서 옵니다. 스팟 집합은 총 20개의 단위에 대해 r3.2xlarge 인스턴스 6개(6개 단위 제공), r3.4xlarge 인스턴스 3개(6개 단위 제공), r3.8xlarge 인스턴스 2개(8개 단위 제공)를 시작합니다.