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.
