- 최신
- 최다 투표
- 가장 많은 댓글
Elastic Beanstalk에서 Spot Instance를 100% 사용하고 순단 없이 배포하는 것은 도전적인 작업입니다. Spot Instance의 특성상 가용성이 보장되지 않기 때문에 완벽한 해결책은 없지만, 다음과 같은 방법을 고려해볼 수 있습니다:
-
Spot Instance 할당 전략 최적화: Elastic Beanstalk에서 제공하는 Spot Instance 할당 전략 중 "Capacity optimized" 또는 "Price capacity optimized"를 사용하세요. 이 전략들은 중단 가능성이 낮은 인스턴스 풀에서 Spot Instance를 요청하여 서비스 중단 위험을 최소화합니다.
-
다양한 인스턴스 유형 사용: 여러 인스턴스 유형을 지정하여 Spot Instance 가용성을 높이세요. 이는 "Capacity optimized prioritized" 전략과 함께 사용하면 효과적일 수 있습니다.
-
Capacity Rebalancing 활성화: Elastic Beanstalk 콘솔이나 구성 옵션을 통해 Capacity Rebalancing을 활성화하세요. 이 기능은 Spot Instance 중단 위험이 높아질 때 사전에 새 인스턴스를 시작하여 중단 영향을 줄입니다.
-
배포 설정 조정: 롤링 업데이트나 Blue/Green 배포 전략을 사용하고, 배치 크기와 일시 중지 시간을 조절하여 배포 중 가용성을 개선하세요.
-
Auto Scaling 그룹 설정 최적화: 최소 용량, 원하는 용량, 최대 용량을 적절히 설정하여 인스턴스 전환 시 충분한 용량을 유지하세요.
완전히 순단을 없애는 것은 어렵지만, 이러한 방법들을 조합하여 Spot Instance 사용 시 발생하는 중단을 최소화할 수 있습니다. 또한, 테스트 환경이므로 약간의 중단이 허용된다면, 이러한 설정으로 비용 절감과 가용성 사이의 균형을 맞출 수 있을 것입니다.
Sources
Spot Instance allocation strategy - AWS Elastic Beanstalk
Spot Instance support for your Elastic Beanstalk environment - AWS Elastic Beanstalk
Release: Elastic Beanstalk adds support for Spot Allocation Strategy configuration during environment creation on January 15, 2025 - AWS Elastic Beanstalk

안녕하세요. eb deploy를 했을 때 첫 인스턴스가 온디멘드가 아닌 spot이 바로 떴으면 좋겠습니다. 그러나 항상 온디멘드가 실행되고 spot이 실행됩니다. eb deploy를 했을 때 바로 spot 인스턴스로 실행됬으면 좋겠는데 이걸 어떻게 하는지 모르겠습니다.
프로덕션에서는 최소 1개 이상의 온디맨드 인스턴스를 활용하시는 것이 어플리케이션 중단 가능성을 줄이는 데 도움이 됩니다만, 그럼에도 불구하고 원하신다면 아래 문서의 단일 인스턴스 환경 섹션을 참고하시면 좋을 것 같습니다. https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/environments-cfg-autoscaling-spot-and-demand.html