EC2 집합 구성의 예 - Amazon Elastic Compute Cloud

EC2 집합 구성의 예

다음 예제에서는 create-fleet 명령에 사용하여 EC2 집합을 생성할 수 있는 시작 구성을 보여줍니다. 플릿 파라미터에 대한 자세한 내용은 AWS CLI 명령 레퍼런스create-fleet을 참조하세요.

예 1: 스팟 인스턴스를 기본 구입 옵션으로 시작

다음 예제에서는 EC2 집합에 필요한 최소한의 파라미터, 즉 시작 템플릿, 목표 용량 및 기본 구매 옵션을 지정합니다. 시작 템플릿은 시작 템플릿 ID와 버전 번호로 식별됩니다. 플릿의 목표 용량은 인스턴스 2개이고 기본 구입 옵션은 spot이므로 플릿이 스팟 인스턴스 2개를 시작합니다.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "spot" } }

예 2: 온디맨드 인스턴스를 기본 구입 옵션으로 시작

다음 예제에서는 EC2 집합에 필요한 최소한의 파라미터, 즉 시작 템플릿, 목표 용량 및 기본 구매 옵션을 지정합니다. 시작 템플릿은 시작 템플릿 ID와 버전 번호로 식별됩니다. 플릿의 목표 용량은 인스턴스 2개이고 기본 구입 옵션은 on-demand이므로 플릿이 온디맨드 인스턴스 2개를 시작합니다.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "on-demand" } }

예 3: 온디맨드 인스턴스를 기본 용량으로 시작

다음 예제에서는 총 목표 용량인 인스턴스 2개를 플릿에 지정하고 목표 용량은 온디맨드 인스턴스 1개로 지정합니다. 기본 구매 옵션은 spot입니다. 지정한 대로 플릿은 온디맨드 인스턴스 1개를 시작하지만 총 목표 용량을 충족하려면 인스턴스를 하나 더 시작해야 합니다. 차이에 대한 구매 옵션이 TotalTargetCapacityOnDemandTargetCapacity = DefaultTargetCapacityType으로 계산되므로 플릿에서 스팟 인스턴스 1개를 시작합니다.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "OnDemandTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } }

예 4: lowest-price 할당 전략을 사용하여 스팟 인스턴스 시작

스팟 인스턴스의 할당 전략이 지정되어 있지 않으면 기본 할당 전략인 lowest-price가 사용됩니다. 다음 예제에서는 lowest-price 할당 전략을 사용합니다. 시작 템플릿을 재정의하고 서로 인스턴스 유형은 다르지만 가중치 용량과 서브넷이 동일한 시작 사양 3개가 있습니다. 총 목표 용량은 인스턴스 2개이고 기본 구매 옵션은 spot입니다. EC2 집합는 최저 가격이 지정된 시작 사양의 인스턴스 유형을 사용하여 스팟 인스턴스 2개를 시작합니다.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } "Overrides": [ { "InstanceType": "c4.large", "WeightedCapacity": 1, "SubnetId": "subnet-a4f6c5d3" }, { "InstanceType": "c3.large", "WeightedCapacity": 1, "SubnetId": "subnet-a4f6c5d3" }, { "InstanceType": "c5.large", "WeightedCapacity": 1, "SubnetId": "subnet-a4f6c5d3" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "spot" } }

예 5: 여러 용량 예약을 사용하여 온디맨드 인스턴스 시작

용량 예약에 대한 사용 전략을 use-capacity-reservations-first로 설정하여 온디맨드 인스턴스를 시작할 때 온디맨드 용량 예약부터 사용하도록 플릿을 구성할 수 있습니다. 이 예에서는 플릿이 목표 용량을 처리하는 데 필요한 용량 예약보다 많을 때 사용할 용량 예약을 선택하는 방법을 보여 줍니다.

이 예에서 플릿 구성은 다음과 같습니다.

  • 목표 용량: 온디맨드 인스턴스 12개

  • 총 미사용 용량 예약: 15개(플릿의 목표 용량인 온디맨드 인스턴스 12개보다 많음)

  • 용량 예약 풀 수: 3개(m5.large, m4.xlargem4.2xlarge)

  • 풀당 용량 예약 수: 5개

  • 온디맨드 할당 전략: lowest-price(여러 인스턴스 풀에 미사용 용량 예약이 여러 개 있는 경우 플릿은 온디맨드 할당 전략에 따라 온디맨드 인스턴스를 시작할 풀 결정)

    lowest-price 할당 전략 대신 prioritized 할당 전략을 사용할 수도 있습니다.

용량 예약

이 계정은 3개의 풀에 다음과 같은 미사용 용량 예약 15개를 가지고 있습니다. 각 풀의 용량 예약 수는 AvailableInstanceCount로 표시됩니다.

{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount":5, "InstanceMatchCriteria": "open", "State": "active" }

플릿 구성

다음 플릿 구성에서는 이 예제와 관련된 구성만 보여 줍니다. 총 목표 용량은 12이고, 기본 목표 용량 유형은 on-demand입니다. 온디맨드 할당 전략은 lowest-price입니다. 용량 예약에 대한 사용 전략은 use-capacity-reservations-first입니다.

이 예에서 온디맨드 인스턴스 가격은 다음과 같습니다.

  • m5.large - 시간당 $0.096

  • m4.xlarge - 시간당 $0.20

  • m4.2xlarge - 시간당 $0.40

참고

플릿 유형은 instant여야 합니다. 다른 플릿 유형에서는 use-capacity-reservations-first를 지원하지 않습니다.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-abc1234567example", "Version": "1" } "Overrides": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.2xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 12, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price" "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant", }

이전 구성을 사용하여 instant 플릿을 생성하면 목표 용량을 충족하기 위해 다음 12개의 인스턴스가 시작됩니다.

  • us-east-1am5.large 온디맨드 인스턴스 5개 – us-east-1am5.large가 최저가이며, 사용 가능한 미사용 m5.large 용량 예약 5개

  • us-east-1a의 m4.xlarge 온디맨드 인스턴스 5개 – us-east-1am4.xlarge가 최저가이며, 사용 가능한 미사용 m4.xlarge 용량 예약 5개

  • us-east-1a의 m4.2xlarge 온디맨드 인스턴스 2개 – us-east-1am4.2xlarge가 세 번째 최저가이고 사용 가능한 미사용 m4.2xlarge 용량 예약은 5개이며, 그중 2개만 있으면 목표 용량 충족 가능

플릿이 시작된 후, describe-capacity-reservations를 실행하여 미사용 용량 예약이 몇 개나 남아 있는지 확인할 수 있습니다. 이 예에서는 m5.largem4.xlarge 용량 예약이 모두 사용되었고 m4.2xlarge 용량 예약 3개는 미사용 상태로 남아 있음을 보여주는 다음과 같은 응답이 나타납니다.

{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "AvailableInstanceCount": 3 }

예 6: 총 목표 용량이 미사용 용량 예약 수보다 많은 경우 용량 예약을 사용하여 온디맨드 인스턴스 시작

용량 예약에 대한 사용 전략을 use-capacity-reservations-first로 설정하여 온디맨드 인스턴스를 시작할 때 온디맨드 용량 예약부터 사용하도록 플릿을 구성할 수 있습니다. 이 예에서는 총 목표 용량이 사용 가능한 미사용 용량 예약 수를 초과할 때 온 디맨드 인스턴스를 시작할 인스턴스 풀을 플릿이 선택하는 방법을 보여 줍니다.

이 예에서 플릿 구성은 다음과 같습니다.

  • 목표 용량: 온디맨드 인스턴스 16개

  • 총 미사용 용량 예약: 15개(플릿의 목표 용량인 온디맨드 인스턴스 16개보다 적음)

  • 용량 예약 풀 수: 3개(m5.large, m4.xlargem4.2xlarge)

  • 풀당 용량 예약 수: 5개

  • 온디맨드 할당 전략: lowest-price(미사용 용량 예약 수가 온디맨드 목표 용량보다 적을 경우 플릿에서 온디맨드 할당 전략을 기반으로 나머지 온디맨드 용량을 시작할 풀 결정)

    lowest-price 할당 전략 대신 prioritized 할당 전략을 사용할 수도 있습니다.

용량 예약

이 계정은 3개의 풀에 다음과 같은 미사용 용량 예약 15개를 가지고 있습니다. 각 풀의 용량 예약 수는 AvailableInstanceCount로 표시됩니다.

{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount":5, "InstanceMatchCriteria": "open", "State": "active" }

플릿 구성

다음 플릿 구성에서는 이 예제와 관련된 구성만 보여 줍니다. 총 목표 용량은 16이고 기본 목표 용량 유형은 on-demand입니다. 온디맨드 할당 전략은 lowest-price입니다. 용량 예약에 대한 사용 전략은 use-capacity-reservations-first입니다.

이 예에서 온디맨드 인스턴스 가격은 다음과 같습니다.

  • m5.large – 시간당 0.096 USD

  • m4.xlarge – 시간당 0.20 USD

  • m4.2xlarge – 시간당 0.40 USD

참고

플릿 유형은 instant여야 합니다. 다른 플릿 유형에서는 use-capacity-reservations-first를 지원하지 않습니다.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } "Overrides": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.2xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 16, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price" "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant", }

이전 구성을 사용하여 instant 플릿을 생성한 후, 목표 용량을 충족하기 위해 다음 16개의 인스턴스가 시작됩니다.

  • us-east-1am5.large 온디맨드 인스턴스 6개 – us-east-1am5.large가 최저가이며, 사용 가능한 미사용 m5.large 용량 예약 5개 용량 예약은 먼저 5개의 온디맨드 인스턴스를 시작하는 데 사용됩니다. 나머지 m4.xlargem4.2xlarge 용량 예약을 사용한 후, 목표 용량을 충족하기 위해 추가 온디맨드 인스턴스가 온디맨드 할당 전략에 따라 시작됩니다(이 예에서는 lowest-price).

  • us-east-1am4.xlarge 온디맨드 인스턴스 5개 – us-east-1am4.xlarge가 두 번째 최저가이며, 사용 가능한 미사용 m4.xlarge 용량 예약 5개

  • us-east-1am4.2xlarge 온디맨드 인스턴스 5개 – us-east-1am4.2xlarge가 세 번째 최저가이며, 사용 가능한 미사용 m4.2xlarge 용량 예약 5개

플릿이 시작된 후, describe-capacity-reservations를 실행하여 미사용 용량 예약가 몇 개나 남아 있는지 확인할 수 있습니다. 이 예에서는 모든 풀의 용량 예약가 모두 사용되었음을 보여 주는 다음 응답이 나타납니다.

{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "AvailableInstanceCount": 0 }

예 7: 대상으로 지정된 용량 예약을 사용하여 온디맨드 인스턴스 시작

용량 예약에 대한 사용 전략을 use-capacity-reservations-first로 설정하여 온디맨드 인스턴스를 시작할 때 targeted 온디맨드 용량 예약부터 사용하도록 플릿을 구성할 수 있습니다. 이 예에서는 온디맨드 인스턴스를 targeted 용량 예약으로 시작하는 방법을 보여 줍니다. 여기서 용량 예약의 속성은 가용 영역(us-east-1aus-east-1b)을 제외하고 동일합니다. 또한 총 목표 용량이 사용 가능한 미사용 용량 예약 수를 초과할 때 온디맨드 인스턴스를 시작할 인스턴스 풀을 플릿이 선택하는 방법을 보여 줍니다.

이 예에서 플릿 구성은 다음과 같습니다.

  • 목표 용량: 온디맨드 인스턴스 10개

  • 총 미사용 targeted 용량 예약: 6개(플릿의 온디맨드 목표 용량인 온디맨드 인스턴스 10개보다 적음)

  • 용량 예약 풀 수: 2개(us-east-1aus-east-1b)

  • 풀당 용량 예약 수: 3개

  • 온디맨드 할당 전략: lowest-price(미사용 용량 예약 수가 온디맨드 목표 용량보다 적을 경우 플릿에서 온디맨드 할당 전략을 기반으로 나머지 온디맨드 용량을 시작할 풀 결정)

    lowest-price 할당 전략 대신 prioritized 할당 전략을 사용할 수도 있습니다.

이 예제를 완료하기 위해 수행해야 하는 절차에 대한 시연은 튜토리얼: 대상으로 지정된 용량 예약을 사용하여 온디맨드 인스턴스 시작 섹션을 참조하세요.

용량 예약

이 계정은 2개의 풀에 다음과 같은 미사용 용량 예약 6개를 가지고 있습니다. 이 예에서 풀은 가용 영역에 따라 다릅니다. 각 풀의 용량 예약 수는 AvailableInstanceCount로 표시됩니다.

{ "CapacityReservationId": "cr-111", "InstanceType": "c5.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "c5.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1b", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" }

플릿 구성

다음 플릿 구성에서는 이 예제와 관련된 구성만 보여 줍니다. 총 목표 용량은 10이고 기본 목표 용량 유형은 on-demand입니다. 온디맨드 할당 전략은 lowest-price입니다. 용량 예약에 대한 사용 전략은 use-capacity-reservations-first입니다.

이 예에서 us-east-1c5.xlarge에 대한 온디맨드 인스턴스 가격은 시간당 $0.17입니다.

참고

플릿 유형은 instant여야 합니다. 다른 플릿 유형에서는 use-capacity-reservations-first를 지원하지 않습니다.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "c5.xlarge", "AvailabilityZone": "us-east-1a" }, { "InstanceType": "c5.xlarge", "AvailabilityZone": "us-east-1b" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 10, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant" }

이전 구성을 사용하여 instant 플릿을 생성하면 목표 용량을 충족하기 위해 다음 10개의 인스턴스가 시작됩니다.

  • 용량 예약은 먼저 다음과 같이 6개의 온디맨드 인스턴스를 시작하는 데 사용됩니다.

    • 3개의 온디맨드 인스턴스는 us-east-1a에서 3개의 c5.xlarge targeted 용량 예약으로 시작됩니다.

    • 3개의 온디맨드 인스턴스는 us-east-1b에서 3개의 c5.xlarge targeted 용량 예약으로 시작됩니다.

  • 목표 용량을 충족하기 위해 4개의 추가 온디맨드 인스턴스가 온디맨드 할당 전략에 따라 일반 온디맨드 용량으로 시작됩니다(이 예에서는 lowest-price). 그러나 풀의 가격이 동일하기 때문에(가용 영역이 아닌 리전별로 가격이 책정되기 때문에) 플릿은 나머지 4개의 온디맨드 인스턴스를 두 풀 중 하나로 시작합니다.

플릿이 시작된 후, describe-capacity-reservations를 실행하여 미사용 용량 예약가 몇 개나 남아 있는지 확인할 수 있습니다. 이 예에서는 모든 풀의 용량 예약가 모두 사용되었음을 보여 주는 다음 응답이 나타납니다.

{ "CapacityReservationId": "cr-111", "InstanceType": "c5.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c5.xlarge", "AvailableInstanceCount": 0 }

예제 8: 대체 스팟 인스턴스를 시작하도록 용량 리밸런싱 구성

다음 예제에서는 Amazon EC2에서 플릿의 스팟 인스턴스에 대한 리밸런싱 권고가 생성될 때 대체 스팟 인스턴스를 시작하도록 EC2 플릿을 구성합니다. 스팟 인스턴스의 자동 대체를 구성하려면 ReplacementStrategylaunch-before-terminate를 지정합니다. 새 대체 스팟 인스턴스가 시작되는 시점부터 이전 스팟 인스턴스가 자동으로 삭제될 때까지의 시간 지연을 구성하려면 termination-delay에 대해 초 단위로 값을 지정합니다. 자세한 내용은 구성 옵션 단원을 참조하십시오.

참고

이러한 절차가 완료된 후에만 이전 인스턴스가 종료되도록 인스턴스 종료 프로시저가 완료되는 데 걸리는 시간을 예측할 수 있는 경우에만 launch-before-terminate를 사용하는 것이 좋습니다. 두 인스턴스가 실행되는 동안에는 두 인스턴스에 대해 요금이 청구됩니다.

용량 리밸런싱 전략의 효과는 EC2 집합 요청에 지정된 스팟 용량 풀 수에 따라 달라집니다. 다양한 인스턴스 유형 및 가용 영역 세트로 플릿을 구성하고 AllocationStrategy에 대해 capacity-optimized를 지정하는 것이 좋습니다. 용량 리밸런싱에 대해 EC2 집합을 구성할 때 고려해야 할 사항에 대한 자세한 내용은 용량 리밸런싱 섹션을 참조하세요.

{ "ExcessCapacityTerminationPolicy": "termination", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "LaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceType": "c3.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } }, { "InstanceType": "c4.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } }, { "InstanceType": "c5.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 5, "DefaultTargetCapacityType": "spot" }, "SpotOptions": { "AllocationStrategy": "capacity-optimized", "MaintenanceStrategies": { "CapacityRebalance": { "ReplacementStrategy": "launch-before-terminate", "TerminationDelay": "720" } } } }

예제 9: 용량 최적화 플릿에서 스팟 인스턴스 시작

다음 예제에서는 용량을 최적화하는 스팟 할당 전략을 사용하여 EC2 플릿을 구성하는 방법을 보여줍니다. 용량을 최적화하려면 AllocationStrategycapacity-optimized로 설정해야 합니다.

다음 예제에서는 3개의 시작 사양으로 3개의 스팟 용량 풀을 지정합니다. 목표 용량은 스팟 인스턴스 50개입니다. EC2 플릿은 시작하는 인스턴스의 수에 대한 최적의 용량을 가진 스팟 용량 풀로 스팟 인스턴스 50개를 시작하려고 시도합니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2a" }, }, { "InstanceType": "m4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, }, { "InstanceType": "c5.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 50, "DefaultTargetCapacityType": "spot" } }

예제 10: 용량 최적화 플릿에서 우선 순위를 사용하여 스팟 인스턴스 시작

다음 예제에서는 최선의 노력을 기준으로 우선 순위를 사용하는 동안 용량을 최적화하는 스팟 할당 전략을 사용하여 EC2 플릿을 구성하는 방법을 보여줍니다.

capacity-optimized-prioritized 할당 전략을 사용할 때 Priority 파라미터를 사용하여 스팟 인스턴스 풀의 우선순위를 지정할 수 있습니다. 여기서 숫자가 낮을수록 우선순위는 높습니다. 여러 스팟 용량 풀에 선호도가 동일한 경우 동일한 우선 순위를 설정해도 됩니다. 우선 순위가 설정되지 않은 풀은 우선 순위 측면에서 마지막으로 고려됩니다.

스팟 용량 풀의 우선순위를 지정하려면 AllocationStrategycapacity-optimized-prioritized로 설정해야 합니다. EC2 플릿은 용량을 우선으로 최적화하지만 최선의 노력을 기준으로 우선 순위를 따릅니다. 예를 들어 EC2 플릿에서 최적 용량으로 프로비저닝하는 데 우선 순위가 큰 영향을 미치지 않을 수 있습니다. 이 옵션은 중단 가능성을 최소화해야 하고 특정 인스턴스 유형에 대한 선호도가 중요한 워크로드에 적합합니다.

다음 예제에서는 3개의 시작 사양으로 3개의 스팟 용량 풀을 지정합니다. 각 풀의 우선 순위가 지정되며, 여기서 숫자가 낮을수록 우선 순위가 높습니다. 목표 용량은 스팟 인스턴스 50개입니다. EC2 플릿은 가장 높은 우선 순위의 스팟 용량 풀로 50개의 스팟 인스턴스를 시작하려고 시도하지만 먼저 용량을 최적화합니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized-prioritized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "Priority": 1, "Placement": { "AvailabilityZone": "us-west-2a" }, }, { "InstanceType": "m4.2xlarge", "Priority": 2, "Placement": { "AvailabilityZone": "us-west-2b" }, }, { "InstanceType": "c5.2xlarge", "Priority": 3, "Placement": { "AvailabilityZone": "us-west-2b" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 50, "DefaultTargetCapacityType": "spot" }

예제 11: price-capacity-optimized 플릿에서 스팟 인스턴스 시작

다음 예제에서는 용량과 가격을 모두 최적화하는 스팟 할당 전략을 사용하여 EC2 플릿을 구성하는 방법을 보여줍니다. 가격을 고려하면서 용량을 최적화하려면 스팟 AllocationStrategyprice-capacity-optimized로 설정해야 합니다.

다음 예제에서는 3개의 시작 사양으로 3개의 스팟 용량 풀을 지정합니다. 목표 용량은 스팟 인스턴스 50개입니다. EC2 플릿은 시작하는 인스턴스의 수에 대한 최적의 용량을 가진 스팟 용량 풀로 스팟 인스턴스 50개를 시작하는 동시에 가격이 가장 낮은 풀을 선택하려고 시도합니다.

{ "SpotOptions": { "AllocationStrategy": "price-capacity-optimized", "MinTargetCapacity": 2, "SingleInstanceType": true }, "OnDemandOptions": { "AllocationStrategy": "lowest-price" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2a" }, }, { "InstanceType": "m4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, }, { "InstanceType": "c5.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 50, "OnDemandTargetCapacity":0, "SpotTargetCapacity":50, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

예제 12: 속성 기반 인스턴스 유형 선택 구성

다음 예에서는 인스턴스 유형을 식별하는 데 속성 기반 인스턴스 유형 선택 방식을 사용하도록 EC2 플릿을 구성하는 방법을 보여줍니다. 필요한 인스턴스 속성을 지정하려면 InstanceRequirements 구조에서 해당 속성을 지정합니다.

다음 예제에서는 2개의 인스턴스 속성이 지정됩니다.

  • VCpuCount - vCPU가 최소 2개로 지정되었습니다. 최대값이 지정되지 않았으므로 최대 한도는 없습니다.

  • MemoryMiB - 메모리가 최소 4MiB로 지정되었습니다. 최대값이 지정되지 않았으므로 최대 한도는 없습니다.

vCPU가 2개 이상이고 메모리가 4MiB 이상인 모든 인스턴스 유형이 식별됩니다. 단, EC2 플릿에서 플릿을 제공하는 경우 가격 보호 및 할당 전략에서 일부 인스턴스 유형이 제외될 수 있습니다.

지정 가능한 모든 속성의 목록과 설명은 Amazon EC2 API 참조에서 InstanceRequirements를 참조하세요.

{ "SpotOptions": { "AllocationStrategy": "price-capacity-optimized" }, "LaunchTemplateConfigs": [{ "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": { "Min": 2 }, "MemoryMiB": { "Min": 4 } } }] }], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }