スポットインスタンス最適化ガイド
スポットインスタンス最適化ガイド
スポットインスタンス(AWS)、Spot VM(Azure)、Spot/Preemptible VM(GCP)は、オンデマンド価格から70〜90パーセントオフで提供されるクラウド予備容量です。代償は、ハードウェア需要が高まると30秒の警告でプロバイダーがインスタンスを回収できることです。中断を許容できるワークロードのみにおいて、スポットは圧倒的に最も安いコンピュートです。
スポットに適したワークロード
スポットはステートレス、フォールトトレラント、中断可能なワークロードに適しています:
- バッチおよびHPCジョブ — 画像レンダリング、ビデオトランスコーディング、モンテカルロシミュレーション。チェックポイントで進行を保存し、代替インスタンスで再開。
- CI/CDランナー — ジョブキューは代替インスタンスを待てる。
- ステートレスWeb層 — ロードバランサーとオートスケーリングの後ろで、排除されたインスタンスは数秒で置換。
- ビッグデータ処理 — ノード損失を処理するSpark、Hadoop、データウェアハウスクラスタ。
- 開発・テスト環境 — 2分間の中断が許容される非プロダクションワークロード。
ステートフルデータベース、レプリカのない単一インスタンスアプリ、ユーザーとの対話セッション、チェックポイント不可能なバッチジョブには不適切です。
プロバイダー比較
| Provider | Min eviction notice | Max lifetime | Typical discount |
|---|---|---|---|
| AWS Spot Instances | 2 minutes | none | ~70% off on-demand |
| Azure Spot VMs | 30 seconds | none | ~80% off (Linux) |
| GCP Spot VMs | 30 seconds | none | ~60-91% off |
| GCP Preemptible VMs (legacy) | 30 seconds | 24 hours max | ~60-80% off |
GCP Spot VMは最も深い割引を提供し、GCPは排除30秒前にシャットダウンスクリプトを送信します。AWS Spotは最も穏やかな通知(2分)を提供し、バッチジョブにチェックポイント時間を与えます。
中断への設計
スポットを信頼できるものにする4つのパターン:
- チェックポイントと再開 — 数分ごとに進行を耐久性のあるストレージに書き込み、代替インスタンスで最後のチェックポイントから再開。
- 分散ワークキュー — キュー(SQS、Pub/Sub、Service Bus)を使用して作業単位を配布。インスタンスが排除されると作業単位はキューに戻る。
- マルチインスタンス+オートスケーラー — ロードバランサーの後ろで最低2つのスポットインスタンスを実行し、オートスケーラーを置換起動に設定。
- スポット+オンデマンド混合 — 容量の70〜90パーセントをスポットで、残りをオンデマンドまたは予約で実行し、スポット利用不可時にグレースフルデグレード。
スポットフリートと容量リバランシング
AWS Spot FleetとAzure Spot VM Scale Setは複数インスタンスタイプとAZにまたがってターゲット容量をリクエストでき、全スポット容量が同時に回収される確率を大幅に下げます。3〜5インスタンスタイプを2〜3ゾーンにまたがるよう設定すると、総喪失確率は月1パーセント未満に下がります。
GCPには直接的なSpot Fleetの equivalent はありませんが、複数インスタンステンプレートとproactiveRefresh設定のMIGで同様の効果が得られます。
コスト追跡
スポット価格は需要で変動するため、今日$0.029/時間のワークロードが来週$0.058/時間になる可能性があります。ローリング30日平均の110パーセントで請求アラートを設定し、スポット価格がオンデマンドを超えたら自動的にオンデマンドにフォールバックするようフリートを設定してください。
AWS vs Azureコンピュート比較でインスタンスごとのスポット割引を、予約インスタンスガイドで混合フリートのオンデマンド部分のコミットメント戦略を参照してください。