

# EC2 フリートまたはスポットフリートの支出制限を設定する
<a name="ec2-fleet-control-spending"></a>

EC2 フリートまたはスポットフリートに対する 1 時間あたりの支出金額に制限を設定できます。支出制限に達すると、フリートはターゲットキャパシティに達していない場合でもインスタンスの起動を停止します。

オンデマンドインスタンスとスポットインスタンスに個別に支出制限を設定できます。

**EC2 フリート内のオンデマンドインスタンスとスポットインスタンスに支出制限を設定するには**  
[ create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) コマンドと以下のパラメータを使用します。
+ オンデマンドインスタンスの場合: `OnDemandOptions` 構造で、`MaxTotalPrice` フィールドに支出制限を指定します。
+ スポットインスタンスの場合: `SpotOptions` 構造で、`MaxTotalPrice` フィールドに支出制限を指定します。

**スポットフリート内のオンデマンドインスタンスとスポットインスタンスに支出制限を設定するには**  
Amazon EC2 コンソールまたは AWS CLI を使用して、支出制限を設定できます。

(コンソール) スポットフリートを作成するとき、**[スポットインスタンスの最大コストを設定]** チェックボックスをオンにし、**[最大コスト (1 時間あたり) を設定]** の値を入力してください。詳細については、「[定義済みパラメータを使用してスポットフリートリクエストを作成する](create-spot-fleet.md#create-spot-fleet-advanced)」のステップ 6.e を参照してください。

(AWS CLI) [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) コマンドと以下のパラメータを使用します。
+ オンデマンドインスタンスの場合: `OnDemandMaxTotalPrice` フィールドに支出制限を指定します。
+ スポットインスタンスの場合: `SpotMaxTotalPrice` フィールドに支出制限を指定します。

## 例
<a name="ec2-fleet-spending-limit-examples"></a>

以下の例は、2 つの異なるシナリオを示しています。最初の例では、オンデマンドインスタンスに設定されたターゲットキャパシティに達したことを確認すると (`OnDemandTargetCapacity`)、フリートはオンデマンドインスタンスの起動を停止します。2 番目の例では、オンデマンドインスタンスに対する 1 時間あたりの最大支出金額に達すると (`MaxTotalPrice`)、フリートはオンデマンドインスタンスの起動を停止します。

**例: ターゲットキャパシティに達したらオンデマンドインスタンスの起動を停止する**

`m4.large` オンデマンドインスタンス に対するリクエストの内容が以下のとおりとします。
+ オンデマンド料金: 1 時間あたり 0.10 USD
+ `OnDemandTargetCapacity`: 10
+ `MaxTotalPrice`: 1.50 USD

フリートは、10 個のオンデマンドインスタンスを起動します。合計料金 1.00 USD (10 インスタンス x 0.10 USD) がオンデマンドインスタンスの `MaxTotalPrice` (1.50 USD) を超えないようにするためです。

**例: 最大合計料金に達したらオンデマンドインスタンスの起動を停止する**

`m4.large` オンデマンドインスタンス に対するリクエストの内容が以下のとおりとします。
+ オンデマンド料金: 1 時間あたり 0.10 USD
+ `OnDemandTargetCapacity`: 10
+ `MaxTotalPrice`: 0.80 USD

フリートがオンデマンドターゲットキャパシティ (10 個のオンデマンドインスタンス) を起動した場合、1 時間あたりの合計コストは 1.00 USD になります。これは オンデマンドインスタンス の `MaxTotalPrice` に指定した料金 (0.80 USD) を超えます。支払い可能な額を超えないように、フリートは 8 個のオンデマンドインスタンス (オンデマンドターゲットキャパシティ未満) を起動します。これを超えて起動すると、オンデマンドインスタンスの `MaxTotalPrice` を超えてしまいます。

## バーストパフォーマンスインスタンス
<a name="ec2-fleet-burstable-spot-instances"></a>

[バーストパフォーマンスインスタンスタイプ](burstable-performance-instances.md) を使用して スポットインスタンス を起動し、CPU クレジットを蓄積するアイドル時間なしでバーストパフォーマンス スポットインスタンス をすぐに短時間使用する場合は、支払いコストが高くなるのを避けるために、インスタンスを [標準モード](burstable-performance-instances-standard-mode.md) で起動することをお勧めします。バーストパフォーマンス スポットインスタンス を [Unlimited モード](burstable-performance-instances-unlimited-mode.md) で起動し、すぐに CPU をバーストさせると、余分なクレジットがバーストに消費されます。インスタンスを短時間使用する場合、インスタンスは余分なクレジットに見合うだけの CPU クレジットを蓄積する時間がないため、インスタンスの終了時に余分なクレジットに対して課金されます。

Unlimited モードがバーストパフォーマンス スポットインスタンス に適しているのはバースト用の CPU クレジットが蓄積されるまで、そのインスタンスが十分に長く実行される場合のみです。それ以外の場合は余分なクレジットを支払う必要があるため、バーストパフォーマンス スポットインスタンス は他のインスタンスよりも、使用コストが高くなります。詳細については、[Unlimited モードと固定 CPU を使用する場合](burstable-performance-instances-unlimited-mode-concepts.md#when-to-use-unlimited-mode)を参照してください。

起動クレジットは、インスタンスを構成するために十分なコンピューティングリソースを提供し、T2 インスタンスの初期起動を効率的に実現することを意図しています。T2 インスタンスの起動を繰り返して新しい起動クレジットにアクセスすることは許可されていません。CPU が持続的に必要な場合、(一定期間のアイドリングにより) クレジットを獲得して T2 スポットインスタンス の [Unlimited モード](burstable-performance-instances-unlimited-mode.md)　を使用するか、専用 CPU を搭載したインスタンスタイプを使用します。