スポットインスタンスの中断の管理
スポットインスタンスの中断を正常に処理し、パフォーマンスや可用性への影響を最小限に抑えるための最善の方法は、アプリケーションをフォールトトレラントな設計にすることです。これを実現するうえで、EC2 インスタンスの再調整に関する推奨事項とスポットインスタンスの中断通知を利用できます。
EC2 インスタンスの再調整に関する推奨事項とは、スポットインスタンスの中断リスクが高くなると送信される通知です。この通知は、スポットインスタンス中断 2 分前の通知の前にスポットインスタンスをプロアクティブに管理する機会を提供します。ワークロードを、中断のリスクが高くない新しいスポットインスタンスまたは既存のスポットインスタンスに再調整することができます。容量の再調整機能は EC2 Auto Scaling グループで提供されており、この通知機能が簡単に使用できるようになっています。詳細については、「Amazon EC2 Auto Scaling Capacity Rebalancing」を参照してください。
スポットインスタンスの中断通知は、Amazon EC2 によってスポットインスタンスが中断される 2 分前に送信される警告です。ワークロードに「時間の制約がない」場合、スポットインスタンスが中断される際に、終了するのではなく、停止または休止させるようにスポットインスタンスを設定できます。中断が起こるとスポットインスタンスは自動的に停止または休止状態になり、使用可能な容量ができると自動的にインスタンスが再開されます。
EC2 インスタンスの再調整に関する推奨事項やスポットインスタンスの中断通知を使用し、フォールトトレランスを考慮に入れてワークロードを設計すると、通知をキャプチャしてジョブの状態をストレージ (Amazon S3、Amazon EFS、Amazon FSx など) に保存したり、インスタンスからのログファイルを維持したり (またはフォールトトレラントなアプローチをとって連続的にストリーミングしたり)、ロードバランサーからの接続のドレインを実行したりできます。
AWS およびサードパーティーのサービスには、アプリケーションへの影響を低減するために、スポット中断の処理機能をすでに提供しているものもあります。たとえば、スポットインスタンスを使用したマネージド型ノードグループを実行する Amazon EKS の場合、既存のノードについての再調整に関する推奨事項や中断通知を受け取ると、自動的に代わりの Kubernetes ノードを起動します。