スポットインスタンス
Spot Instances
スポットインスタンスは、AWS、Azure、GCPが提供する割引価格のクラウドコンピューティングリソースで、バッチ処理、分析、機械学習トレーニングなどの耐障害性ワークロードに最適です。
スポットインスタンスとは?
スポットインスタンスは、クラウドコンピューティングにおける購入モデルで、ユーザーは余剰キャパシティにアクセスし、オンデマンド価格と比較して最大90%の割引を受けることができます。主要なクラウドプロバイダーは、それぞれ異なる機能と価格メカニズムを持つスポットインスタンスプログラムを提供しています。
Amazon Web Services (AWS) スポットインスタンス: ユーザーは最大価格を指定し、市場価格がこの閾値を下回る場合にインスタンスを受け取ります。キャパシティが必要になった場合、または価格が最大入札額を超えた場合、2分前の通知でスポットインスタンスは回収されます。
Microsoft Azure スポット仮想マシン (VM): ユーザーは最大価格を設定し、市場価格がこの制限を超えるとVMは削除されます。Azureは30秒前の削除通知を提供します。
Google Cloud スポットVM: 同様の割引を提供し、固定的かつ大幅な節約が可能です。価格は最大1ヶ月間安定しています。Googleは30秒前のプリエンプション通知を提供します。
スポットインスタンスは、柔軟で耐障害性のあるアプリケーションに最適です。プロバイダーは短時間の通知でこれらのインスタンスを回収できるため、中断への耐性が重要な要件となります。
スポットインスタンスの仕組み
価格メカニズム
動的な需給主導型: 各インスタンスタイプとリージョンのスポット価格は、リアルタイム入札ではなく、需給の長期的なトレンドに基づいて変動します。
最大価格: ユーザーは支払い意思のある最大価格を設定できます。現在のスポット価格がこれを下回る限り、インスタンスは実行されます。
リアルタイム入札なし(現代のモデル): 初期のシステムではライブ入札が行われていましたが、現在ほとんどのプロバイダーは簡素化のために最大価格設定モデルを使用しています。
課金粒度: AWS、Azure、GCPは、1分間の最小値の後、秒単位で課金します。
例: AWSでは、m5.largeオンデマンドインスタンスのコストは$0.096/時間ですが、スポット価格は$0.019/時間まで低くなる可能性があります(80%以上の節約)。
可用性と中断
キャパシティプール: 各スポットインスタンスは、インスタンスタイプとアベイラビリティゾーンで定義されたプールから提供されます。
中断ポリシー: プロバイダーは、キャパシティが必要な場合、またはスポット価格が最大入札額を超えた場合、短時間の通知(AWSでは2分、AzureとGCPでは30秒)でインスタンスを終了または割り当て解除する場合があります。
中断通知:
- AWS: 2分前の警告
- Azure: 30秒前の通知
- GCP: 30秒前の通知
リバランシング: AWSは「リバランス推奨」を提供し、スポットインスタンスが中断リスクが高まっていることを早期に警告します。
重要なポイント: アプリケーションは中断を処理できるように設計する必要があります。ステートレス性、チェックポイント、自動復旧が不可欠です。
比較:スポット vs オンデマンド vs リザーブド
| 機能 | スポットインスタンス | オンデマンドインスタンス | リザーブドインスタンス |
|---|---|---|---|
| 価格 | 変動、最大90%割引 | 固定、最高価格 | 割引(最大72%)、固定 |
| 可用性 | 余剰キャパシティがある場合のみ | 常に利用可能 | 予約期間中は保証 |
| 中断 | 中断される可能性あり(2分または30秒前通知) | ユーザーが終了時期を決定 | 期間中は中断されない |
| コミットメント | コミットメントなし | コミットメントなし | 1年または3年必要 |
| ユースケース | 柔軟、耐障害性、非クリティカル | すべてのワークロード、特にクリティカル | 予測可能、定常状態 |
| SLA | SLAなし | 標準SLA | 標準SLA |
| 課金 | 秒単位(最初の1分後) | 秒単位 | 秒単位 |
クラウドプロバイダー間の比較
| 機能 | AWSスポット | GCPスポットVM | Azureスポット VM |
|---|---|---|---|
| 価格モデル | 変動、需給主導型 | 固定割引(最大91%オフ) | 変動、需給主導型 |
| 使用時間制限 | 固定制限なし | 最大24時間 | 固定制限なし |
| 中断通知 | 2分 | 30秒 | 30秒 |
| 課金 | 秒単位(1分後) | 秒単位 | 秒単位 |
| SLA | SLAなし | SLAなし | SLAなし |
| 統合ツール | Spot Fleet、ASG、Kubernetes | MIG、GKE | VM Scale Sets、AKS |
| 最適なユースケース | バッチ、CI/CD、ML、HPC、ステートレス | バッチ、分析、開発/テスト | バッチ、ステートレスアプリ、CI/CD |
| 独自機能 | スポットブロック(固定期間中断) | 継続使用割引 | 削除ポリシーのカスタマイズ |
コアコンセプト
スポットキャパシティプール
同じアベイラビリティゾーン内の同じインスタンスタイプの未使用仮想マシンのグループ。各プールは独立して動作し、キャパシティ/価格はプール間で異なる場合があります。
スポットインスタンスリクエスト
ユーザーが開始するスポットインスタンスの割り当てリクエスト:
- ワンタイム: キャパシティが利用可能な場合に一度だけプロビジョニング
- 永続的: 中断された場合に自動的に再送信(最終的に完了する必要があるジョブに有用)
リバランス推奨(AWS)
AWSは、スポットインスタンスが終了リスクが高まっている場合、標準の中断通知の前にリバランス推奨を発行し、ワークロードを事前に移行またはチェックポイントできるようにします。
ユースケースと例
理想的なユースケース
バッチ処理: データ分析、ビデオトランスコーディング、レンダリング、ETLジョブ
例: 研究者が気候データのモンテカルロシミュレーションを実行し、コンピューティングコストを80%以上節約。
ビッグデータ分析: Hadoop/Sparkクラスター、大規模なログ/データ分析
例: メディア企業がAWS EMRでスポットインスタンスを使用して、毎晩ペタバイト規模のログを処理。
CI/CDパイプライン: 短期間のビルドおよびテスト環境
例: SaaSプロバイダーがJenkinsビルドエージェントとしてスポットインスタンスを使用し、コスト効率の高い並列CIを実現。
機械学習トレーニング: ディープラーニング、ハイパーパラメータチューニング、GPUでのチェックポイント付きトレーニング
例: チームがスポットGPUインスタンスでニューラルネットワークをトレーニングし、中断復旧のための自動保存を使用。
コンテナとマイクロサービス: KubernetesまたはDocker Swarmによってオーケストレーションされるステートレスサービス
開発/テスト環境: 中断が許容される非本番ワークロード
ハイパフォーマンスコンピューティング(HPC): ゲノムシーケンシング、金融モデリング、科学シミュレーション
非理想的なユースケース
ミッションクリティカルなアプリケーション: 高可用性と最小限のダウンタイムが最優先される場合
耐性のないステートフルアプリ: 状態をチェックポイントできない、または突然の終了から回復できないアプリ
リスクと軽減戦略
主要なリスク
中断リスク: インスタンスは最短30秒前の通知で終了される可能性があります
キャパシティの変動性: スポットキャパシティは予測不可能に消失する可能性があります
価格変動: スポット価格は、特に人気のあるインスタンスタイプで急騰する可能性があります
SLAなし: プロバイダーは稼働時間や可用性を保証しません
軽減戦略
自動化:
- オーケストレーションシステム(Kubernetes、AWS Auto Scaling)を使用して、中断されたワークロードを再スケジュールおよび置換
- 耐性のためにスポットをオンデマンドおよびリザーブドインスタンスと組み合わせる
- ライフサイクルとフォールバックを管理する自動化プラットフォームを採用
アプリケーション設計:
- サービスをステートレスとして設計し、外部ストレージを活用
- 中断後にジョブを再開するためのチェックポイントを実装
- ノード障害に耐えるために疎結合を使用
プロアクティブな監視:
- AWS Spot Instance Advisorなどのツールを使用して、リージョン/タイプ別の中断率を監視
- リバランス推奨に基づいて早期にワークロードを移行
多様化:
- 「群れ」中断を避けるために、インスタンスタイプとリージョンの組み合わせを使用
- 突然の削除リスクを減らすために適切な最大入札額を設定
ベストプラクティス
1. 非クリティカルなワークロードから開始
クリティカルなワークロードを移行する前に、中断処理戦略を検証します。
2. 多様化
信頼性を高めるために、複数のインスタンスタイプとアベイラビリティゾーンを使用します。
3. 自動化
AWS Spot Fleet、Auto Scaling Groups、またはKubernetesオートスケーラーを採用します。
4. トレンドを監視
AWS Spot Price HistoryとSpot Instance Advisorを使用します。
5. 最大価格を設定
入札額をオンデマンド価格以下に制限します。
6. 中断を計画
高速復旧とデータ損失ゼロのために設計します。
7. サードパーティツールを活用
最適化と自動化のためにCast AIまたはCloudZeroを試します。
8. タグを使用
チーム/プロジェクト別に使用状況と節約を追跡します。
9. 定期的にレビュー
使用状況レポートに基づいて組み合わせと戦略を更新します。
課金と価格
スポット価格: プロバイダーが設定し、市場の需要と供給に応じて変動
課金粒度: 最初の1分後、秒単位(AWS、Azure、GCP)
終了課金: 一般的に、AWSが中断した場合、最後の部分時間は課金されません。ユーザーが終了した場合、使用した秒数分が課金されます。
節約の追跡: プロバイダーダッシュボード、AWS Spot Fleet節約レポート、またはサードパーティツールを使用
Savings Plansとの重複なし: スポット使用はAWS Savings Plansのコミットメントには貢献しません
シナリオ例
シミュレーションを実行する研究チーム
大学の研究グループは、気候モデリングのために数千のモンテカルロシミュレーションを実行する必要があります。Kubernetesによってオーケストレーションされたスポットインスタンスを使用することで、オンデマンド価格と比較してコンピューティングコストを85%削減しました。チェックポイントは中断前に永続ストレージに保存されるため、ジョブは損失なく再開されます。
よくある質問
Q: 本番ワークロードにスポットインスタンスを使用できますか?
A: はい、アプリケーションが中断に対して耐性がある場合は可能です。多くの組織は、クリティカルなワークロードのためにスポットをオンデマンドまたはリザーブドインスタンスと組み合わせています。
Q: スポットインスタンスでどれくらい節約できますか?
A: 通常、リージョン、タイプ、需要に応じて、オンデマンドと比較して70〜90%節約できます。
Q: スポットインスタンスが中断されるとどうなりますか?
A: 短い中断通知(AWSでは2分、Azure/GCPでは30秒)を受け取ります。その後、インスタンスは終了、停止、または休止状態になります。
Q: スポットインスタンスをリクエストするにはどうすればよいですか?
A: クラウドプロバイダーのコンソール、CLI、またはAPIを使用します。必要に応じてインスタンスタイプ、最大価格、期間を指定します。
Q: スポットインスタンスはKubernetesで使用できますか?
A: はい、Kubernetesなどのコンテナオーケストレーターは、スポットインスタンスが中断されたときにポッドを再スケジュールできます。
Q: スポットインスタンスにSLAはありますか?
A: いいえ。プロバイダーはスポットインスタンスの稼働時間や可用性を保証しません。
参考文献
- AWS Spot Instances Documentation
- AWS EC2 Spot Pricing
- AWS Spot Interruptions
- AWS Instance Rebalance Recommendations
- AWS Spot Use Cases
- AWS Spot HPC Use Case
- AWS Billing & Purchasing Options
- AWS Spot Price History
- AWS Spot Instance Advisor
- AWS EC2 Spot Fleet
- AWS Spot Requests
- AWS Spot Savings
- AWS Billing for Interrupted Spot Instances
- AWS Spot Best Practices
- AWS Spot FAQ
- Google Cloud Spot VMs
- Google Cloud Spot Preemption
- Google Cloud Pricing
- Azure Spot Virtual Machines
- Azure Spot Pricing
- Spot.io: Azure Spot VMs Guide
- Spot.io: Spot vs On-Demand
- Spot.io: Provider Comparison
- Spot.io: Suitable Use Cases
- Spot.io: Risks & Strategies
- Spot.io Ultimate Guide
- Spot.io Eco
- CloudZero Spot Instances Guide
- Infracost Spot Instances Glossary
- Cast AI Spot Guide
- Milvus AI Quick Reference: Spot Instances
関連用語
サーバーレスコンピューティング
サーバーレスコンピューティングは、プロバイダーがインフラストラクチャを管理するクラウド実行モデルであり、開発者はサーバーのプロビジョニングやスケーリングを行うことなく、アプリケーションの構築とデプロイ...
SaaS(Software as a Service)
インターネット経由でサブスクリプション形式で提供されるソフトウェアで、インストールやメンテナンスが不要です。ユーザーは任意のデバイスからいつでも最新バージョンにアクセスできます。...