スポットインスタンスの配分戦略 - Amazon Elastic Compute Cloud

スポットインスタンスの配分戦略

起動設定によって、スポットフリートがスポットインスタンスを起動できるすべてのスポットキャパシティプール (インスタンスタイプおよびアベイラビリティーゾーン) が決定されます。ただし、インスタンスを起動する際、スポットフリートは指定された配分戦略を使用して、使用可能なすべてのプールから特定のプールを選択します。

注記

(Linux インスタンスのみ) AMD SEV-SNP を有効にして起動するようにスポットインスタンスを設定すると、選択したインスタンスタイプのオンデマンド時間料金の 10% に相当する追加の時間単位使用料が請求されます。配分戦略で価格を入力として使用する場合、EC2 フリートにはこの追加料金は含まれず、スポット料金のみが使用されます。

配分戦略

スポットインスタンスには次のいずれかの配分戦略を指定できます。

priceCapacityOptimized (推奨)

スポットフリートは、起動中のインスタンスの数に容量の可用性が最も高いプールを識別します。つまり、短期的に中断の可能性が最も低いと思われるプールからスポットインスタンスをリクエストすることになります。次にスポットフリートは、これらのプールのうち最も価格の低いスポットインスタンスをリクエストします。

priceCapacityOptimized 配分戦略は、ステートレスコンテナ化アプリケーション、マイクロサービス、ウェブアプリケーション、データおよび分析ジョブ、バッチ処理など、ほとんどのスポットワークロードに最適です。

capacityOptimized

スポットフリートは、起動中のインスタンスの数に容量の可用性が最も高いプールを識別します。つまり、短期的に中断の可能性が最も低いと思われるプールからスポットインスタンスをリクエストすることになります。オプションで capacityOptimizedPrioritized により、フリート内の各インスタンスタイプに優先順位を設定できます。スポットフリートは、最初に容量を最適化しますが、ベストエフォートベースでインスタンスタイプの優先順位を重視します。

スポットインスタンス では、価格は需要と供給の長期的な傾向に基づいて時間の経過とともに緩やかに変動しますが、容量はリアルタイムで変動します。capacityOptimized 戦略では、リアルタイムの容量データを調べ、可用性の最も高いプールを予測することで、そのプールから スポットインスタンス を自動的に起動します。この戦略は、作業の再開に関連する中断のコストが高くなる可能性のあるワークロード (長時間の継続的インテグレーション (CI)、画像とメディアのレンダリング、深層学習およびハイパフォーマンスコンピューティング (HPC) など) に対応します。中断の可能性を低くすることにより、capacityOptimized 戦略ではワークロードの全体的なコストを削減できます。

または、優先パラメータで capacityOptimizedPrioritized 配分戦略を使用して、インスタンスタイプを優先順位の高い順から低い順へ指定できます。異なるインスタンスタイプに対し同じ優先順位を設定できます。スポットフリートは最初に容量を最適化しますが、インスタンスタイプの優先順位をベストエフォートベースで決定します (例えば、優先順位を尊重しても、EC2 フリートの最適な容量をプロビジョニングする能力に大きな影響を与えない場合など) 。これは、中断の可能性を最小限に抑える必要があり、特定のインスタンスタイプを優先することが重要なワークロードに適したオプションです。優先順位の使用は、フリートが起動テンプレートを使用する場合にのみサポートされます。capacityOptimizedPrioritized の優先順位を設定するとき、オンデマンド AllocationStrategyprioritized に設定されていると、同じ優先順位がオンデマンドインスタンスにも適用されますのでご注意ください。

diversified

スポットインスタンス はすべてのプールに分散されます。

適切な配分戦略の選択

適切なスポット割り当て戦略を選択することで、ユースケースに合わせてフリートを最適化できます。オンデマンドインスタンスのターゲット容量では、スポットフリートはスポットインスタンス の配分戦略 (priceCapacityOptimizedcapacityOptimized、または diversified) を採用しながら、パブリックオンデマンド価格に基づいて、最低価格のインスタンスタイプを常に選択します。

最低価格と容量可用性のバランスをとる

最低価格のスポット容量プールと容量の可用性が最も高いスポットキャパシティプールとのトレードオフのバランスをとるには、priceCapacityOptimized 配分戦略を使用することをお勧めします。この戦略では、プールの価格とプール内のスポットインスタンスの空き容量の両方に基づいて、どのプールからスポットインスタンスをリクエストするかを決定します。つまり、価格を考慮しながらも短期的に中断の可能性が最も低いと思われるプールからスポットインスタンスをリクエストすることになります。

コンテナ化されたアプリケーション、マイクロサービス、ウェブアプリケーション、データおよび分析ジョブ、バッチ処理など、レジリエントでステートレスなワークロードをフリートが実行している場合は、最適なコスト削減とキャパシティアベイラビリティを実現する priceCapacityOptimized 配分戦略を使用してください。

作業の再開に関連する中断に伴うコストが高くなる可能性があるワークロードをフリートで実行している場合は、中断があった場合にアプリケーションがそのポイントから再起動できるようにチェックポイントの設定を実装する必要があります。チェックポイントを使用すると、スポットインスタンスの中断率も低い最低価格のプールから容量が割り当てられるため、priceCapacityOptimized 配分戦略がこれらのワークロードに適したものになります。

priceCapacityOptimized 配分戦略を使用する設定例については、「例 9: 優先順位のある容量最適化フリートでスポットインスタンスを起動する」を参照してください。

ワークロードの中断コストが高い場合

同様の価格のインスタンスタイプを使用するワークロードを実行する場合や、中断のコストが非常に高いため、中断のわずかな増加に比べてコスト削減が不十分な場合、オプションでこの capacityOptimized 戦略を使用できます。この戦略では、中断の可能性がより低く、最も可用性の高いスポットキャパシティプールから容量を割り当てることで、ワークロードの総コストを削減することができます。capacityOptimized 配分戦略を使用する設定例については、「例 7: 容量の再調整を設定して代替スポットインスタンスを起動する」を参照してください。

中断の可能性を最小限に抑える必要があるが、特定のインスタンスタイプの優先順位が重要な場合は、capacityOptimizedPrioritized の配分戦略を使用し、インスタンスタイプの順序を優先順位の高い順に表現することでプールの優先順位を設定することができます。設定の例については、「例 8: 容量最適化フリートでスポットインスタンスを起動する」を参照してください。

優先順位の使用は、フリートが起動テンプレートを使用する場合にのみサポートされることに注意してください。capacityOptimizedPrioritized の優先順位を設定する際に、オンデマンド AllocationStrategyprioritized に設定されていると、同じ優先順位がオンデマンドインスタンスにも適用されるので注意してください。

ワークロードに時間的な柔軟性があり、キャパシティの可用性が問題にならない場合

フリートが小さい場合、または短時間の実行である場合、容量の可用性を考慮しながら、priceCapacityOptimized を使用してコスト削減を最大化できます。

フリートが大きい場合や長時間稼働している場合

フリートが大規模、または長期間実行される場合には、diversified 戦略を使用して複数のプールに スポットインスタンス を分散することで、フリートの可用性を改善できます。例えば、スポットフリートが 10 プールとして、ターゲット容量が 100 インスタンスと指定すると、フリートはプールごとに 10 個の スポットインスタンス を起動します。1 つのプールのスポット料金がこのプールの上限料金を超える場合、フリートの 10% のみに影響がおよびます。この戦略を使用すると、いずれのプールにおいても経時的にフリートが受けるスポット料金の上昇の影響を減少させます。diversified 戦略では、スポットフリートは、オンデマンド価格 以上のスポット料金のいずれのプールにもスポットインスタンスを起動しません。

ターゲット容量の維持

スポット料金やスポットキャパシティプールで使用可能な容量の変動に伴ってスポットインスタンスが終了すると、タイプ maintain のスポットフリートは代替スポットインスタンスを起動します。配分戦略によって、次のように置換先インスタンスを起動するプールが決まります。

  • 割当戦略が priceCapacityOptimized の場合、フリートは最もスポットインスタンスの容量が利用可能なプールで置換先インスタンスを起動します。また、価格も考慮し、容量利用率の高い価格の低いプールを特定します。

  • 配分戦略が capacityOptimized の場合、フリートは、利用可能なスポットインスタンス容量が最大のプールで置換先インスタンスを起動します。

  • 配分戦略が diversified である場合には、フリートは残りのプールに代替 スポットインスタンス を分散します。