ライフサイクルフックの動作 - Amazon EC2 Auto Scaling

ライフサイクルフックの動作

Amazon EC2 インスタンスは、起動から終了まで、さまざまな状態に移行します。ライフサイクルフックを作成して、インスタンスの待機状態への移行時に動作させることができます。

次の図は、Auto Scaling インスタンスの状態間の移行を示しています。


                ライフサイクルフックを使用するインスタンスのライフサイクル。

(前の図には示されているように)。

  1. Auto Scaling グループはスケールアウト イベントに応答し、インスタンスの起動を開始します。

  2. ライフサイクルフックはインスタンスを待機状態 (Pending:Wait) にし、カスタムアクションを実行します。

    インスタンスは、ライフサイクルアクションが完了するまで、またはタイムアウト期間が終了するまで待機状態のままになります。デフォルトでは、インスタンスは 1 時間にわたり待機状態になった後、Auto Scaling グループは起動処理を継続します(Pending:Proceed)。さらに時間が必要な場合は、ハートビートを記録することにより、タイムアウト期間を再開できます。カスタムアクションは完了したが、タイムアウト期間はまだ終了していないという場合にライフサイクルアクションを完了すると、タイムアウト期間が終了し、Auto Scaling グループは起動プロセスを続行します。

  3. インスタンスはInService状態になり、ヘルスチェックの猶予期間がスタートします。ただし、Auto Scaling グループが Elastic Load Balancing ロードバランサーに関連付けられている場合、インスタンスが InService 状態に到達する前にインスタンスはロードバランサーに登録され、ロードバランサーはそのヘルスチェックを開始します。ヘルスチェックの猶予期間が終了すると、Amazon EC2 Auto Scaling はインスタンスのヘルス状態のチェックを開始します。

  4. Auto Scaling グループはスケールイン イベントに応答し、インスタンスの終了を開始します。Auto Scaling グループが Elastic Load Balancing で使用されている場合、まず、終了するインスタンスがロードバランサーから登録解除されます。ロードバランサーの Connection Draining が有効になっている場合、インスタンスは新しい接続の受け入れを停止し、既存の接続のドレインを待ってから登録解除プロセスを完了します。

  5. ライフサイクルフックはインスタンスを待機状態 (Terminating:Wait) にし、カスタムアクションを実行します。

    インスタンスは、ライフサイクルアクションを完了するまで、またはタイムアウト期間が終了するまで (デフォルトでは 1 時間)、待機状態のままになります。ライフサイクルフックを完了するか、タイムアウト期間が終了すると、インスタンスは次の状態 (Terminating:Proceed)に移行します。

  6. インスタンスが終了しました。

重要

ウォームプール内のインスタンスには、ウォームプール内のインスタンスのライフサイクル状態の移行 で説明されている、対応する待機状態を備えた独自のライフサイクルもあります。