スポットインスタンスとは
スポットインスタンス(Spot Instances)は、AWSのデータセンター内に存在している「誰にも使われていない余剰のコンピューティングリソース(EC2の空きキャパシティ)」を、通常のオンデマンド料金と比較して最大90%という破格の割引価格で利用できる購入オプションです。クラウドの特性上、AWSは常にユーザーの急激な需要増に応えられるよう、大量のサーバー群を待機させています。この待機中のサーバーを格安で貸し出すのがスポットインスタンスの仕組みです。ただし、この破格の安さには重要な条件があります。AWS側で通常のオンデマンドインスタンスを起動するユーザーが増え、リソースが不足しそうになった場合、AWSはたった「2分前の警告」を出した後に、スポットインスタンスを強制的に終了(中断)させてリソースを回収します。そのため、途中で処理が中断されても問題がない、あるいは最初からやり直せるワークロードにのみ適しています。
具体例
スポットインスタンスは、飛行機やホテルの「直前キャンセル待ちの格安チケット」に似ています。空席(余剰リソース)がある限りは通常価格の1割程度の値段で乗れますが、正規料金(オンデマンド)を払う客が現れたら、途中の経由地で強制的に降ろされる(中断される)リスクがある、というイメージです。
実際のシステムにおける適切な利用シーンは以下の通りです。
- バッチ処理・データ分析: 夜間に大量のログデータを解析してレポートを作成する処理など。途中でサーバーが落とされても、別のサーバーで再度解析を最初からやり直せば済むため、スポットインスタンスが最適です。
- 機械学習のモデルトレーニング: AIの学習計算は膨大なサーバーリソースを必要とします。定期的に学習の進捗(チェックポイント)をストレージ(S3など)に保存する仕組みを作っておけば、サーバーが中断されても途中から再開できるため、コストを劇的に削減できます。
- 画像・動画のレンダリング: 映画のCG作成やユーザーがアップロードした動画の変換処理など、複数のサーバーで手分けして非同期に行う処理(ステートレスな処理)に適しています。
もう少し詳しく
スポットインスタンスを利用する際、ユーザーは自分自身で「最高いくらまでなら支払うか(最高価格)」を設定することができます。現在のスポット価格(市場の需給バランスによって変動)が、ユーザーの指定した最高価格を下回っている限り、インスタンスは起動し続けます。もしスポット価格が最高価格を上回るか、AWS側の空きリソースが不足した場合、インスタンスには2分前の中断通知(Spot Instance Interruption Notice)が送られます。
システム設計者は、この2分間の猶予を利用して、実行中の処理状態を外部のデータベースやS3バケットに退避(保存)させたり、ログを安全に吐き出したりするスクリプトを組み込んでおくことが推奨されます(耐障害性の設計)。
なお、EC2 Auto Scalingグループの中で、「オンデマンドインスタンス」と「スポットインスタンス」を混在させる設計も一般的です。例えば、システムの稼働に最低限必要なベースラインの3台は絶対に落ちては困るため「オンデマンド」や「RI」で稼働させ、負荷が高まったときに追加で拡張する7台分は「スポット」を利用することで、システムの安定性と大幅なコスト削減を両立させることができます。
試験でのポイント
CLF-C02試験において、スポットインスタンスの出題パターンは非常に明確です。「最大90%の割引」「バッチ処理」「耐障害性のあるワークロード」「中断されても構わない処理」「ステートレスなアプリケーション」といったキーワードが登場した場合、正解は間違いなくスポットインスタンスです。
逆に、「中断が許されない」「絶対にダウンしてはいけない基幹データベース」「24時間365日安定して稼働し続ける必要があるWebサイト」といったシナリオには絶対に選んではいけない選択肢となります。問題文の要件が「コストを最小化したい」であっても、システムの性質が「中断不可」であれば、RIやSavings Plansを選ぶ必要があります。この「安いが中断リスクがある」というトレードオフを正確に把握しておくことが合格への鍵です。
関連する用語
基本となる課金モデルであり、ユーザーが明示的に停止しない限り稼働し続ける「オンデマンドインスタンス」、システムの負荷に応じてサーバー台数を自動増減させ、スポットインスタンスの管理にも便利な「Amazon EC2 Auto Scaling」、および一時的な大容量ファイル保存に使う「インスタンスストア」などが関連用語です。