Auto Scaling グループにヘルスチェックの猶予期間を設定する - Amazon EC2 Auto Scaling

Auto Scaling グループにヘルスチェックの猶予期間を設定する

Amazon EC2 Auto Scaling のヘルスチェックが InService インスタンスに異常があると判断するとき、インスタンスを終了して新しい代替のインスタンスを起動します。ヘルスチェックの猶予期間は、新しいインスタンスに異常がある場合、そのインスタンスを終了するまでに稼働する最小時間 (秒単位) を指定します。

ユースケース例としては、Elastic Load Balancing のヘルスチェックが失敗し、インスタンスがまだ初期化していることが原因である場合、Amazon EC2 Auto Scaling が実行を回避する要件があります。Elastic Load Balancing のヘルスチェックは、インスタンスがロードバランサーに登録されたときに開始して並行で実行されます。猶予期間は、新しく起動されたインスタンスが InService 状態になった後、これらのヘルスチェックにすぐに合格しなかった場合に、Amazon EC2 Auto Scaling がそれらのインスタンスを Unhealthy としてマークして、不必要に終了することがないようにします。

コンソールでは、Auto Scaling グループを作成するときのヘルスチェックの猶予期間がデフォルトで 300 秒になっています。AWS CLI または SDK を使用して Auto Scaling グループを作成するときのデフォルト値は 0 秒です。

この値を高く設定しすぎると、Amazon EC2 Auto Scaling ヘルスチェックの効果が低減します。インスタンスの起動にライフサイクルフックを使用する場合は、ヘルスチェックの猶予期間の値を 0 に設定できます。ライフサイクルフックを使用すると、Amazon EC2 Auto Scaling は、インスタンスが常に初期化されてから InService 状態になることを確実にするための手段を提供します。詳細については、「Amazon EC2 Auto Scaling のライフサイクルフック」を参照してください。

猶予期間は以下のインスタンスに適用されます。

  • 新しく起動されたインスタンス

  • スタンバイ状態になった後で実行状態に戻されるインスタンス

  • グループに手動でアタッチされるインスタンス

重要

ヘルスチェックの猶予期間中に Amazon EC2 Auto Scaling が Amazon EC2 running 状態ではなくなったインスタンスを検出した場合は、直ちにそのインスタンスを Unhealthy としてマークし、置き換えます。例えば、Auto Scaling グループ内のインスタンスを停止すると、そのインスタンスは Unhealthy とマークされ、置き換えられます。

グループにヘルスチェックの猶予期間を設定する

ヘルスチェックの猶予期間は、新規または既存の Auto Scaling グループに設定できます。

Console
新規グループのヘルスチェックの猶予期間を変更する (コンソール)

Auto Scaling グループを作成するときは、[Configure advanced options] (詳細オプションを設定する) ページにある [Health checks] (ヘルスチェック) の [Health check grace period] (ヘルスチェックの猶予期間) に、猶予時間を秒単位で入力します。これは、インスタンスが InService 状態になった後で、Amazon EC2 Auto Scaling がインスタンスのヘルスステータスチェックの実行を待つ必要がある時間です。

AWS CLI
新規グループのヘルスチェックの猶予期間を変更する (AWS CLI)

create-auto-scaling-group コマンドに --health-check-grace-period オプションを追加します。以下の例は、my-asg という名前の新しい Auto Scaling グループに対するヘルスチェック猶予期間を 60 秒の値で設定します。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --health-check-grace-period 60 ...
Console
既存グループのヘルスチェックの猶予期間を変更する (コンソール)
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

  2. 画面の上部のナビゲーションバーで、Auto Scaling グループを作した AWS リージョン を選択します。

  3. Auto Scaling グループの横にあるチェックボックスを選択します。

    [Auto Scaling groups] (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

  4. [詳細] タブで、[ヘルスチェック][編集] の順に選択します。

  5. [Health check grace period] (ヘルスチェックの猶予期間) に、秒単位で時間を入力します。これは、インスタンスが InService 状態になった後で、Amazon EC2 Auto Scaling がインスタンスのヘルスステータスチェックの実行を待つ必要がある時間です。

  6. [Update] (更新) を選択します。

AWS CLI
既存グループのヘルスチェックの猶予期間を変更する (AWS CLI)

update-auto-scaling-group コマンドに --health-check-grace-period オプションを追加します。以下の例は、my-asg という名前の既存の Auto Scaling グループに対するヘルスチェック猶予期間を 120 秒の値で設定します。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --health-check-grace-period 120
注記

Auto Scaling グループに対してデフォルトのインスタンスウォームアップ時間を設定することも強く推奨されます。詳細については、「Auto Scaling グループに対するインスタンスのデフォルトウォームアップを設定する」を参照してください。