Amazon EC2 Spot Instance는 언제든 종료될 수 있다는 가정을 가지고 사용해야 합니다.
Spot Instance Lice Cycle
Spot Instance는 다음과 같은 Life Cycle을 가지고 있습니다.
* Spot Instance가 Terminate 되기 2분 전에 Interruption notice가 발생합니다.
* 그리고 15분부터 "Rebalance recommendation" 이벤트가 발생합니다.
. Rebalance recommendation 는 항상 spot instance terminate 2분 공지보다 먼저 발생하는 것은 아니라고 합니다. Interruption notice와 함께 도착할 수도 있고, 이후에 도착할 수도 있다고 합니다.
. Rebalance recommendation은 2020년 11월 5일 이후 시작된 spot instance에만 지원된다고 합니다.
주) 인터넷을 보면 Spot Instance가 죽기 전에 "BidEvictedEvent"가 CloudTrail을 통해서 확인할 수 있다고 했는데, 저의 CloudTrail 정보에는 해당 이벤트가 발생하지 않았습니다.
AWS Guide를 보면, Rebalnce recommendation과 Interruption notice를 EventBridge를 통해서 확인하라고 나와 있습니다.
Detect Spot Instance Change
SNS Topic
Enable EventBridge
EventBridge에서 "Create Rule"을 선택합니다.
Name 을 설정하고,
* Event Bus: default (계정의 AWS 서비스가 이벤트를 생성하면 항상 계정의 기본 이벤트 버스로 이동합니다)
* Rule type: Rule with an event pattern(이벤트 패턴이 있는 규칙)을 선택합니다.
Event Source에는 "AWS events or EventBridge partner events(AWS이벤트 또는 EventBridge 파트너 이벤트)"를 선택하고
아래 Event pattern(이벤트 패턴)에는 EC2 Instance Rebalance Recommendation 이벤트와 일치하도록 설정합니다.
{
"source": ["aws.ec2"],
"detail-type": ["EC2 Instance Rebalance Recommendation"]
}
이벤트를 전달할 대상을 선택합니다.
참고
Spot Instance의 할인율과 중단 빈도 현황
https://aws.amazon.com/ko/ec2/spot/instance-advisor/
https://younsl.github.io/blog/spot-interruption-notification/