스팟 요청 상태
스팟 인스턴스 요청을 추적하고 스팟 인스턴스 사용 계획을 세우는 데 도움이 되도록 Amazon EC2에서 제공하는 요청 상태를 사용합니다. 예를 들어, 요청 상태는 스팟 요청이 아직 이행되지 않는 이유를 알려주거나, 스팟 요청을 이행할 수 없는 제약 조건을 나열할 수 있습니다.
프로세스의 각 단계(스팟 요청 수명 주기라고도 함)에서 특정 이벤트에 따라 연속 요청 상태가 결정됩니다.
스팟 요청의 수명 주기
다음 다이어그램에서는 제출부터 종료까지 전체 수명 주기 동안 스팟 요청이 따를 수 있는 경로를 보여 줍니다. 각 단계는 노드로 묘사되며 각 노드의 상태 코드는 스팟 요청 및 스팟 인스턴스의 상태를 설명합니다.
평가 보류
하나 이상의 요청 파라미터가 유효하지 않은 경우(bad-parameters
)를 제외하고, 스팟 인스턴스 요청을 생성하는 즉시 요청은 pending-evaluation
상태로 전환됩니다.
상태 코드 | 요청 상태 | 인스턴스 상태 |
---|---|---|
pending-evaluation |
open |
해당 사항 없음 |
bad-parameters |
closed |
해당 사항 없음 |
보류
하나 이상의 요청 제약 조건이 적용되지만 아직 충족될 수 없는 경우 또는 용량이 부족한 경우 요청은 제약 조건이 충족될 때까지 대기하는 보류 상태로 전환됩니다. 요청 옵션은 요청이 이행될 가능성에 영향을 미칩니다. 예를 들어 용량이 없는 경우 가용 용량이 가용할 때까지 요청은 보류 상태로 유지됩니다. 가용 영역 그룹을 지정할 경우 가용 영역 제약 조건이 충족될 때까지 요청은 보류 상태로 유지됩니다.
특정 가용 영역 중단 시, 다른 가용 영역에서의 스팟 인스턴스 요청에 사용할 수 있는 예비 EC2 용량이 영향을 받을 수 있습니다.
상태 코드 | 요청 상태 | 인스턴스 상태 |
---|---|---|
capacity-not-available |
open |
해당 사항 없음 |
price-too-low |
open |
해당 사항 없음 |
not-scheduled-yet |
open |
해당 사항 없음 |
launch-group-constraint |
open |
해당 사항 없음 |
az-group-constraint |
open |
해당 사항 없음 |
placement-group-constraint
|
open
|
해당 사항 없음 |
constraint-not-fulfillable
|
open
|
해당 사항 없음 |
평가/이행 보류-끝
특정 기간 동안에만 유효한 요청을 생성하는 경우 요청이 이행 보류 단계에 도달하기 전에 이 기간이 만료되면 스팟 인스턴스 요청은 terminal
상태로 전환될 수 있습니다. 요청을 취소하거나 시스템 오류가 발생하는 경우에도 이와 같이 될 수 있습니다.
상태 코드 | 요청 상태 | 인스턴스 상태 |
---|---|---|
schedule-expired
|
cancelled
|
해당 사항 없음 |
canceled-before-fulfillment ¹ |
cancelled
|
해당 사항 없음 |
bad-parameters
|
failed
|
해당 사항 없음 |
system-error
|
closed
|
해당 사항 없음 |
¹ 사용자가 요청을 취소하는 경우.
이행 보류
지정한 제약 조건(있는 경우)이 충족되면 스팟 요청이 pending-fulfillment
상태가 됩니다.
이 시점에 Amazon EC2는 요청한 인스턴스를 프로비저닝할 준비를 합니다. 프로세스가 이 시점에 중지되는 경우 스팟 인스턴스가 시작되기 전에 사용자가 프로세스를 취소했기 때문일 수 있습니다. 예기치 않은 시스템 오류가 원인일 수도 있습니다.
상태 코드 | 요청 상태 | 인스턴스 상태 |
---|---|---|
pending-fulfillment
|
open
|
해당 사항 없음 |
이행됨
스팟 인스턴스에 대한 모든 사양이 충족되면 스팟 요청이 이행됩니다. Amazon EC2가 스팟 인스턴스를 시작합니다. 이 작업은 몇 분 정도 걸릴 수 있습니다. 중단된 스팟 인스턴스가 최대 절전 모드로 전환되거나 중지되는 경우 요청을 다시 이행할 수 있거나 요청이 취소될 때까지 인스턴스는 이 상태를 유지합니다.
상태 코드 | 요청 상태 | 인스턴스 상태 |
---|---|---|
fulfilled
|
active
|
pending → running
|
fulfilled
|
active
|
stopped → running
|
스팟 인스턴스를 중지하면 스팟 인스턴스를 다시 시작할 수 있거나 요청을 취소할 때까지 스팟 요청이 marked-for-stop
또는 instance-stopped-by-user
상태로 전환됩니다.
상태 코드 | 요청 상태 | 인스턴스 상태 |
---|---|---|
marked-for-stop
|
active |
stopping
|
instance-stopped-by-user ¹ |
disabled 또는 cancelled ² |
stopped
|
¹ 인스턴스를 중지하거나 인스턴스에서 종료 명령을 실행하면 스팟 인스턴스가 instance-stopped-by-user
상태가 됩니다. 인스턴스를 중지한 후 다시 시작할 수 있습니다. 다시 시작하면 스팟 인스턴스 요청이 pending-evaluation
상태가 되고 제약 조건이 충족되면 Amazon EC2가 새 스팟 인스턴스를 시작합니다.
² 스팟 인스턴스를 중지하지만 요청을 취소하지 않는 경우 스팟 요청 상태는 disabled
입니다. 스팟 인스턴스가 중지되고 요청이 만료되는 경우 요청 상태는 cancelled
입니다.
이행됨-끝
스팟 인스턴스는 인스턴스 유형에 사용 가능한 용량이 있고 인스턴스를 종료하지 않는 한 계속 실행됩니다. Amazon EC2가 스팟 인스턴스를 종료해야 하는 경우 스팟 요청은 터미널 상태가 됩니다. 사용자가 스팟 요청을 취소하거나 스팟 인스턴스를 종료하는 경우에도 요청이 종료 상태로 전환됩니다.
상태 코드 | 요청 상태 | 인스턴스 상태 |
---|---|---|
request-canceled-and-instance-running
|
cancelled
|
running
|
marked-for-stop
|
active
|
running
|
marked-for-termination
|
active
|
running
|
instance-stopped-by-price
|
disabled
|
stopped
|
instance-stopped-by-user
|
disabled
|
stopped
|
instance-stopped-no-capacity
|
disabled
|
stopped
|
instance-terminated-by-price
|
closed (일회), open (영구) |
terminated
|
instance-terminated-by-schedule
|
closed
|
terminated
|
instance-terminated-by-service
|
cancelled
|
terminated
|
instance-terminated-by-user
|
closed 또는 cancelled ¹ |
terminated
|
instance-terminated-no-capacity
|
closed (일회), open (영구) |
running †
|
instance-terminated-no-capacity
|
closed (일회), open (영구) |
terminated
|
instance-terminated-launch-group-constraint
|
closed (일회), open (영구) |
terminated
|
¹ 인스턴스를 종료하되 요청을 취소하지 않는 경우 요청 상태는 closed
입니다. 인스턴스를 종료하고 요청을 취소하는 경우 요청 상태는 cancelled
입니다. 스팟 요청을 취소하기 전에 스팟 인스턴스를 종료해도 Amazon EC2에서 스팟 인스턴스가 종료되었음을 감지하기 전까지 지연이 발생할 수 있습니다. 이 경우 요청 상태는 closed
또는 cancelled
일 수 있습니다.
† 용량이 다시 필요하고 인스턴스가 중단 시 종료되도록 구성된 경우 Amazon EC2가 스팟 인스턴스를 중단하면 상태가 즉시 instance-terminated-no-capacity
로 설정됩니다(marked-for-termination
으로 설정되지 않음). 그러나 인스턴스가 스팟 인스턴스 중단 알림을 수신한 2분 기간을 반영하기 위해 인스턴스는 2분 동안 running
상태를 유지합니다. 2분 후 인스턴스 상태가 terminated
로 설정됩니다.
중단 시험
AWS Fault Injection Service를 사용하여 스팟 인스턴스 중단을 시작하여 스팟 인스턴스의 애플리케이션이 어떻게 응답하는지 테스트할 수 있습니다. AWS FIS가 스팟 인스턴스를 중지하면 스팟 요청이 marked-for-stop-by-experiment
상태, 이어서 instance-stopped-by-experiment
상태로 진입합니다. AWS FIS가 인스턴스를 종료하면 스팟 요청은 instance-terminated-by-experiment
상태가 됩니다. 자세한 내용은 스팟 인스턴스 중단 시작 단원을 참조하십시오.
상태 코드 | 요청 상태 | 인스턴스 상태 |
---|---|---|
marked-for-stop-by-experiment |
active |
running |
instance-stopped-by-experiment |
disabled |
stopped |
instance-terminated-by-experiment |
closed |
terminated |
영구 요청
스팟 인스턴스가 종료될 때(사용자가 종료하거나 Amazon EC2에서 종료) 스팟 요청이 영구 요청인 경우 pending-evaluation
상태로 복귀한 후 제약 조건이 충족되면 Amazon EC2에서 새로운 스팟 인스턴스를 시작할 수 있습니다.
요청 상태 정보 가져오기
AWS Management Console 또는 명령줄 도구를 사용하여 요청 상태 정보를 가져올 수 있습니다.
명령줄을 사용하여 요청 상태 정보 가져오는 방법
-
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 스팟 요청을 선택한 다음 스팟 요청을 선택합니다.
-
상태를 확인하려면 설명 탭에서 상태 필드를 선택합니다.
명령줄을 사용하여 요청 상태 정보를 가져오려면
다음 명령 중 하나를 사용할 수 있습니다. 명령줄 인터페이스에 대한 자세한 내용은 Amazon EC2 액세스 단원을 참조하세요.
-
describe-spot-instance-requests(AWS CLI)
-
Get-EC2SpotInstanceRequest(AWS Tools for Windows PowerShell)
스팟 요청 상태 코드
스팟 요청 상태 정보는 상태 코드, 업데이트 시간 및 상태 메시지로 구성됩니다. 이러한 정보를 하나로 모으면 스팟 요청 배치를 결정하는 데 도움이 됩니다.
다음은 스팟 요청 상태 코드입니다.
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
-
사용자가 인스턴스를 중지했거나 인스턴스에서 종료 명령을 실행했기 때문에 인스턴스가 중지되었습니다.
instance-stopped-no-capacity
-
EC2 용량 관리 필요성으로 인해 인스턴스가 중지되었습니다.
instance-terminated-by-price
-
스팟 가격이 최고 가격을 초과하여 인스턴스가 종료됩니다. 요청이 영구적일 경우 프로세스가 다시 시작되므로 요청은 평가 보류 상태입니다.
instance-terminated-by-schedule
-
스팟 인스턴스가 예약 기간의 만료로 종료되었습니다.
instance-terminated-by-service
-
인스턴스가 중지된 상태에서 종료되었습니다.
instance-terminated-by-user
, 또는spot-instance-terminated-by-user
-
이행된 스팟 인스턴스를 종료했으므로 요청 상태는
closed
이고(영구 요청이 아닌 경우) 인스턴스 상태는terminated
입니다. instance-terminated-launch-group-constraint
-
시작 그룹에 있는 하나 이상의 인스턴스가 종료되었으므로 시작 그룹 제약 조건이 더 이상 충족되지 않습니다.
instance-terminated-no-capacity
-
표준 용량 관리 프로세스로 인해 인스턴스가 종료되었습니다.
launch-group-constraint
-
Amazon EC2가 동일한 시간에 요청한 모든 인스턴스를 시작할 수 있는 것은 아닙니다. 시작 그룹에 있는 모든 인스턴스가 함께 시작되고 종료됩니다.
limit-exceeded
-
EBS 볼륨 또는 전체 볼륨 스토리지 수 제한을 초과했습니다. 이러한 제한값 및 증가 요청 방법에 대한 자세한 내용은 Amazon Web Services 일반 참조에서 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 스팟 인스턴스 요청 이행 이벤트
스팟 인스턴스 요청이 이행되면 Amazon EC2가 EC2 스팟 인스턴스 요청 이행 이벤트를 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
-dd
Thh
:mm
:ss
Z",
"region": "us-east-2
",
"resources": ["arn:aws:ec2:us-east-2
:123456789012
:instance/i-1234567890abcdef0
"],
"detail": {
"spot-instance-request-id": "sir-1a2b3c4d
",
"instance-id": "i-1234567890abcdef0
"
}
}
자세한 내용은 https://docs.aws.amazon.com/eventbridge/latest/userguide/Amazon EventBridge 사용 설명서를 참조하세요.