EC2 フリートの CLI 設定の例
以下のように、JSON ファイルに EC2 フリート設定を定義し、create-fleet AWS CLI コマンドでそのファイルを参照して、フリートを作成できます。
aws ec2 create-fleet --cli-input-json file://
file_name.json
以下の例は、EC2 フリートのさまざまなユースケースの起動設定を示しています。設定パラメータの詳細については、「AWS CLI コマンドリファレンス」の「create-fleet」を参照してください。
例
- 例 1: スポットインスタンスをデフォルト購入オプションとして起動する
- 例 2: オンデマンドインスタンスをデフォルト購入オプションとして起動する
- 例 3: オンデマンドインスタンスをプライマリ容量として起動する
- 例 4: 複数のキャパシティー予約を使用して オンデマンドインスタンス を起動する
- 例 5: 合計ターゲット容量が未使用キャパシティーの予約の数を超えたときに、キャパシティーの予約を使用してオンデマンドインスタンスを起動する
- 例 6: ターゲットのキャパシティー予約を使用してオンデマンドインスタンスを起動する
- 例 7: 容量の再調整を設定して代替スポットインスタンスを起動する
- 例 8: 容量最適化フリートでスポットインスタンスを起動する
- 例 9: 優先順位のある容量最適化フリートでスポットインスタンスを起動する
- 例 10: price-capaity-optimized フリートでスポットインスタンスを起動する
- 例 11: 属性ベースのインスタンスタイプの選択を設定する
タイプ instant
のフリートに対する他の CLI の例については、「タイプが instant の EC2 フリートを設定する」を参照してください。
例 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 オンデマンドインスタンス を起動しますが、合計ターゲット容量を満たすために、さらに 1 つ以上のインスタンスを起動する必要があります。差額の購入オプションは、TotalTargetCapacity
- OnDemandTargetCapacity
= DefaultTargetCapacityType
で計算されます。この結果、フリートはスポットインスタンスを起動します。
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "OnDemandTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } }
例 4: 複数のキャパシティー予約を使用して オンデマンドインスタンス を起動する
キャパシティ予約の使用戦略を use-capacity-reservations-first
に設定することで、オンデマンドインスタンスの起動時に最初にオンデマンドキャパシティ予約を使用するようにフリートを設定できます。この例では、目標容量を満たすために必要以上のキャパシティ予約がある場合に、フリートが使用するキャパシティ予約を選択する方法を示します。
この例では、フリート設定は次のようになります。
-
ターゲット容量:12 オンデマンドインスタンス
-
未使用のキャパシティー予約の合計:15 (フリートの目標容量である 12 オンデマンドインスタンスを超えています)
-
キャパシティ予約プールの数:3 (
m5.large
、m4.xlarge
、およびm4.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
– 1 時間あたり 0.096 USD -
m4.xlarge
– 1 時間あたり 0.20 USD -
m4.2xlarge
– 1 時間あたり 0.40 USD
注記
フリートタイプはタイプ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-1a
の中のus-east-1a
–m5.large
にある 5 つのm5.large
オンデマンドインスタンスが最低価格です。そしてそこに 5 つの利用可能な未使用のm5.large
キャパシティー予約があります。 -
5 つの
m4.xlarge
オンデマンドインスタンス (us-east-1a) –m4.xlarge
(us-east-1a
) は次に低い料金であり、利用可能な未使用m4.xlarge
キャパシティーの予約が 5 つあります。 -
2 つの
m4.2xlarge
オンデマンドインスタンス (us-east-1a) –m4.2xlarge
(us-east-1a
) は 3 番目に低い料金であり、利用可能な未使用m4.2xlarge
キャパシティーの予約は 5 つあります。そのうちの 2 つのみが目標容量を満たすために必要です。
フリートの起動後、describe-capacity-reservations を実行して、未使用のキャパシティ予約の数を確認できます。この例では、以下のレスポンスが表示されます。これは、m5.large
およびm4.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 }
例 5: 合計ターゲット容量が未使用キャパシティーの予約の数を超えたときに、キャパシティーの予約を使用してオンデマンドインスタンスを起動する
キャパシティ予約の使用戦略を use-capacity-reservations-first
に設定することで、オンデマンドインスタンスの起動時に最初にオンデマンドキャパシティ予約を使用するようにフリートを設定できます。この例では、総ターゲット容量が使用可能な未使用のキャパシティ予約数を超えた場合に、オンデマンドインスタンスを起動するインスタンスプールをフリートがどのように選択するかを示します。
この例では、フリート設定は次のようになります。
-
ターゲット容量:16 オンデマンドインスタンス
-
未使用キャパシティー予約の合計:15 (フリートのターゲット容量である 16 オンデマンドインスタンスを下回っています)
-
キャパシティ予約プールの数:3 (
m5.large
、m4.xlarge
、およびm4.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 個のインスタンスが起動されます。
-
6 つの
m5.large
オンデマンドインスタンス (us-east-1a
のus-east-1a
–m5.large
) が最低価格です。そして 5 つの利用可能な未使用m5.large
キャパシティーの予約があります。5 つのオンデマンドインスタンスを起動するために、キャパシティ予約が最初に使用されます。残りのm4.xlarge
およびm4.2xlarge
キャパシティーの予約を使用してターゲット容量を満たすために、追加のオンデマンドインスタンスは、オンデマンド配分戦略 (この例ではlowest-price
) に従って起動します。 -
5 つの
m4.xlarge
オンデマンドインスタンス (us-east-1a
のus-east-1a
–m4.xlarge
) が次に低い料金であり、5 つの利用可能な未使用m4.xlarge
キャパシティーの予約があります。 -
5 つの
m4.2xlarge
オンデマンドインスタンス (us-east-1a
のus-east-1a
–m4.2xlarge
) が 3 番目に低い料金であり、5 つの利用可能な未使用m4.2xlarge
キャパシティーの予約があります。
フリートの起動後、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 }
例 6: ターゲットのキャパシティー予約を使用してオンデマンドインスタンスを起動する
キャパシティーの予約の使用戦略をuse-capacity-reservations-first
に設定することで、オンデマンドインスタンスの起動時に最初にtargeted
オンデマンドキャパシティー予約を使用するようにフリートを設定できます。この例では、オンデマンドインスタンスをtargeted
キャパシティ予約で起動する方法を示します。キャパシティ予約の属性は、アベイラビリティーゾーン (us-east-1a
およびus-east-1b
) を除いて同じになります。また、総ターゲット容量が使用可能な未使用のキャパシティ予約数を超えた場合に、オンデマンドインスタンスを起動するインスタンスプールをフリートがどのように選択するかについても説明します。
この例では、フリート設定は次のようになります。
-
ターゲット容量:10 オンデマンドインスタンス
-
未使用の合計
targeted
キャパシティー予約:6 (フリートの目標オンデマンド容量である 10 オンデマンドインスタンスを下回っています) -
キャパシティ予約のプールの数:2 (
us-east-1a
およびus-east-1b
) -
プールあたりのキャパシティ予約数:3
-
オンデマンド割り当て戦略:
lowest-price
(未使用キャパシティーの予約の数が目標オンデマンド容量より少ない場合、フリートは、オンデマンド配分戦略に基づいて、残りのオンデマンド容量を起動するプールを決定します)。また、
lowest-price
割り当て戦略の代わりにprioritized
割り当て戦略を使用することもできます。
この例を実行するために必要な手順のチュートリアルについては、チュートリアル: ターゲットのキャパシティ予約を使用してオンデマンドインスタンスを起動するように EC2 フリートを設定するを参照してください。
キャパシティ予約
アカウントには、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-1
でのc5.xlarge
のオンデマンドインスタンスの料金は時間当たり 0.17 USD になります。
注記
フリートタイプは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 }
例 7: 容量の再調整を設定して代替スポットインスタンスを起動する
次の例では、Amazon EC2 がフリートのスポットインスタンスに再調整に関する推奨を送信したときに、代替スポットインスタンスを起動するように EC2 フリートを設定します。スポットインスタンスの自動代替を設定するには、ReplacementStrategy
で、launch-before-terminate
を指定します。置換用の新しいスポットインスタンスが起動してから、古いスポットインスタンスが自動的に削除されるまでの時間を設定するには、termination-delay
に値を秒単位で指定します。詳細については、「設定オプション」を参照してください。
注記
launch-before-terminate
を使用するのは、インスタンスのシャットダウン処理にかかる時間を予測できる場合に限り、これらの処理が完了した後に古いインスタンスが終了するようにすることをお勧めします。実行中は、すべてのインスタンスに対して課金されます。
容量の再調整戦略の有効性は、EC2 フリートリクエストで指定されたスポットキャパシティプールの数に左右されます。インスタンスタイプとアベイラビリティーゾーンの多様なセットを使ってフリートを設定し、AllocationStrategy
では capacity-optimized
を指定することをお勧めします。EC2 フリート の容量の再調整を行う際に考慮すべき事項の詳細については、「」を参照してください。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" } } } }
例 8: 容量最適化フリートでスポットインスタンスを起動する
次の例は、容量を最適化するスポット配分戦略で、EC2 フリートを設定する方法を示しています。容量を最適化するには、AllocationStrategy
を capacity-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" } }
例 9: 優先順位のある容量最適化フリートでスポットインスタンスを起動する
次の例は、ベストエフォートベースで優先順位を使用しながら、容量を最適化するスポット配分戦略を使用して、EC2 フリートを設定する方法を示しています。
capacity-optimized-prioritized
配分戦略を使用する場合は、Priority
パラメータを使用して、スポットキャパシティプールの優先順位を指定します。数値が小さいほど優先順位が高くなります。また、優先度が同じならば、複数のスポットキャパシティープールに同じ優先順位を設定することもできます。プールに優先順位を設定しない場合、そのプールは優先順位が最も低いとみなされます。
スポットキャパシティプールに優先順位を付けるには、AllocationStrategy
を capacity-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" }
例 10: price-capaity-optimized フリートでスポットインスタンスを起動する
次の例は、容量と価格の両方を最適化するスポット配分戦略で、EC2 フリートを設定する方法を示しています。価格を考慮しながら容量を最適化するには、スポット AllocationStrategy
を price-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" }
例 11: 属性ベースのインスタンスタイプの選択を設定する
次の例は、インスタンスタイプの識別に属性ベースのインスタンスタイプ選択を使用するように EC2 フリート を設定する方法を示しています。必要なインスタンス属性を指定するには、InstanceRequirements
構造に属性を指定します。
次の例では、2 つのインスタンス属性が指定されています。
-
VCpuCount
— 最低 2 つの vCPUs が指定されています。最大値は指定されていないため、上限はありません。 -
MemoryMiB
— 4 MiB 以上のメモリが指定されています。最大値は指定されていないため、上限はありません。
2 つ以上の vCPUs と 4 MiB 以上のメモリを持つすべてのインスタンスタイプが識別されます。ただし、EC2 フリートがフリートをプロビジョニングする場合、価格保護と配分戦略によって一部のインスタンスタイプが除外される場合があります。
指定できるすべての属性のリストと説明については、「Amazon EC2 API リファレンス」の「インスタンス要件」を参照してください。
{ "SpotOptions": { "AllocationStrategy": "
price-capacity-optimized
" }, "LaunchTemplateConfigs": [{ "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template
", "Version": "" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": { "Min":
1
2
}, "MemoryMiB": { "Min":4
} } }] }], "TargetCapacitySpecification": { "TotalTargetCapacity":20
, "DefaultTargetCapacityType": "spot
" }, "Type": "instant
" }