스팟 인스턴스 중단 공지
스팟 인스턴스 중단 공지는 Amazon EC2가 스팟 인스턴스를 중지 또는 종료하기 2분 전에 생성되는 경고입니다. 최대 절전을 중지 행동으로 지정할 경우 중지 공지를 수신하지만, 최대 절전 과정은 즉시 시작되므로 2분 경고를 받지 않습니다.
스팟 인스턴스 중단을 정상적으로 처리하는 가장 좋은 방법은 내결함성이 있도록 애플리케이션을 설계하는 것입니다. 이를 위해 스팟 인스턴스 중단 공지를 활용할 수 있습니다. 5초마다 이러한 중단 공지를 확인하는 것이 좋습니다.
중단 공지는 EventBridge 이벤트 및 스팟 인스턴스의 인스턴스 메타데이터 항목으로 제공됩니다. 중단 알림은 최선의 노력을 한 후 발송됩니다.
EC2 Spot Instance Interruption Warning 이벤트를 트리거합니다
Amazon EC2에서는 스팟 인스턴스를 중단할 때 실제 중단 2분 전에 이벤트를 전송합니다(최대 절전 모드는 즉시 시작하기 때문에 중단 공지를 2분 전에 받지 않는 최대 절전 모드는 제외). 이 이벤트는 Amazon EventBridge에서 감지할 수 있습니다. EventBridge 이벤트에 대한 자세한 내용은 Amazon EventBridge User Guidehttps://docs.aws.amazon.com/eventbridge/latest/userguide/를 참조하세요. 이벤트 규칙을 생성하고 사용하는 방법을 안내하는 자세한 예제는 Amazon EC2 스팟 인스턴스 중단 공지 활용
다음은 스팟 인스턴스 중단 이벤트의 예제입니다. 가능한 instance-action
값은 hibernate
, stop
또는 terminate
입니다.
{
"version": "0",
"id": "12345678-1234-1234-1234-123456789012
",
"detail-type": "EC2 Spot Instance Interruption Warning",
"source": "aws.ec2",
"account": "123456789012
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-2
",
"resources": ["arn:aws:ec2:us-east-2a
:instance/i-1234567890abcdef0
"],
"detail": {
"instance-id": "i-1234567890abcdef0
",
"instance-action": "action
"
}
}
참고
스팟 인스턴스 중단 이벤트의 ARN 형식은 arn:aws:ec2:
입니다. 이 형식은 EC2 리소스 ARN 형식과 다릅니다.availability-zone
:instance/instance-id
instance-action
instance-action
항목은 해당 작업과 작업이 이루어지는 대략적 시간(UTC 기준)을 지정합니다.
스팟 인스턴스가 Amazon EC2에 의해 중지되거나 종료되도록 표시된 경우 인스턴스 메타데이터에 instance-action
항목이 있습니다. 표시하지 않은 경우에는 이 항목이 없습니다. 인스턴스 메타데이터 서비스 버전 2(IMDSv2)를 사용하여 다음과 같이 instance-action
을 검색할 수 있습니다.
다음 예시 출력에서는 이 인스턴스가 중지될 시간을 알려줍니다.
{"action": "stop", "time": "2017-09-18T08:22:00Z"}
다음 예시 출력에서는 이 인스턴스가 종료될 시간을 알려줍니다.
{"action": "terminate", "time": "2017-09-18T08:22:00Z"}
Amazon EC2가 인스턴스를 중지 또는 종료할 준비가 되지 않거나 사용자가 인스턴스를 직접 종료한 경우 instance-action
항목이 인스턴스 메타데이터에 없고 사용자가 이를 검색하려 하면 HTTP 404 오류를 수신하게 됩니다.
termination-time
termination-time
항목은 인스턴스가 종료 신호를 수신할 때 대략적인 시간(UTC 기준)을 지정합니다.
참고
이 항목은 이전 버전과의 호환성을 위해 보존되며, 그 대신 instance-action
을 사용해야 합니다.
Amazon EC2에서 스팟 인스턴스를 종료 대상으로 표시한 경우(중단 동작이 terminate
로 설정된 스팟 인스턴스 중단 또는 영구 스팟 인스턴스 요청 취소로 인해) termination-time
항목이 인스턴스 메타데이터에 존재합니다. 표시하지 않은 경우에는 이 항목이 없습니다. 다음과 같이 IMDSv2를 사용하여 termination-time
을 검색할 수 있습니다.
출력의 예시는 다음과 같습니다.
2015-01-05T18:02:00Z
스팟 인스턴스 중단이 없거나 중단 동작이 stop
또는 hibernate
로 설정되었기 때문에 Amazon EC2가 인스턴스를 종료할 준비가 되지 않은 경우 또는 사용자가 스팟 인스턴스를 직접 종료한 경우 termination-time
항목이 인스턴스 메타데이터에 없거나(HTTP 404 오류 수신) 이 항목에 시간 값이 아닌 값이 포함됩니다.
Amazon EC2에서 인스턴스를 종료하지 않으면 요청 상태가 fulfilled
로 설정됩니다. termination-time
값은 과거 시점인 원래 예상 시간과 함께 인스턴스 메타데이터에 남습니다.