AutoScaling Group의 스팟 인스턴스의 갑작스런 종료
서두
AWS AutoScaling Group에서 운영 중인 스팟 인스턴스가 예상치 못하게 종료되는 현상이 발생했다. 이는 강제 회수가 아닌 다른 이유로 인한 종료였으며, 그 원인과 영향, 그리고 대응 방안에 대해 분석했다.
문제상황
1. 현상
- 메시지 큐를 컨슈밍하는 스팟 인스턴스가 강제 회수되지 않았음에도 종료됨
- 새로운 인스턴스가 시작되었다는 알림 수신
- 다행이도 다른 서버가
requeue
된 메시지를 처리하여 서비스 중단은 없었음
AutoScaling Group 로그
1
2
3
4
5
6
At 2023-07-09T00:32:21Z instances were launched to balance instances
in zones null with other zones resulting in more than desired number
of instances in the group.
At 2023-07-09T00:46:17Z availability zones
had 4 1 instances respectively. An instance was launched to aid in
balancing the group's zones.
내용을 자세히 들여다보면 아래와 같다
1
2
3
4
가용영역은 리전내에 격리된 위치 이들은 독립적인 영역 예를 들면 us-west-2a, us-west-2b, us-west-2c
autoscaling은 각 가용영역에 고르게 분산해서 인스턴스를 띄우는데
이때 인스턴스가 가장적게 활성화된 가용역역에 인스턴스를 띄우고 다른곳에선는 인스턴스를 종료하여 이를 수행함.
결론
- 즉, 각 리전에 띄울 인스턴스 수를 균등하게 분배하기 위해서 한 리전에 많이떠있는 인스턴스를 종료시켜서 발생한 문제
- 다행히 사용자 요청을 처리하던 인스턴스가 죽는 일은 매우 드물고 거의 대부분 방금 막 뜬 인스턴스가 종료되고 혹여나 요청을 처리하던 인스턴스가 죽더라도 처리되지 못한 메시지는 다시 큐안으로
requeue
하기 때문에 슬랙 로그만 기록하는 것으로 해결
This post is licensed under CC BY 4.0 by the author.