용량 재조정 - Amazon Elastic Compute Cloud

용량 재조정

Amazon EC2에서 스팟 인스턴스의 중단 위험이 높아지고 있음을 알리는 리밸런싱 권고가 생성될 때 대체 스팟 인스턴스를 시작하도록 스팟 플릿을 구성할 수 있습니다. 용량 리밸런싱을 사용하면 실행 중인 인스턴스가 Amazon EC2에 의해 중단되기 전에 미리 새 스팟 인스턴스로 플릿을 보강할 수 있으므로 워크로드 가용성을 유지하는 데 도움이 됩니다. 자세한 내용은 EC2 인스턴스 리밸런싱 권고 섹션을 참조하세요.

대체 스팟 인스턴스를 시작하도록 스팟 플릿을 구성하려면 Amazon EC2 콘솔 또는 AWS CLI를 사용할 수 있습니다.

제한 사항

  • 용량 재분배는 maintain 유형의 플릿에만 사용할 수 있습니다.

  • 플릿이 실행 중인 경우 용량 리밸런싱 설정을 수정할 수 없습니다. 용량 리밸런싱 설정을 변경하려면 플릿을 삭제하고 새 플릿을 생성해야 합니다.

구성 옵션

스팟 플릿에 대한 ReplacementStrategy는 다음 두 값을 지원합니다.

launch-before-terminate

Amazon EC2는 새로운 대체 스팟 인스턴스가 시작된 후 리밸런싱 알림을 받는 스팟 인스턴스를 종료합니다. launch-before-terminate를 지정하면 termination-delay에 대한 값도 함께 지정해야 합니다. 새 대체 인스턴스가 시작된 후 Amazon EC2는 termination-delay 기간 동안 기다린 다음 이전 인스턴스를 종료합니다. termination-delay에 대해 최소값은 120초(2분)이고 최대값은 7,200초(2시간)입니다.

인스턴스 종료 절차가 완료되는 데 걸리는 시간을 예측할 수 있는 경우에만 launch-before-terminate를 사용하는 것이 좋습니다. 이렇게 하면 종료 절차가 완료된 후에만 이전 인스턴스가 종료됩니다. Amazon EC2는 termination-delay 전 2분 경고를 통해 기존 인스턴스를 중단할 수 있습니다.

중단 위험이 높은 교체 스팟 인스턴스를 피하기 위해 launch-before-terminate와 함께 lowestPrice 할당 전략을 사용하지 않는 것이 좋습니다.

launch

Amazon EC2는 기존 스팟 인스턴스에 대해 리밸런싱 알림이 전송될 때 대체 스팟 인스턴스를 시작합니다. Amazon EC2는 리밸런싱 알림을 수신하는 인스턴스를 종료하지 않습니다. 이전 인스턴스를 종료하거나 실행 중인 상태로 둘 수 있습니다. 두 인스턴스가 실행되는 동안에는 두 인스턴스에 대해 요금이 청구됩니다.

고려 사항

용량 리밸런싱을 위해 스팟 플릿을 구성하는 경우 다음을 고려하세요.

요청에 가능한 한 많은 스팟 용량 풀 제공

여러 인스턴스 유형 및 가용 영역을 사용하도록 스팟 플릿을 구성합니다. 이렇게 하면 다양한 스팟 용량 풀의 스팟 인스턴스를 유연하게 시작할 수 있습니다. 자세한 내용은 인스턴스 유형 및 가용 영역에 대한 유연성 유지 단원을 참조하십시오.

대체 스팟 인스턴스의 중단 위험 증가 방지

lowestPrice 할당 전략을 사용하는 경우 교체 스팟 인스턴스가 중단될 위험이 커질 수 있습니다. 이는 교체 스팟 인스턴스가 시작된 직후 중단될 가능성이 높더라도 Amazon EC2는 항상 그 순간에 가용 용량이 있는 최저 가격의 풀에서 인스턴스를 시작하기 때문입니다. 중단 위험이 높아지는 것을 피하기 위해 lowestPrice 할당 전략을 사용하지 않는 것이 좋으며 대신 capacityOptimized 또는 capacityOptimizedPrioritized 할당 전략을 권장합니다. 이러한 전략을 통해 대체 스팟 인스턴스가 최적의 스팟 용량 풀에서 시작되므로 가까운 시일 내에 중단될 가능성이 줄어듭니다. 자세한 내용은 가격 및 용량 최적화 할당 전략 사용 단원을 참조하십시오.

Amazon EC2는 가용성이 동일하거나 더 나은 경우에만 새 인스턴스를 시작함

용량 리밸런싱의 목표 중 하나는 스팟 인스턴스의 가용성을 개선하는 것입니다. 기존 스팟 인스턴스에 대한 리밸런싱 권장 사항이 있는 경우, Amazon EC2는 새 인스턴스가 기존 인스턴스와 동일하거나 더 나은 가용성을 제공하는 경우에만 새 인스턴스를 시작합니다. 새 인스턴스의 중단 위험이 기존 인스턴스보다 더 높은 경우 Amazon EC2는 새 인스턴스를 시작하지 않습니다. 하지만 Amazon EC2는 스팟 용량 풀을 계속 평가하여 가용성이 향상되면 새 인스턴스를 시작합니다.

Amazon EC2가 사전에 새 인스턴스를 시작하지 않은 채로 기존 인스턴스가 중단될 수 있습니다. 이 경우 Amazon EC2는 새 인스턴스가 중단될 위험이 높은지 여부에 관계없이 새 인스턴스를 시작하려고 시도합니다.

용량 리밸런싱은 스팟 인스턴스의 간섭 속도를 증가시키지 않음

용량 리밸런싱을 활성화하면 스팟 인스턴스 중단 속도(Amazon EC2가 용량을 회수해야 할 때 회수되는 스팟 인스턴스의 수)가 증가하지 않습니다. 그러나 용량 리밸런싱에서 중단 위험이 있는 인스턴스를 탐지할 경우, Amazon EC2가 즉시 새로운 인스턴스를 시작하려고 시도합니다. 위험한 인스턴스가 중단된 후 Amazon EC2가 시작되기를 기다리면 새 인스턴스를 시작하는 것보다 더 많은 인스턴스가 교체될 수 있습니다.

용량 리밸런싱을 활성화하면 더 많은 인스턴스를 교체하게 될 수도 있지만, 인스턴스가 중단되기 전까지 조치를 취할 시간 여유가 늘어나 미리 대비할 수 있어 도움이 됩니다. 스팟 인스턴스 중단 알림이 오면 일반적으로 최대 2분 이내에 인스턴스를 적절히 종료해야 합니다. 용량 리밸런싱이 미리 새 인스턴스를 시작할 경우, 기존 프로세스에서 위험한 인스턴스를 완료하여 인스턴스 종료 절차를 시작할 기회가 커지므로 위험한 인스턴스에 새 작업이 예약되지 않도록 방지할 수 있습니다. 또한, 새로 시작한 인스턴스가 애플리케이션을 가져가도록 준비를 시작할 수도 있습니다. 용량 리밸런싱에서 미리 인스턴스를 교체하기 때문에 적절한 연속성을 누릴 수 있습니다.

용량 리밸런싱을 사용할 때의 위험과 장점을 보여주는 이론적 예시로써 다음의 시나리오를 보여드리겠습니다.

  • 오후 2:00 – 인스턴스-A에 대한 리밸런싱 권고를 받고, Amazon EC2가 즉시 교체 인스턴스-B를 시작하려고 시도하므로 종료 절차를 시작할 시간이 마련됩니다.*

  • 오후 2:30 – 인스턴스-B에 대한 리밸런싱 권고를 받고 인스턴스-C로 교체하므로 종료 절차를 시작할 시간이 마련됩니다.*

  • 오후 2:32 – 용량 리밸런싱을 활성화하지 않았고 인스턴스-A에 대한 스팟 인스턴스 간섭 알림을 오후 2:32에 받지 않은 경우, 조치를 취할 시간이 2분에 불과하지만 인스턴스-A는 이 시점까지 계속 실행 중입니다.

* launch-before-terminate를 지정한 경우, 교체 인스턴스가 실행된 후 Amazon EC2가 위험한 인스턴스를 종료합니다.

Amazon EC2는 이행 용량이 목표 용량의 두 배가 되기 전까지 새 대체 스팟 인스턴스를 시작할 수 있음

스팟 플릿에 용량 리밸런싱이 구성된 경우 Amazon EC2는 리밸런싱 권고를 수신하는 모든 스팟 인스턴스에 대해 새로운 대체 스팟 인스턴스를 시작합니다. 재분배 권고를 수신하는 스팟 인스턴스는 더 이상 이행 용량의 일부로 계산되지 않습니다. 대체 전략에 따라 Amazon EC2는 사전 구성된 종료 지연 후에 인스턴스를 종료하거나 실행 중인 상태로 둡니다. 그러면 인스턴스에서 리밸런싱 작업을 수행할 수 있습니다.

플릿이 목표 용량의 두 배에 도달하면 대체 인스턴스 자체가 리밸런싱 권고를 수신하더라도 새 대체 인스턴스의 시작이 중지됩니다.

예를 들어 100개의 스팟 인스턴스를 목표 용량으로 하는 스팟 플릿을 생성할 수 있습니다. 모든 스팟 인스턴스가 재분배 권고를 수신하고 Amazon EC2가 100개의 대체 스팟 인스턴스를 시작합니다. 그러면 이행된 스팟 인스턴스의 수가 200으로 증가하여 목표 용량의 두 배가 됩니다. 대체 인스턴스 중 일부는 리밸런싱 권고를 수신하지만, 플릿이 목표 용량의 두 배를 초과할 수 없기 때문에 더 이상 대체 인스턴스가 시작되지 않습니다.

인스턴스가 실행되는 동안에는 모든 인스턴스에 대해 요금이 청구됩니다.

재분배 권고를 수신하는 스팟 인스턴스를 종료하는 스팟 플릿을 구성하는 것이 좋음

용량 재분배를 위해 스팟 플릿을 구성하는 경우 인스턴스 종료 절차가 완료되는 데 걸리는 시간을 예측할 수 있는 경우에만 적절한 종료 지연으로 launch-before-terminate를 선택합니다. 이렇게 하면 종료 절차가 완료된 후에만 이전 인스턴스가 종료됩니다.

재분배를 위해 권장되는 인스턴스를 직접 종료하도록 선택하는 경우 플릿의 스팟 인스턴스에 수신되는 재분배 권고 신호를 모니터링하는 것이 좋습니다. 신호를 모니터링하면 Amazon EC2에서 중단하기 전에 영향을 받는 인스턴스에 대해 리밸런싱 작업을 신속하게 수행한 다음 수동으로 종료할 수 있습니다. 인스턴스를 종료하지 않으면 인스턴스가 실행되는 동안 계속 비용을 지불하게 됩니다. Amazon EC2는 리밸런싱 권고를 수신하는 인스턴스를 자동으로 종료하지 않습니다.

Amazon EventBridge 또는 인스턴스 메타데이터를 사용하여 알림을 설정할 수 있습니다. 자세한 내용은 리밸런싱 권고 신호 모니터링 섹션을 참조하세요.

스팟 플릿은 스케일 인 또는 아웃 중에 이행 용량을 계산할 때 리밸런싱 권고를 수신하는 인스턴스를 계산하지 않음

스팟 플릿에 용량 리밸런싱이 구성되어 있고 목표 용량을 축소 또는 확장으로 변경하는 경우 다음과 같이 플릿은 리밸런싱으로 표시된 인스턴스를 이행 용량의 일부로 계산하지 않습니다.

  • 스케일 인 – 원하는 목표 용량을 줄이는 경우 Amazon EC2는 원하는 용량에 도달할 때까지 리밸런싱으로 표시되지 않은 인스턴스를 종료합니다. 리밸런싱으로 표시된 인스턴스는 이행 용량으로 계산되지 않습니다.

    예를 들어 스팟 인스턴스 100개의 목표 용량으로 스팟 플릿을 생성하는 경우 10개의 인스턴스에서 리밸런싱 권고를 수신하면 Amazon EC2가 10개의 새로운 대체 인스턴스를 시작하므로 결과적으로 이행 용량은 110개 인스턴스가 됩니다. 그런 다음 목표 용량을 50으로 줄이면(스케일 인) 이행 용량은 실제로 60개 인스턴스가 됩니다. Amazon EC2가 리밸런싱으로 표시된 10개 인스턴스가 종료되지 않기 때문입니다. 이러한 인스턴스를 수동으로 종료하거나 실행 상태로 둘 수 있습니다.

  • 스케일 아웃 – 원하는 목표 용량을 늘리면 원하는 용량에 도달할 때까지 Amazon EC2가 새 인스턴스를 시작합니다. 리밸런싱으로 표시된 인스턴스는 이행 용량으로 계산되지 않습니다.

    예를 들어 스팟 인스턴스 100개의 목표 용량으로 스팟 플릿을 생성하는 경우 10개의 인스턴스에서 리밸런싱 권고를 수신하면 Amazon EC2가 10개의 새로운 대체 인스턴스를 시작하므로 결과적으로 이행 용량은 110개 인스턴스가 됩니다. 그런 다음 목표 용량을 200으로 늘리면(확장) 이행 용량은 실제로 210개 인스턴스가 됩니다. 플릿에서 리밸런싱으로 표시된 10개 인스턴스가 목표 용량의 일부로 계산되지 않기 때문입니다. 이러한 인스턴스를 수동으로 종료하거나 실행 상태로 둘 수 있습니다.