기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
용량 재조정을 사용하여 Amazon EC2 스팟 중단 처리
스팟 인스턴스의 가용성에 영향을 주는 변경 사항을 모니터링하고 이에 자동으로 대응하도록 Amazon EC2 Auto Scaling을 구성할 수 있습니다. 용량 리밸런싱을 사용하면 실행 중인 인스턴스가 Amazon EC2에 의해 중단되기 전에 미리 새 스팟 인스턴스로 플릿을 보강할 수 있으므로 워크로드 가용성을 유지하는 데 도움이 됩니다.
용량 재조정의 목표는 중단 없이 워크로드를 계속 처리하는 것입니다. 스팟 인스턴스가 중단될 위험이 높아지면 Amazon EC2 스팟 서비스는 Amazon EC2 Auto Scaling에 EC2 인스턴스 재조정 권장 사항을 알립니다.
Auto Scaling 그룹에 대해 용량 재조정을 활성화하면 Amazon EC2 Auto Scaling은 재조정 권장 사항을 받은 그룹의 스팟 인스턴스를 사전에 교체하려고 합니다. 이는 중단 위험이 높지 않은 새로운 스팟 인스턴스로 워크로드를 재조정할 수 있는 기회를 제공합니다. 기존 인스턴스가 중단되기 전에 Amazon EC2 Auto Scaling이 새 스팟 인스턴스를 시작하는 동안 워크로드는 계속 작업을 처리할 수 있습니다.
용량 재조정을 사용하지 않는 경우, Amazon EC2 스팟 서비스가 인스턴스를 중단하고 건전성 체크에 실패할 때까지 Amazon EC2 Auto Scaling은 스팟 인스턴스를 교체하지 않습니다. 인스턴스를 중단하기 전에 Amazon EC2는 항상 EC2 인스턴스 재조정 권장 사항과 스팟 인스턴스 중단 2분 알림을 둘 다 제공합니다.
개요
Auto Scaling 그룹과 함께 용량 재조정을 사용하려면 다음과 같은 기본 단계를 따르세요.
-
여러 인스턴스 유형 및 가용 영역을 사용하도록 Auto Scaling 그룹을 구성합니다. 이러한 방식으로 Amazon EC2 Auto Scaling은 각 가용 영역에서 스팟 인스턴스를 위해 사용 가능한 용량을 확인할 수 있습니다. 자세한 설명은 여러 인스턴스 유형 및 구매 옵션이 포함된 Auto Scaling 그룹 섹션을 참조하세요.
-
필요에 따라 수명 주기 후크를 추가하여 재조정 알림을 수신하는 인스턴스 내에서 애플리케이션을 정상적으로 해지할 수 있습니다. 자세한 설명은 Amazon EC2 Auto Scaling 수명 주기 후크 섹션을 참조하세요.
다음은 수명 주기 후크를 사용할 수 있는 몇 가지 이유입니다:
-
Amazon SQS 작업자를 정상적으로 해지하는 경우
-
도메인 이름 시스템(DNS)에서 등록 취소를 완료하려면
-
시스템 또는 애플리케이션 로그를 당겨 Amazon Simple Storage Service(Amazon S3)에 업로드하려면
-
-
수명 주기 후크에 대한 사용자 지정 작업을 개발합니다. 사용자 지정 작업을 최대한 빨리 호출하려면 인스턴스가 해지될 준비가 된 시점을 알아야 합니다. 인스턴스의 수명 주기 상태를 감지하여 이를 알아보세요.
-
인스턴스 외부에서 작업을 호출하려면 규칙을 작성하고 이벤트 패턴이 EventBridge 규칙과 일치할 때 수행할 작업을 자동화하십시오.
-
인스턴스 내에서 작업을 호출하려면 해지 스크립트를 실행하고 인스턴스 메타데이터를 통해 수명 주기 상태를 검색하도록 인스턴스를 구성하세요.
2분 이내에 완료되도록 사용자 지정 작업을 설계하는 것이 중요합니다. 이렇게 하면 인스턴스가 해지되기 전에 작업을 완료할 수 있는 충분한 시간이 확보됩니다.
-
이 단계를 완료하면 용량 재조정 사용을 시작할 수 있습니다.
용량 재조정 동작
용량 재조정을 사용하면 인스턴스가 재조정 권장 사항을 수신할 때 Amazon EC2 Auto Scaling은 다음과 같은 방식으로 작동합니다.
-
새 스팟 인스턴스가 시작되면 Amazon EC2 Auto Scaling은 새 인스턴스가 건전성 체크를 통과할 때까지 기다렸다가 이전 인스턴스를 해지합니다. 둘 이상의 인스턴스를 교체하는 경우, 새 인스턴스가 시작되어 건전성 체크를 통과하면 각각의 이전 인스턴스가 해지되기 시작합니다.
-
Amazon EC2 Auto Scaling에서는 이전 인스턴스 해지 전에 새 인스턴스를 시작하려고 하므로 지정된 최대 용량에 도달하거나 이에 근접하면 재조정 활동을 지연시키거나 완전히 중지할 수 있습니다. 이 문제를 방지하기 위해 Amazon EC2 Auto Scaling은 일시적으로 그룹의 최대 크기를 원하는 용량의 최대 10%까지 초과할 수 있습니다.
-
Auto Scaling 그룹에 수명 주기 후크를 추가하지 않은 경우, Amazon EC2 Auto Scaling은 새 인스턴스가 건전성 체크를 통과하자마자 이전 인스턴스를 해지하기 시작합니다.
-
수명 주기 후크를 추가한 경우, 이전 인스턴스 해지를 시작하기까지 걸리는 시간이 수명 주기 후크에 지정한 시간 초과 값만큼 연장됩니다.
-
스케일링 정책 또는 예약된 스케일링을 사용하는 경우, 스케일링 활동이 병렬로 실행됩니다. 크기 조정 활동이 진행 중이고 Auto Scaling 그룹이 원하는 새 용량 미만일 경우, Amazon EC2 Auto Scaling은 이전 인스턴스를 해지하기 전에 먼저 스케일 아웃합니다.
한 가용 영역에 인스턴스 유형에 대한 용량이 없는 경우, Amazon EC2 Auto Scaling은 성공할 때까지 활성화된 다른 가용 영역에서 스팟 인스턴스를 계속 시작하려고 시도합니다.
더 나쁜 경우의 시나리오에서 또는 새 인스턴스가 시작에 실패했거나 건전성 체크에 불합격하는 경우, Amazon EC2 Auto Scaling은 계속해서 인스턴스를 다시 시작시키려고 합니다. 새 인스턴스를 시작시키려고 시도하는 동안, 이전 인스턴스는 결국 중단되고 강제로 해지될 것이며 장애 2분전 고지가 이루어집니다.
고려 사항
용량 재조정 사용시 다음 사항을 고려하십시오:
- 스팟 중단에 내성을 갖도록 애플리케이션을 설계하세요.
-
귀하의 애플리케이션은 인스턴스 수의 동적 변경과 스팟 인스턴스가 조기에 중단될 가능성에 대처할 수 있어야 합니다. 예컨대, Auto Scaling 그룹이 Elastic Load Balancing 로드 밸런서 뒤에 있는 경우, Amazon EC2 Auto Scaling은 인스턴스가 로드 밸런서에서 등록을 취소할 때까지 기다렸다가 수명 주기 후크를 호출합니다. 인스턴스 등록을 취소하고 수명 주기 작업을 완료하는 데 시간이 너무 오래 걸리면 인스턴스를 해지하기 전에 Amazon EC2 Auto Scaling이 수명 주기 작업 완료를 기다리는 동안 인스턴스가 중단될 수도 있습니다.
Amazon EC2에서 항상 스팟 인스턴스 장애 2분전 고지보다 먼저 리밸런싱 권고 신호를 전송할 수 있는 것은 아닙니다. 때때로, 리밸런싱 권고 신호가 장애 2분전 고지와 동시에 도착합니다. 이런 일이 발생하면 Amazon EC2 Auto Scaling은 수명 주기 후크를 호출하고 즉시 새 스팟 인스턴스를 시작하려고 시도합니다.
- 교체 스팟 인스턴스의 중단 위험 증가 방지
-
lowest-price
할당 전략을 사용하는 경우, 교체 스팟 인스턴스가 중단될 위험이 높아질 수도 있습니다. 이는 시작 직후에 교체 스팟 인스턴스가 중단될 수 있더라도 해당 순간에 사용 가능한 용량이 있는 최저가의 풀에서 인스턴스를 항상 시작시키기 때문입니다. 서비스 중단 위험이 높아지는 것을 방지하려면lowest-price
할당 전략을 사용하지 않는 것이 좋습니다. 대신price-capacity-optimized
할당 전략을 사용하는 것이 좋습니다. 이 전략은 중단될 가능성이 가장 낮고 가격이 가장 낮은 스팟 풀에서 교체 스팟 인스턴스를 시작합니다. 따라서 가까운 장래에 중단될 가능성이 적습니다. - Amazon EC2 Auto Scaling은 가용성이 동일하거나 더 나은 경우에만 새 인스턴스를 시작함
-
용량 리밸런싱의 목표 중 하나는 스팟 인스턴스의 가용성을 개선하는 것입니다. 기존 스팟 인스턴스에 대한 리밸런싱 권장 사항이 있는 경우, Amazon EC2 Auto Scaling은 새 인스턴스가 기존 인스턴스와 동일하거나 더 나은 가용성을 제공하는 경우에만 새 인스턴스를 시작합니다. 새 인스턴스의 중단 위험이 기존 인스턴스보다 더 높은 경우, Amazon EC2 Auto Scaling은 새 인스턴스를 시작하지 않습니다. 하지만 Amazon EC2 Auto Scaling은 Amazon EC2 스팟 서비스에서 제공하는 정보에 근거하여 스팟 용량 풀을 계속 평가하여 가용성이 향상되면 새 인스턴스를 시작합니다.
Amazon EC2 Auto Scaling이 사전에 새 인스턴스를 시작하지 않은 채로 기존 인스턴스가 중단될 수 있습니다. 이 경우, Amazon EC2 Auto Scaling은 스팟 인스턴스 중단 알림을 받는 즉시 새 인스턴스를 시작하려고 시도합니다. 이는 새 인스턴스의 중단 위험이 높은지 여부와 관계없이 발생합니다.
- 용량 리밸런싱은 스팟 인스턴스의 간섭 속도를 증가시키지 않음
-
용량 리밸런싱을 활성화하면 스팟 인스턴스 중단 속도(Amazon EC2가 용량을 회수해야 할 때 회수되는 스팟 인스턴스의 수)가 증가하지 않습니다. 그러나 용량 리밸런싱에서 중단 위험이 있는 인스턴스를 탐지할 경우, Amazon EC2 Auto Scaling이 즉시 새로운 인스턴스를 시작하려고 시도합니다. 그러므로 위험에 처한 인스턴스가 간섭된 후 Amazon EC2 Auto Scaling이 시작되기를 기다리면 새 인스턴스를 시작시키는 것보다 더 많은 인스턴스가 교체될 수 있습니다.
용량 리밸런싱을 활성화하면 더 많은 인스턴스를 교체하게 될 수도 있지만, 미리 대비할 수 있어 도움이 됩니다. 이렇게 하면 인스턴스가 중단되기 전에 작업을 수행할 수 있는 시간이 더 늘어납니다. 스팟 인스턴스 중단 알림이 오면 일반적으로 최대 2분 이내에 인스턴스를 적절히 해지해야 합니다. 용량 재조정을 통해 새 인스턴스를 미리 시작하면 위험한 인스턴스에서 기존 프로세스가 완료될 확률을 높일 수 있습니다. 또한 인스턴스 해지 절차를 시작하고, 위험 인스턴스에서 새 작업이 예약되지 않도록 하며, 새로 시작된 인스턴스가 애플리케이션을 인수할 수 있도록 준비할 수 있습니다. 용량 리밸런싱에서 전향적으로 인스턴스를 교체하기 때문에 적절한 연속성을 누릴 수 있습니다.
용량 리밸런싱을 사용할 때의 위험과 장점을 보여주는 이론적 예:
-
오후 2:00 – 인스턴스 A에 대한 리밸런싱 권고를 받음. Amazon EC2 Auto Scaling이 즉시 교체 인스턴스 B를 시작시키려고 시도하므로 귀하는 해지 절차를 시작할 시간이 마련됩니다.
-
오후 2:30 – 인스턴스 B에 대한 리밸런싱 권고를 받고 인스턴스 C로 교체하므로 해지 절차를 시작할 시간이 마련됩니다.
-
오후 2:32 – 용량 리밸런싱을 활성화하지 않은 경우와 인스턴스 A에 대한 스팟 인스턴스 장애 알림을 오후 2시 32분에 받지 않은 경우, 조치를 취할 시간이 2분에 불과할 것입니다. 하지만 인스턴스 A는 이때까지 계속 실행되었을 것입니다.
-