今回はスポットインスタンスの入門記事を書きますが、「永続的」スポットインスタンスに対する焦点が少し強めの内容です。
2022年8月時点の情報を元に記載しています。
スポットインスタンス?
インスタンススポットとして起動させるには?
スポットインスタンスとして起動させるには、起動ステップ3「インスタンスの詳細の設定」でスポットインスタンスのリクエストにチェックを入れます。さらに永続的リクエストのチェックを入れると、停止・再開が可能になります(詳細は後半に書きます)。
既存のオンデマンドEC2をスポット化は出来ないため、AMI化してから起動させましょう。
適用しやすい環境とアンチパターン
EC2の中断が発生しても問題ない環境には適用しやすいです。例えば、テスト環境であったり、ステートレスな構成で組まれている環境です。
一方でスポットインスタンスに適さないアンチパータンは次の通りです。
中断通知のチェック
需要発生時にいきなりスポットインスタンスが中断されることはありません。中断の2分前に次の方法で知ることが出来ます。
- インスタンスメタデータ
→ http://169.254.169.254/latest/meta-data/spot/instance-action - CloudWatch Events
→ Spot Instance Interruption Warning
なお、インスタンスメタデータの場合、中断通知のパスがあるため、「5秒毎」にチェックするのが推奨となっています。中断通知を確認した後は、必要であれば安全停止に向けて処理を組む必要があります。
中断通知から2分経過すると・・・?
OSレベルのシャットダウン処理が動きます。いきなり停止(電源OFF相当)ではないため安心ですね。なお、OSレベルのシャットダウン処理に時間がかかる場合は、強制停止が動作するとのことです。
<リバランス通知>
中断通知よりも早く通知してくれる「リバランス通知」というものもあります。これはAWS側で需要トレンドを判断して中断可能性が高まったときに通知してくれるものです。(ただ、何分前に通知してくれるかは不明ですし、もしかすると状態によっては通知はされないかもしれません)。
永続的・非永続的の違い
従来(~2020年)スポットインスタンスは停止させると「終了」してしまいましたが、「永続的」なスポットインスタンスとして起動させると「終了」することは無くなりました。
ー | 非永続 | 永続的 |
---|---|---|
停止操作 | 終了する | 停止する |
終了操作 | 終了する | 終了する(*1) |
中断 | 終了する | 停止する(*2) |
再起動 | ○ | ○ |
イメージ作成 | ○ | ○ |
終了保護 | × | × |
インスタンスタイプ変更 | × | × |
(*1) 永続的な場合、EC2を終了しても暫くした後に、同じAMIをベースとしたEC2が復活します。永続的スポットインスタンスの終了はEC2のスポットリクエストメニューから解除する必要があります。
(*2) 需要発生によりEC2は自動停止しますが、キャパシティが復活した後、自動的に開始されます。(一方でユーザが停止した場合は手動で開始する必要がある。)この辺りは公式サイトにも記述があります(https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/spot-requests.html)。
停止頻度など備忘録
~価格が安定したとは言ったが、供給が安定したとは言っていない~
つまり、価格が安定していても、瞬間的な変動はありえるため、残念ながら1日に数回停止することは普通にある。もちろん運が良ければ、数日間連続で無停止で使えることもある。この特性を改めて理解した上でスポットインスタンスは使う必要がある。
まとめ
スポットインスタンスに関する概要、永続的を選択した場合の違いなどをご紹介しました。スポットインスタンスは現在では利用しやすくなっているため、計画的に利用してコストを抑えていきたいと思います。
最後までご覧いただき、ありがとうございました。
コメント