Spot Instance 중단에 대비하기
Spot Instance 중단에 대비하기
Spot Instance에 대한 수요는 순간순간 크게 달라질 수 있고, Spot Instance의 가용성도 사용 가능한 미사용 EC2 인스턴스 수에 따라 크게 달라져요. 내 Spot Instance가 중단될 가능성은 언제나 있어요. 그래서 애플리케이션이 Spot Instance 중단에 대비되어 있는지 확인해야 해요. 이 절에서 권장하는 모범 사례를 살펴볼게요.
출처: 문서
본문
Spot Instance에 대한 수요는 순간순간 크게 달라질 수 있고, Spot Instance의 가용성도 사용 가능한 미사용 EC2 인스턴스가 얼마나 되는지에 따라 크게 달라져요. 내 Spot Instance가 중단될 가능성은 언제나 있어요. 따라서 애플리케이션이 Spot Instance 중단에 대비되어 있는지 확인해야 해요.
Spot Instance 중단에 대비하려면 다음 모범 사례를 따르길 권장해요.
- Auto Scaling 그룹을 사용해 Spot 요청을 만드세요. Spot Instance가 중단되면 Auto Scaling 그룹이 자동으로 대체 인스턴스를 시작해요. 자세한 내용은 Amazon EC2 Auto Scaling User Guide의 Auto Scaling groups with multiple instance types and purchase options를 참고하세요.
- 필요한 소프트웨어 구성이 포함된 AMI(Amazon Machine Image)를 사용해 요청이 충족되는 즉시 인스턴스가 준비되도록 하세요. user data를 사용해 시작 시 명령을 실행할 수도 있어요.
- 인스턴스 스토어 볼륨의 데이터는 인스턴스가 중지되거나 종료되면 사라져요. 인스턴스 스토어 볼륨의 중요한 데이터는 Amazon S3, Amazon EBS, Amazon DynamoDB 같은 더 영구적인 저장소로 백업하세요.
- 중요한 데이터를 Spot Instance가 종료되어도 영향을 받지 않는 곳에 정기적으로 저장하세요. 예를 들어 Amazon S3, Amazon EBS, DynamoDB를 사용할 수 있어요.
- 작업을 작은 작업으로 나누거나(Grid, Hadoop, 큐 기반 아키텍처 사용) 체크포인트를 사용해 작업을 자주 저장하세요.
- Amazon EC2는 인스턴스가 중단 위험이 높을 때 Spot Instance에 rebalance recommendation 신호를 보내요. 2분짜리 Spot Instance 중단 알림을 기다릴 필요 없이 rebalance recommendation에 의존해 Spot Instance 중단을 사전에 관리할 수 있어요. 자세한 내용은 EC2 instance rebalance recommendations를 참고하세요.
- 2분짜리 Spot Instance 중단 알림을 사용해 Spot Instance 상태를 모니터링하세요. 자세한 내용은 Spot Instance interruption notices를 참고하세요.
- 이러한 경고를 가능한 한 빨리 제공하려고 최선을 다하지만, 경고가 제공되기 전에 Spot Instance가 중단될 가능성도 있어요. rebalance recommendation 신호와 중단 알림을 모니터링하더라도, 애플리케이션 이 예상치 못한 인스턴스 중단을 우아하게 처리하는지 테스트하세요. On-Demand Instance로 애플리케이션을 실행한 다음 그 On-Demand Instance를 직접 종료해 테스트할 수 있어요.
- AWS Fault Injection Service로 통제된 장애 주입 실험을 실행해 Spot Instance가 중단될 때 애플리케이션이 어떻게 반응하는지 테스트하세요. 자세한 내용은 AWS Fault Injection Service User Guide의 Tutorial: Test Spot Instance interruptions using AWS FIS를 참고하세요.