스팟 인스턴스 요청 상태 가져오기
스팟 인스턴스 요청 상태 가져오기 (Get the status of a Spot Instance request)
스팟 인스턴스 요청을 추적하고 스팟 인스턴스 사용을 계획하는 데 도움이 되도록, Amazon EC2가 제공하는 요청 상태를 사용해요. 예를 들어 요청 상태는 스팟 요청이 아직 충족되지 않은 이유나, 스팟 요청의 충족을 막는 제약 조건을 알려줄 수 있어요.
출처: 문서
본문
각 프로세스 단계에서 — 스팟 요청 수명주기(Spot request lifecycle)라고도 함 — 특정 이벤트가 연속적인 요청 상태를 결정해요.
다음 그림은 스팟 인스턴스 요청이 어떻게 동작하는지 보여줘요. 요청 유형(일회성 one-time 또는 지속성 persistent)이 Amazon EC2가 스팟 인스턴스를 중단하거나 사용자가 스팟 인스턴스를 중지할 때 요청이 다시 열리는지 결정한다는 점에 주목하세요. 요청이 지속성(persistent)이면 스팟 인스턴스가 중단된 후 요청이 다시 열려요. 요청이 지속성이고 스팟 인스턴스를 중지하면, 요청은 스팟 인스턴스를 다시 시작한 후에만 열려요.
요청 상태 정보 가져오기 (Get request status information)
스팟 인스턴스 요청의 상태 정보를 얻을 수 있어요.
콘솔 (Console)
요청 상태 정보 가져오기: Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다. 탐색 창에서 Spot Requests를 선택하고 스팟 요청을 선택해요. 상태를 확인하려면 Description 탭에서 Status 필드를 확인해요.
AWS CLI
요청 상태 정보 가져오기: 다음 describe-spot-instance-requests 명령을 사용해요.
aws ec2 describe-spot-instance-requests --spot-instance-request-ids sir-0e54a519c9EXAMPLE
PowerShell
요청 상태 정보 가져오기: Get-EC2SpotInstanceRequest cmdlet을 사용해요.
Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE
스팟 요청 상태 코드 (Spot request status codes)
스팟 요청 상태 정보는 상태 코드, 업데이트 시간, 상태 메시지로 구성돼요. 이들이 함께 스팟 요청의 처리 상태를 파악하는 데 도움을 줘요.
다음은 스팟 요청 상태 코드예요.
- az-group-constraint – Amazon EC2가 요청한 모든 인스턴스를 같은 가용 영역에서 시작할 수 없어요.
- bad-parameters – 스팟 요청의 파라미터 하나 이상이 유효하지 않아요(예: 지정한 AMI가 존재하지 않음). 상태 메시지는 어떤 파라미터가 유효하지 않은지 나타내요.
- canceled-before-fulfillment – 사용자가 스팟 요청이 충족되기 전에 취소했어요.
- capacity-not-available – 요청한 인스턴스에 충분한 용량이 없어요.
- constraint-not-fulfillable – 제약 조건 하나 이상이 유효하지 않아(예: 가용 영역이 존재하지 않음) 스팟 요청을 충족할 수 없어요. 상태 메시지는 어떤 제약 조건이 유효하지 않은지 나타내요.
- fulfilled – 스팟 요청이
active이고 Amazon EC2가 스팟 인스턴스를 시작하고 있어요. - instance-stopped-by-price – 스팟 가격이 최대 가격을 초과해서 인스턴스가 중지됐어요.
- instance-stopped-by-user – 사용자가 인스턴스를 중지하거나 인스턴스에서 shutdown 명령을 실행해서 인스턴스가 중지됐어요.
- instance-stopped-no-capacity – EC2 용량 관리 요구로 인해 인스턴스가 중지됐어요.
- instance-terminated-by-price – 스팟 가격이 최대 가격을 초과해서 인스턴스가 종료됐어요. 요청이 지속성(persistent)이면 프로세스가 다시 시작되므로 요청이 평가 대기(pending evaluation) 상태가 돼요.
- instance-terminated-by-schedule – 예정된 기간이 끝나서 스팟 인스턴스가 종료됐어요.
- instance-terminated-by-service – 중지된 상태에서 인스턴스가 종료됐어요.
- instance-terminated-by-user 또는 spot-instance-terminated-by-user – 충족된 스팟 인스턴스를 사용자가 종료해서, 요청 상태는 닫힘(closed, 지속성 요청이 아닌 경우)이고 인스턴스 상태는
terminated예요. - instance-terminated-launch-group-constraint – 시작 그룹(launch group)의 인스턴스 하나 이상이 종료되어 시작 그룹 제약 조건이 더 이상 충족되지 않아요.
- instance-terminated-no-capacity – 표준 용량 관리 프로세스로 인해 인스턴스가 종료됐어요.
- launch-group-constraint – Amazon EC2가 요청한 모든 인스턴스를 동시에 시작할 수 없어요. 시작 그룹의 모든 인스턴스는 함께 시작되고 함께 종료돼요.
- limit-exceeded – EBS 볼륨 수나 총 볼륨 스토리지에 대한 한도를 초과했어요. 자세한 내용은 Amazon EBS User Guide의 Amazon EBS 쿼터를 참고하세요.
- marked-for-stop – 스팟 인스턴스가 중지 예정으로 표시됐어요.
- marked-for-termination – 스팟 인스턴스가 종료 예정으로 표시됐어요.
- not-scheduled-yet – 예정된 날짜가 될 때까지 스팟 요청이 평가되지 않아요.
- pending-evaluation – 스팟 인스턴스 요청을 하면, 시스템이 요청의 파라미터를 평가하는 동안 요청이
pending-evaluation상태로 들어가요. - pending-fulfillment – Amazon EC2가 스팟 인스턴스를 프로비저닝하려고 하고 있어요.
- placement-group-constraint – 현재는 스팟 인스턴스를 배치 그룹에 추가할 수 없어서 스팟 요청을 아직 충족할 수 없어요.
- price-too-low – 최대 가격이 스팟 가격보다 낮아서 요청을 아직 충족할 수 없어요. 이 경우 인스턴스가 시작되지 않고 요청은
open상태로 남아요. - request-canceled-and-instance-running – 스팟 인스턴스가 여전히 실행 중일 때 스팟 요청을 취소했어요. 요청은
cancelled되지만 인스턴스는running상태로 남아요. - schedule-expired – 지정된 날짜 이전에 충족되지 않아 스팟 요청이 만료됐어요.
- system-error – 예기치 않은 시스템 오류가 발생했어요. 반복되는 문제라면 AWS Support에 도움을 요청하세요.
EC2 스팟 인스턴스 요청 충족 이벤트 (EC2 Spot Instance Request Fulfillment event)
스팟 인스턴스 요청이 충족되면 Amazon EC2가 EC2 Spot Instance Request Fulfillment 이벤트를 Amazon EventBridge로 보내요. 이 이벤트가 발생할 때마다 작업을 수행하는 규칙을 만들 수 있어요. 예를 들어 Lambda 함수를 호출하거나 Amazon SNS 토픽에 알림을 보낼 수 있어요.
다음은 이 이벤트의 예시 데이터예요.
{
"version": "0",
"id": "01234567-1234-0123-1234-012345678901",
"detail-type": "EC2 Spot Instance Request Fulfillment",
"source": "aws.ec2",
"account": "123456789012",
"time": "yyyy-mm-ddThh:mm:ssZ",
"region": "us-east-2",
"resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"],
"detail": {
"spot-instance-request-id": "sir-0e54a519c9EXAMPLE",
"instance-id": "i-1234567890abcdef0"
}
}
자세한 내용은 Amazon EventBridge User Guide를 참고하세요.