스팟 인스턴스를 위한 할당 전략 - Amazon Elastic Compute Cloud

스팟 인스턴스를 위한 할당 전략

시작 구성은 스팟 플릿이 스팟 인스턴스를 시작할 수 있는 모든 스팟 용량 풀(인스턴스 유형, 가용 영역)을 결정합니다. 하지만 인스턴스를 시작할 때 스팟 플릿은 지정한 할당 전략을 사용하여 가능한 풀에서 특정 풀을 선택합니다.

할당 전략

스팟 인스턴스에는 다음 할당 전략 중 하나를 지정할 수 있습니다.

priceCapacityOptimized(권장)

스팟 플릿은 시작하는 인스턴스의 수에 맞추어 용량 가용성이 가장 높은 풀을 가져옵니다. 즉, 가까운 시일 내에 중단될 가능성이 가장 낮다고 판단되는 풀에서 스팟 인스턴스를 요청합니다. 그러면 스팟 플릿이 해당 풀에서 가장 가격이 낮은 스팟 인스턴스를 요청합니다.

priceCapacityOptimized 할당 전략은 컨테이너화된 상태 비저장 애플리케이션, 마이크로서비스, 웹 애플리케이션, 데이터 및 분석 작업, 배치 처리와 같은 대부분의 스팟 워크로드에 가장 적합합니다.

capacityOptimized

스팟 플릿은 시작하는 인스턴스의 수에 맞추어 용량 가용성이 가장 높은 풀을 가져옵니다. 즉, 가까운 시일 내에 중단될 가능성이 가장 낮다고 판단되는 풀에서 스팟 인스턴스를 요청합니다. 선택적으로 capacityOptimizedPrioritized를 사용하여 플릿의 각 인스턴스 유형에 대해 우선 순위를 설정할 수 있습니다.. 스팟 플릿은 용량을 먼저 최적화하지만 최선의 노력을 기준으로 인스턴스 유형 우선 순위를 준수합니다.

스팟 인스턴스에서 요금은 시간이 지나면서 수요 및 공급의 장기 추세에 따라 서서히 변화하지만 용량은 실시간으로 변동합니다. capacityOptimized 전략은 실시간 용량 데이터를 기준으로 가장 가용성이 높은 풀을 예측하여 자동으로 스팟 인스턴스를 가장 가용성이 높은 풀로 시작합니다. 이 전략은 작업 재시작 시 중단으로 인한 비용이 상대적으로 높을 수 있는 워크로드에 유용합니다. 이 전략은 긴 지속적 통합(CI), 이미지 및 미디어 렌더링, 딥 러닝, 고성능 컴퓨팅(HPC)과 같이 작업 재시작 비용이 상대적으로 높을 수 있는 워크로드에 유용합니다. capacityOptimized 전략은 중단을 줄일 수 있는 가능성을 제공함으로써 전체 워크로드 비용을 낮출 수 있습니다.

사용자는 capacityOptimizedPrioritized 할당 전략과 우선 순위 파라미터를 사용하여 우선 순위가 높은 순서에서 낮은 순서로 인스턴스 유형 우선 순위를 지정할 수 있습니다. 여러 인스턴스 유형에 동일한 우선 순위를 설정할 수 있습니다. 스팟 플릿은 용량을 우선으로 최적화하지만 최선의 노력을 기준으로 인스턴스 유형 우선 순위를 따릅니다. 예를 들어 스팟 플릿에서 최적 용량으로 프로비저닝하는 데 우선 순위가 큰 영향을 미치지 않을 수 있습니다. 이 옵션은 중단 가능성을 최소화해야 하고 특정 인스턴스 유형에 대한 선호도가 중요한 워크로드에 적합합니다. 우선 순위 사용은 플릿이 시작 템플릿을 사용하는 경우에만 지원됩니다. capacityOptimizedPrioritized에 대한 우선 순위를 설정할 때 온디맨드 AllocationStrategyprioritized로 설정되어 있으면 온디맨드 인스턴스에도 동일한 우선 순위가 적용됩니다.

diversified

스팟 인스턴스는 모든 풀에 두루 분산됩니다.

lowestPrice

스팟 인스턴스는 용량이 있는 최저 가격 풀에서 제공됩니다. 이는 기본 전략입니다. 하지만 priceCapacityOptimized 할당 전략을 지정하여 기본값을 재정의하는 것이 좋습니다.

가장 낮은 가격의 풀에 사용 가능한 용량이 없는 경우 스팟 인스턴스는 사용 가능한 용량이 있는 다음으로 가장 낮은 가격의 풀에서 제공됩니다.

목표 용량을 이행하기 전에 풀에 용량이 부족해질 경우 스팟 플릿은 다음으로 가격이 낮은 풀에서 끌어와 요청을 계속 이행합니다. 목표 용량이 충족되었는지 확인하기 위해 여러 풀에서 스팟 인스턴스를 받을 수도 있습니다.

이 전략은 인스턴스 가격만 고려하고 용량 가용성은 고려하지 않기 때문에 중단률이 높아질 수 있습니다.

InstancePoolsToUseCount

대상 스팟 용량을 할당할 스팟 풀 수입니다. 스팟 할당 전략이 lowestPrice로 설정된 경우에만 유효합니다. 스팟 플릿에서 가격이 가장 낮은 스팟 풀을 선택하고 지정한 스팟 풀 수에 걸쳐 대상 스팟 용량을 균등하게 할당합니다.

스팟 플릿은 가능한 한 지정한 풀 수에서 스팟 인스턴스를 끌어오려고 합니다. 목표 용량을 이행하기 전에 풀에 스팟 용량이 부족해질 경우 스팟 플릿은 다음으로 가격이 낮은 풀에서 끌어와 요청을 계속 이행합니다. 목표 용량이 충족되도록 하기 위해 지정한 풀 수보다 많은 수의 스팟 인스턴스를 받게 될 수 있습니다. 마찬가지로 대부분의 풀에 스팟 용량이 없는 경우 지정한 풀 수보다 적은 수의 풀에서 전체 목표 용량을 받을 수 있습니다.

적합한 할당 전략 선택

적절한 스팟 할당 전략을 선택하여 사용 사례에 따라 플릿을 최적화할 수 있습니다. 스팟 플릿은 항상 퍼블릭 온디맨드 가격을 기반으로 가장 가격이 낮은 인스턴스 유형을 온디맨드 인스턴스 목표 용량에 대해 선택하며, 스팟 인스턴스에 대해서는 할당 전략(priceCapacityOptimized, capacityOptimized, diversified 또는lowestPrice)을 따릅니다.

최저 가격과 용량 가용성의 균형

가장 가격이 낮은 스팟 용량 풀과 용량 가용성이 가장 높은 스팟 용량 풀 간의 균형을 맞추려면 priceCapacityOptimized 할당 전략을 사용하는 것이 좋습니다. 이 전략은 풀 가격과 해당 풀에 있는 스팟 인스턴스의 용량 가용성을 기준으로 스팟 인스턴스를 요청할 풀을 결정합니다. 즉, 가격을 고려하는 동시에 가까운 시일 내에 중단될 가능성이 가장 낮다고 판단되는 풀에서 스팟 인스턴스를 요청합니다.

플릿이 컨테이너화된 애플리케이션, 마이크로서비스, 웹 애플리케이션, 데이터 및 분석 작업, 배치 처리 등 복원력이 뛰어난 상태 비저장 워크로드를 실행하는 경우, priceCapacityOptimized 할당 전략을 사용하여 최적의 비용과 용량 가용성을 확보하세요.

플릿에서 작업 재시작 시 중단으로 인한 비용이 상대적으로 높을 수 있는 워크로드를 실행하는 경우, 애플리케이션이 중단되었을 때 해당 시점부터 다시 시작할 수 있도록 체크포인트를 구현해야 합니다. 체크포인트를 사용하면 가격이 가장 낮으면서 스팟 인스턴스 중단률도 낮은 풀에서 용량이 할당되므로, priceCapacityOptimized 할당 전략이 이러한 워크로드에도 적합하게 될 수 있습니다.

priceCapacityOptimized 할당 전략을 사용하는 구성의 예는 예제 10: 용량 최적화 플릿에서 우선 순위를 사용하여 스팟 인스턴스 시작 섹션을 참조하세요.

워크로드의 중단 비용이 높은 경우

비슷한 가격의 인스턴스 유형을 사용하는 워크로드를 실행하거나 중단 비용이 너무 높아 중단이 미미하게 증가하는 데도 비용 절감 효과가 너무 적은 워크로드를 실행하는 경우, capacityOptimized 전략을 선택적으로 사용할 수 있습니다. 이 전략은 중단을 줄일 수 있는 가능성을 제공하는 가용성이 가장 높은 스팟 용량 풀에서 용량을 할당하므로, 전체 워크로드 비용을 낮출 수 있습니다. capacityOptimized 할당 전략을 사용하는 구성의 예는 예제 8: 대체 스팟 인스턴스를 시작하도록 용량 리밸런싱 구성 섹션을 참조하세요.

중단 가능성을 최소화해야 하지만 특정 인스턴스 유형을 우선적으로 사용해야 하는 경우, capacityOptimizedPrioritized 할당 전략을 사용한 다음 사용할 인스턴스 유형의 순서를 가장 높은 우선 순위에서 가장 낮은 우선 순위로 설정하여 풀 우선 순위를 표현할 수도 있습니다. 구성 예제는 예제 9: 용량 최적화 플릿에서 스팟 인스턴스 시작 섹션을 참조하세요.

우선 순위 사용은 플릿이 시작 템플릿을 사용하는 경우에만 지원됩니다. 또한 capacityOptimizedPrioritized에 대한 우선순위를 설정할 때 온디맨드 AllocationStrategyprioritized로 설정되어 있으면 온디맨드 인스턴스에도 동일한 우선순위가 적용됩니다.

시간이 유동적이고 용량 가용성이 중요하지 않은 워크로드의 경우

플릿이 작거나 짧은 시간 동안 실행될 경우, priceCapacityOptimized를 사용하여 가용성을 고려하면서 비용 절감 효과를 극대화할 수 있습니다.

시간이 유동적이고 용량 가용성이 중요하지 않은 워크로드의 경우, 선택적으로 lowestPrice 할당 전략을 사용하여 비용 절감 효과를 극대화할 수 있습니다. 하지만 lowestPrice 할당 전략은 인스턴스 가격만 고려하고 용량 가용성은 고려하지 않기 때문에 스팟 인스턴스 중단률이 높아질 수 있습니다.

플릿 규모가 크거나 장시간 실행되는 경우

플릿이 크거나 장시간 실행될 경우 diversified 전략을 사용하여 여러 풀에 걸쳐 스팟 인스턴스를 분산하여 플릿의 가용성을 높일 수 있습니다. 예를 들어 스팟 플릿이 풀 10개와 인스턴스 100개의 목표 용량을 지정하는 경우 플릿은 각 풀에서 스팟 인스턴스 10개를 시작합니다. 풀에서 스팟 가격이 최고 가격을 초과하는 경우, 플릿 중 10%만 영향을 받습니다. 이 전략을 사용하면 플릿이 시간이 지나면서 어느 한 풀에서 발생하는 스팟 가격의 상승에 덜 민감해집니다. diversified 전략 사용 시 스팟 플릿은 온디맨드 가격보다 높거나 이 가격과 동일한 스팟 가격의 풀로 스팟 인스턴스를 시작하지 않습니다.

가격이 낮고 다각화된 플릿을 생성하려면 lowestPrice와 함께 InstancePoolsToUseCount 전략을 사용하세요. 예를 들어 목표 용량이 10개의 스팟 인스턴스이고 2개의 스팟 용량 풀(InstancePoolsToUseCount)을 지정할 경우, 스팟 플릿은 가격이 가장 낮은 2개의 풀을 사용하여 스팟 용량을 충족합니다.

스팟 인스턴스를 할당할 스팟 용량 풀 수로써 낮은 수 또는 높은 수를 사용할 수 있습니다. 예를 들어 일괄 처리를 실행하는 경우 대기열이 비용 절감 효과를 극대화하는 동시에 컴퓨팅 용량을 항상 확보할 수 있도록 스팟 용량 풀 수를 낮게(예: InstancePoolsToUseCount=2) 지정하는 것이 좋습니다. 웹 서비스를 실행하는 경우 스팟 용량 풀을 일시적으로 사용할 수 없게 되었을 때 그 충격을 최소화할 수 있도록 스팟 용량 풀 수를 높게(예: InstancePoolsToUseCount=10) 지정하는 것이 좋습니다.

스팟 플릿은 가능한 한 지정한 풀 수에서 스팟 인스턴스를 끌어오려고 합니다. 목표 용량을 이행하기 전에 풀에 스팟 용량이 부족해질 경우 스팟 플릿은 다음으로 가격이 낮은 풀에서 끌어와 요청을 계속 이행합니다. 목표 용량이 충족되도록 하기 위해 지정한 풀 수보다 많은 수의 스팟 인스턴스를 받게 될 수 있습니다. 마찬가지로 대부분의 풀에 스팟 용량이 없는 경우 지정한 풀 수보다 적은 수의 풀에서 전체 목표 용량을 받을 수 있습니다.

목표 용량 유지

스팟 가격 또는 스팟 용량 풀의 가용 용량 변화로 인해 스팟 인스턴스가 종료된 후 maintain 유형의 스팟 플릿은 대체 스팟 인스턴스를 시작합니다. 이 할당 전략은 다음과 같이 대체 인스턴스를 시작할 풀을 결정합니다.

  • priceCapacityOptimized 할당 전략을 사용하는 경우, 플릿은 스팟 인스턴스 용량 가용성이 가장 높은 풀에서 대체 인스턴스를 시작하면서 동시에 가격도 고려합니다. 즉, 용량 가용성이 높으면서 가격이 가장 낮은 풀을 식별합니다.

  • 할당 전략이 capacityOptimized인 경우, 플릿은 스팟 인스턴스 용량의 가용성이 가장 높은 풀에서 대체 인스턴스를 시작합니다.

  • 할당 전략이 diversified인 경우 플릿은 나머지 풀에 대체 스팟 인스턴스를 배포합니다.

  • 할당 전략이 lowestPrice인 경우, 플릿은 현재 스팟 가격이 가장 낮은 풀에서 대체 인스턴스를 시작합니다.

  • 할당 전략으로써 lowestPrice와 함께 InstancePoolsToUseCount를 사용하는 경우 플릿이 최저 가격의 스팟 용량 풀을 선택하여 지정된 스팟 용량 풀 수에 걸쳐 스팟 인스턴스를 시작합니다.