Spot Instances 관리하기
Spot Instances 관리하기
Amazon EC2는 용량이 사용 가능할 때 Spot Instance를 시작해요. Spot 인스턴스는 중단되거나 사용자가 직접 종료하기 전까지 계속 실행됩니다.
출처: 문서
본문
이 문서에서는 Spot 인스턴스를 찾고, 중지하고, 시작하고, 종료하는 방법을 설명해요.
Spot Instances 찾기
Spot Instance는 콘솔의 Instances 페이지에 On-Demand 인스턴스와 함께 표시됩니다.
콘솔
- Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
- 탐색 창에서 Instances를 선택합니다.
- 모든 Spot 인스턴스를 찾으려면 검색 창에서 Instance lifecycle=spot을 선택합니다.
- 인스턴스가 Spot 인스턴스인지 확인하려면 인스턴스를 선택하고 Details 탭에서 Lifecycle 값을 확인합니다. Spot 인스턴스는
spot, On-Demand 인스턴스는normal값을 가져요.
AWS CLI
aws ec2 describe-instances --filters "Name=instance-lifecycle,Values=spot"
인스턴스가 Spot 인스턴스인지 확인하려면:
aws ec2 describe-instances \
--instance-ids i-1234567890abcdef0 \
--query "Reservations[*].Instances[*].InstanceLifecycle" \
--output text
출력이 spot이면 Spot 인스턴스이고, 출력이 없으면 On-Demand 인스턴스예요.
PowerShell
Get-EC2Instance -Filter @{Name="instance-lifecycle"; Values="spot"}
인스턴스가 Spot 인스턴스인지 확인하려면:
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.InstanceLifecycle
출력이 Spot이면 Spot 인스턴스이고, 출력이 없으면 On-Demand 인스턴스예요.
특정 요청으로 시작된 인스턴스 찾기
콘솔
- Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
- 탐색 창에서 Spot Requests를 선택합니다. 목록에는 Spot Instance 요청과 Spot Fleet 요청이 모두 포함되요.
- Spot Instance 요청이 충족되면 Capacity는 Spot 인스턴스의 ID예요. Spot Fleet의 경우 Capacity는 요청된 용량 중 얼마가 충족됐는지를 나타내요. Spot Fleet의 인스턴스 ID를 보려면 펼침 화살표를 선택하거나, 플릿을 선택하고 Instances를 선택합니다.
AWS CLI
aws ec2 describe-spot-instance-requests \
--spot-instance-request-ids sir-0e54a519c9EXAMPLE \
--query "SpotInstanceRequests[*].{ID:InstanceId}"
예시 출력:
[
{
"ID": "i-1234567890abcdef0"
},
{
"ID": "i-0598c7d356eba48d7"
}
]
PowerShell
(Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE).InstanceId
Spot Instance 중지하기
지금 Spot 인스턴스가 필요 없지만 Amazon EBS 볼륨에 보존된 데이터를 잃지 않고 나중에 다시 시작하고 싶다면 중지할 수 있어요. 중지 절차는 On-Demand 인스턴스 중지와 비슷합니다.
참고 — Spot 인스턴스가 중지된 동안에는 일부 인스턴스 속성을 수정할 수 있지만, 인스턴스 유형은 변경할 수 없어요. 중지된 Spot 인스턴스에는 사용량이나 데이터 전송 요금이 부과되지 않지만, 모든 Amazon EBS 볼륨의 저장 요금은 부과됩니다.
제한 사항
- Spot 인스턴스가 **영구 Spot Instance 요청(persistent Spot Instance request)**에서 시작된 경우에만 중지할 수 있어요.
- 연결된 Spot Instance 요청이 취소된 경우에는 중지할 수 없어요. 요청이 취소되면 Spot 인스턴스는 종료만 가능합니다.
- 플릿이나 출시 그룹, 또는 가용 영역 그룹의 일부인 Spot 인스턴스는 중지할 수 없어요.
콘솔: Instances에서 Spot 인스턴스를 선택하고 Instance state → Stop instance를 선택한 뒤 확인 창에서 Stop을 선택합니다.
AWS CLI:
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
PowerShell:
Stop-EC2Instance -InstanceId i-1234567890abcdef0
Spot Instance 시작하기
이전에 중지했던 Spot 인스턴스를 시작할 수 있어요. 다음 경우에만 시작할 수 있습니다.
- Spot 인스턴스를 수동으로 중지했을 때
- Spot 인스턴스가 EBS 기반 인스턴스일 때
- Spot 인스턴스 용량이 사용 가능할 때
- Spot 가격이 최대 가격보다 낮을 때
플릿이나 시작 그룹, 또는 가용 영역 그룹의 일부인 Spot 인스턴스는 시작할 수 없어요. 시작 절차는 On-Demand 인스턴스 시작과 비슷합니다.
콘솔: Instances에서 Spot 인스턴스를 선택하고 Instance state → Start instance를 선택합니다.
AWS CLI:
aws ec2 start-instances --instance-ids i-1234567890abcdef0
PowerShell:
Start-EC2Instance -InstanceId i-1234567890abcdef0
Spot Instance 종료하기
경고 — 인스턴스 종료는 영구적이고 되돌릴 수 없어요. 종료 후에는 연결할 수 없고 복구할 수도 없어요. 종료 시 삭제되도록 구성된 모든 연결된 Amazon EBS 볼륨도 영구 삭제되며, 인스턴스 스토어 볼륨에 저장된 모든 데이터는 영구적으로 손실됩니다. 종료 전에 유지할 데이터를 영구 스토리지에 모두 백업했는지 확인하세요.
영구 Spot Instance 요청으로 시작된 실행 중이거나 중지된 Spot 인스턴스를 종료하면, 그 Spot Instance 요청은 open 상태로 전환되어 새 Spot 인스턴스가 시작될 수 있어요. 새 인스턴스가 시작되지 않도록 하려면 먼저 Spot Instance 요청을 취소해야 해요. 실행 중인 Spot 인스턴스가 있는 활성 Spot Instance 요청을 취소해도 실행 중인 인스턴스는 자동으로 종료되지 않으므로 직접 종료해야 해요. 중지된 Spot 인스턴스가 있는 비활성(disabled) Spot Instance 요청을 취소하면, 중지된 Spot 인스턴스는 Amazon EC2 Spot 서비스에 의해 자동으로 종료됩니다. 요청 취소와 Spot 서비스의 종료 사이에 약간의 지연이 있을 수 있어요.
콘솔: 인스턴스를 종료하기 전에 EBS 볼륨이 종료 시 삭제되지 않는지 확인하고, 필요 데이터를 인스턴스 스토어 볼륨에서 Amazon EBS나 Amazon S3 같은 영구 스토리지로 복사했는지 확인하세요. 그런 다음 Instances에서 Spot 인스턴스를 선택하고 Instance state → Terminate (delete) instance를 선택해 종료합니다.
AWS CLI:
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0 i-0598c7d356eba48d7
PowerShell:
Remove-EC2Instance -InstanceId i-1234567890abcdef0
더 알아보기 (Learn more)
- Spot Instance 요청 취소와 Spot Instance 중단 문서를 확인하세요.