ライフサイクルアクションを完了する - Amazon EC2 Auto Scaling

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

ライフサイクルアクションを完了する

Auto Scaling グループがライフサイクルイベントに応答する際、Auto Scaling グループはインスタンスを待機状態にしてイベント通知を送信します。インスタンスが待機状態にあるときに、カスタムアクションを実行できます。

ライフサイクルアクションをCONTINUE の結果で完了させることで、タイムアウト期間が経過する前に終了させることができます。ライフサイクル アクションを完了しない場合、タイムアウト期間が終了すると、ライフサイクル フックはデフォルトの結果コードに指定したステータスになります。

ライフサイクルアクションを完了する (手動)

次の手順はコマンドライン インターフェイスに関するもので、コンソールではサポートされていません。インスタンス ID や Auto Scaling グループの名前など、置き換える必要がある情報は、斜体で表示されます。

ライフサイクルアクションを完了するには (AWS CLI)
  1. カスタムアクションを完了するまでにさらに時間が必要な場合は、record-lifecycle-action-heartbeatコマンドを使用してタイムアウト期間を再開し、インスタンスを待機状態に保ちます。例えば、タイムアウト期間が 1 時間に設定されており、30 分後にこのコマンドを呼び出す場合、インスタンスはさらに 1 時間 (合計で 90 分) 待機状態のままになります。

    以下のコマンドに示すように、通知と共に受信したライフサイクルアクショントークンを指定できます。

    aws autoscaling record-lifecycle-action-heartbeat --lifecycle-hook-name my-launch-hook \ --auto-scaling-group-name my-asg --lifecycle-action-token bcd2f1b8-9a78-44d3-8a7a-4dd07d7cf635

    または、以下のコマンドに示すように、通知とともに受信したインスタンスの ID を指定できます。

    aws autoscaling record-lifecycle-action-heartbeat --lifecycle-hook-name my-launch-hook \ --auto-scaling-group-name my-asg --instance-id i-1a2b3c4d
  2. タイムアウト期間が終了する前にカスタムアクションを終了した場合は、complete-lifecycle-actionコマンドを使用して Auto Scaling グループがインスタンスの起動または終了を継続できるようにします。以下のコマンドに示すように、ライフサイクルアクショントークンを指定できます。

    aws autoscaling complete-lifecycle-action --lifecycle-action-result CONTINUE \ --lifecycle-hook-name my-launch-hook --auto-scaling-group-name my-asg \ --lifecycle-action-token bcd2f1b8-9a78-44d3-8a7a-4dd07d7cf635

    または、以下のコマンドに示すように、インスタンスの ID を指定できます。

    aws autoscaling complete-lifecycle-action --lifecycle-action-result CONTINUE \ --instance-id i-1a2b3c4d --lifecycle-hook-name my-launch-hook \ --auto-scaling-group-name my-asg

ライフサイクルアクションを完了する (自動)

起動後にインスタンスを設定するユーザーデータスクリプトがある場合は、ライフサイクルアクションを手動で完了する必要はありません。complete-lifecycle-actionコマンドはスクリプトに追加できます。スクリプトは、インスタンスのメタデータからインスタンス ID を取得し、ブートストラップスクリプトが正常に完了したときに Amazon EC2 Auto Scaling に通知します。

まだそうしていない場合は、インスタンスメタデータからインスタンスのインスタンス ID を取得するためのスクリプトを更新します。詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「インスタンスメタデータを取得する」を参照してください。

Lambda を使用する場合は、カスタムアクションが成功した際にインスタンスのライフサイクルを続行できるように、関数のコードにコールバックを設定することもできます。詳細については、「チュートリアル:Lambda 関数を呼び出すライフサイクルフックの設定」を参照してください。