インスタンスライフサイクルポリシーを使用してインスタンスの保持を制御する - Amazon EC2 Auto Scaling

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

インスタンスライフサイクルポリシーを使用してインスタンスの保持を制御する

インスタンスライフサイクルポリシーは、終了ライフサイクルアクションが中止されたときの Amazon EC2 Auto Scaling の終了に対する保護を提供します。ライフサイクルフックのみとは異なり、インスタンスライフサイクルポリシーは、正常なシャットダウン手順が正常に完了しなかった場合にインスタンスが保持状態に移行するように設計されています。

インスタンスライフサイクルポリシーを使用するタイミング

アプリケーションの正常なシャットダウンがオプションではないが必須であり、シャットダウンに失敗した場合に手動介入が必要な場合は、インスタンスライフサイクルポリシーを使用します。一般的ユースケースには以下が含まれます。

  • 終了前にデータの永続化を完了する必要があるステートフルアプリケーション。

  • ライフサイクルフックの最大タイムアウトである 48 時間を超える可能性のある延長ドレイン期間を必要とするアプリケーション。

  • クリーンアップが失敗または不完全な場合に機密データを処理するワークロードは、データの損失や破損につながる可能性があります。

  • 突然のシャットダウンが可用性に影響を与えるミッションクリティカルなサービス。

インスタンスの終了を適切に処理する方法の詳細については、「」を参照してくださいインスタンスの終了を的確に処理するようにアプリケーションを設計する

インスタンスライフサイクルポリシーが終了ライフサイクルフックと連携する方法

インスタンスライフサイクルポリシーは、代替としてではなく、終了ライフサイクルフックと組み合わせて機能します。このプロセスにはいくつかの段階があります。

  1. 終了ライフサイクルアクションが実行されます。Amazon EC2 Auto Scaling が終了するインスタンスを選択すると、終了ライフサイクルフックが呼び出され、インスタンスは Terminating:Wait状態になり、終了ライフサイクルアクションの実行を開始します。

  2. 正常なシャットダウンの試行が開始されます。アプリケーションは、インスタンス上またはコントロールプレーンを介して実行され、終了ライフサイクルアクション通知を受け取り、接続のドレイン、進行中の作業の完了、データ転送などの正常なシャットダウン手順を開始します。

  3. 終了ライフサイクルアクションが完了しました。終了ライフサイクルアクションは、 CONTINUEまたは ABANDONの結果で完了できます。

  4. インスタンスライフサイクルポリシーは状況を評価します。インスタンスライフサイクルポリシーを設定しないと、終了ライフサイクルアクションがABANDON結果とともに完了した場合でも、インスタンスは直ちに終了に進みます。でインスタンスを保持するように設定されたインスタンスライフサイクルポリシーではTerminateHookAbandon、終了ライフサイクルアクションがABANDON結果とともに完了すると、インスタンスは保持状態に移行します。

  5. 保持されたインスタンスは手動アクションを待機しています。保持状態のインスタンスには、引き続き標準の Amazon EC2 料金が発生します。これらのインスタンスは Auto Scaling グループの希望する容量にはカウントされないため、Auto Scaling は必要なサイズを維持するために代替インスタンスを起動します。インスタンスの更新やインスタンスの最大有効期間などの Auto Scaling 機能も、保持されているインスタンスを無視します。これにより、インスタンスを手動で終了する前に、クリーンアップ手順を手動で完了したり、データを復元したり、自動シャットダウンが失敗した理由を調査したりできます。

  6. 手動終了が発生します。保持されたインスタンスで必要なアクションを完了したら、 TerminateInstanceInAutoScalingGroup API を呼び出してインスタンスを終了する必要があります。