Auto Scaling グループでのライフサイクルフックの仕組み - Amazon EC2 Auto Scaling

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

Auto Scaling グループでのライフサイクルフックの仕組み

Amazon EC2 インスタンスは、起動から終了まで、さまざまな状態に移行します。Auto Scaling グループ用にカスタムアクションを作成して、ライフサイクルフックによってインスタンスが待機状態へ移行しているときに、動作させることができます。

次の図は、スケールアウトとスケールインにライフサイクル フックを使用する場合の Auto Scaling インスタンスの状態の遷移を示しています。

スケールアウトとスケールインにライフサイクルフックを使用する場合の 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. インスタンスが終了しました。

重要

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

ルートボリューム置換中のインスタンスのライフサイクル状態遷移

次の図は、ルートボリュームの置き換えにライフサイクルフックを使用する場合の Auto Scaling インスタンスの状態間の遷移を示しています。

ルートボリュームの置き換えにライフサイクルフックを使用する場合の Auto Scaling インスタンスの状態間の遷移。

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

  1. Auto Scaling グループはインスタンスの更新に応答し、ルートボリュームの置き換えにインスタンスを選択します。インスタンスが ReplacingRootVolume状態になります。インスタンスがロードバランサーに登録されている場合、ロードバランサーから登録解除されます。

  2. ライフサイクルフックはインスタンスを待機状態 (ReplacingRootVolume:Wait) にし、カスタムアクションを実行します。インスタンスは、ライフサイクルアクションが完了するまで、またはタイムアウト期間が終了するまで待機状態のままになります。カスタムアクションが完了し、タイムアウト期間がまだ切れていない場合にライフサイクルアクションを完了すると、期間は終了し、Auto Scaling グループはルートボリューム置換プロセスを続行します。

  3. インスタンスはルートボリュームの置換を完了し、 RootVolumeReplaced状態になります。

  4. インスタンスが Pending状態になります。

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

  6. インスタンスが InService状態になります。ただし、インスタンスが InService状態になる前に、Auto Scaling グループが Elastic Load Balancing ロードバランサーに関連付けられている場合、インスタンスはロードバランサーに登録されます。