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

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

スポットフリートのスポットインスタンスの配分戦略は、起動仕様で指定される可能なスポットキャパシティープールから、スポットフリートリクエストを満たす方法を決定します。以下は、スポットフリートリクエストで指定できる配分戦略です。

lowestPrice

スポットインスタンス は、最低価格のプールから取得されます。これはデフォルトの戦略です。

diversified

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

capacityOptimized

スポットインスタンス は、起動中のインスタンスの数に最適な容量を持つプールから提供されます。オプションで capacityOptimizedPrioritized により、フリート内の各インスタンスタイプに優先順位を設定できます。スポットフリートは、最初に容量を最適化しますが、ベストエフォートベースでインスタンスタイプの優先順位を重視します。

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

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

InstancePoolsToUseCount

スポットインスタンス は、指定した数のスポットプールに分散されます。このパラメータは lowestPrice と組み合わせて使用する場合にのみ有効です。

ターゲットキャパシティーの維持

スポット料金やスポットキャパシティープールで使用可能な容量の変動に伴ってスポットインスタンスが終了すると、タイプ のスポットフリートは代替スポットインスタンスを起動します。maintain配分戦略が lowestPrice である場合、スポット群は、スポット料金が現在最低値のプールに代替インスタンスを起動します。配分戦略が diversified である場合には、フリートは残りのプールに代替 スポットインスタンス を分散します。配分戦略が と の組み合わせである場合、フリートは最低価格のスポットプールを選択し、指定した数のスポットプールで スポットインスタンス を起動します。lowestPriceInstancePoolsToUseCount

適切な配分戦略の選択

ユースケースに基づいて スポットフリート を最適化できます。

作業の再開とチェックポイント設定に関連する中断に伴うコストが高くなる可能性があるワークロードをフリートで実行している場合は、capacityOptimized 戦略を使用します。この戦略では中断の可能性を低くすることにより、ワークロードの全体的なコストを削減できます。これが推奨される戦略です。中断の可能性を最小限に抑える必要があると同時に、適切なインスタンスタイプも重要なワークロードには、capacityOptimizedPrioritized 戦略を使用します。

フリートが小規模、あるいは実行が短時間で終了する場合、すべてのインスタンスが単一のスポットキャパシティープールに置かれていても、スポットインスタンス が中断される可能性は低くなります。これより、lowestPrice 戦略は、低コストを提供している期間に条件に合いやすくなります。

フリートが大サイズ、または長期間実行される場合には、複数のプールに スポットインスタンス を分散することでフリートの可用性を改善できます。例えば、スポットフリートの条件が 10 プールとして、ターゲットキャパシティーが 100 インスタンスとすると、フリートはプールごとに 10 個の スポットインスタンス を起動します。1 つのプールのスポット料金がこのプールの上限料金を超える場合、フリートの 10% のみに影響がおよびます。この戦略を使用すると、いずれのプールにおいても経時的にフリートが受けるスポット料金の上昇の影響を減少させます。 戦略では、スポットフリートは、オンデマンド価格以上のスポット料金のいずれのプールにもスポットインスタンスを起動しません。diversifiedhttp://aws.amazon.com/ec2/pricing/

安価で分散型のフリートを作成するには、lowestPrice 戦略を InstancePoolsToUseCount と組み合わせて使用します。スポットインスタンス には少数または多数のスポットプールを選択して割り当てることができます。たとえば、バッチ処理を実行する場合は、少数のスポットプール ( など) を指定することをお勧めします。これにより、キューのコンピューティング性能を常に確保しながら、削減額を最大化できます。InstancePoolsToUseCount=2ウェブサービスを実行する場合は、スポットプールが一時的に使用不可になった場合の影響を最小限に抑えるために、多数のスポットキャパシティープール ( など) を指定することをお勧めします。InstancePoolsToUseCount=10

コスト最適化のためのスポットフリートの設定

スポットインスタンスの使用コストを最適化するには、 配分戦略を指定し、現在のスポット料金に基づいて最低価格のインスタンスタイプおよびアベイラビリティーゾーンの組み合わせを、スポットフリートが自動的にデプロイします。lowestPrice

オンデマンドインスタンスのターゲットキャパシティーでは、スポットフリートはスポットインスタンス の配分戦略 (、、または ) を引き続き採用しながら、パブリックオンデマンド料金に基づいて、最低価格のインスタンスタイプを常に選択します。lowestPricecapacityOptimizeddiversified

コスト最適化と分散のためのスポットフリートの設定

安価で分散型のスポットインスタンスのフリートを作成するには、lowestPrice 配分戦略を InstancePoolsToUseCount と組み合わせて使用します。スポットフリートは、現在のスポット料金に基づく最低価格のインスタンスタイプとアベイラビリティーゾーンの組み合わせを、指定した数のスポットプールに自動的にデプロイします。この組み合わせを使用することで、最も高価な スポットインスタンス を回避できます。

たとえば、ターゲットのキャパシティーが 10 のスポットインスタンスで、2 つのスポットキャパシティープール ( により) 指定した場合、スポットフリートはスポットキャパシティーを満たすために最も安価なプールを 2 つ利用します。InstancePoolsToUseCount

スポットフリートは、指定したプール数内のスポットインスタンスを、ベストエフォート方式で利用しようとすることにご注意ください。。ターゲットキャパシティーを満たす前にプールにスポットキャパシティーの残量がなくなった場合、スポットフリートは、次の最も安価なプールの容量を利用してリクエストを満たします。ターゲットキャパシティーを確実に満たすために、スポットインスタンスが、指定した数を超えるプールから割り当てられることがあります。また、ほとんどのプールにスポット容量がない場合には、指定した数より少ないプールからターゲットキャパシティーのすべてが割り当てられることがあります。

容量最適化のためのスポットフリートの設定

最も利用可能なスポットキャパシティープールにスポットインスタンスを起動するには、capacityOptimized 配分戦略を使用します。設定の例については、「例 9: 容量最適化フリートでスポットインスタンスを起動する」を参照してください。

また、capacityOptimizedPrioritized の配分戦略を使用し、インスタンスタイプの順序を優先順位の高い順にすれば、プールの優先順位を表すことができます。優先順位の使用は、フリートが起動テンプレートを使用する場合にのみサポートされます。 の優先順位を設定するとき、オンデマンド が に設定されていると、同じ優先順位がオンデマンドインスタンスにも適用されるのでご注意ください。capacityOptimizedPrioritizedOnDemandAllocationStrategyprioritized設定の例については、「例 10: 優先順位のある容量最適化フリートでスポットインスタンスを起動する」を参照してください。