メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

Auto Scaling ヘルスチェックの設定

デフォルトでは、ご使用の環境向けに作成された Auto Scaling は Amazon EC2 ステータスチェックを使用します。環境のインスタンスが EC2 ステータスチェックに失敗した場合、そのインスタンスは停止され、Auto Scaling により置き換えられます。

EC2 ステータスチェックは、インスタンスで実行されているアプリケーション、サーバー、Docker コンテナの状態ではなく、インスタンスの状態のみを確認するものです。アプリケーションがクラッシュしたが、それが実行されていたインスタンスが正常なままである場合、ロードバランサーの対象から外れる可能性はありますが、Auto Scaling によって自動的に置き換えられることはありません。

注記

Elastic Beanstalk コンソールのロードバランシング設定セクションでヘルスチェック URL を設定しても、環境の Auto Scaling グループのヘルスチェックの動作には影響しません。

アプリケーションがクラッシュしたときに、トラブルシューティングと復旧の目的で環境内のインスタンスを維持することができます。アプリケーションがクラッシュしてすぐに Auto Scaling によってインスタンスが置き換えられた場合、起動直後にアプリケーションがクラッシュした場合でも、何が問題だったのかを判別することはできません。

アプリケーションが応答を停止したインスタンスを Auto Scaling によって再起動したい場合は、.ebextensions 設定ファイルを使用して、Elastic Load Balancing ヘルスチェックを使用するように Auto Scaling グループを設定することができます。

注記

インスタンスの開始直後に Elastic Load Balancing ヘルスチェックが失敗する場合、このオプションを有効にすることで、環境を連続して終了し、インスタンスを置き換えることができます。その場合、Auto Scaling マネジメントコンソールでヘルスチェックのタイプを EC2 に戻すか、設定変更を元に戻して環境をデプロイし直します。

環境の起動中に Auto Scaling ヘルスチェックを ELB に設定するには

  1. プロジェクトフォルダに .ebextensions ディレクトリを作成します。

  2. 以下の内容で、.ebextensions フォルダに設定ファイルを作成します。

    .ebextensions/autoscaling.config

    Resources:
      AWSEBAutoScalingGroup:
        Type: "AWS::AutoScaling::AutoScalingGroup"
        Properties:
          HealthCheckType: ELB
          HealthCheckGracePeriod: 300

    猶予期間の設定は、インスタンスがヘルスチェックで失敗した後に、インスタンスを終了して置き換えることなく保留する秒数を設定します。ロードバランサーの対象から外れた後でもインスタンスが復旧する可能性があるため、アプリケーションに適した時間をインスタンスに指定します。

  3. 環境をデプロイまたは更新します。

デフォルトでは、Elastic Load Balancing ヘルスチェックは、ポート 80 を経由してインスタンスに TCP 接続を試みるように設定されています。これにより、インスタンスで実行されているウェブサーバーが接続を受け入れたことを確認できますが、ウェブサーバーではなくアプリケーションが良好な状態であることを確認するように、チェックをカスタマイズすることもできます。

環境に応じて Elastic Load Balancing 設定を変更することによって、別のポートを使用するか、アプリケーションが使用するパスに対して HTTP GET リクエストを使用するように Elastic Load Balancing に指示することができます。詳細については、「Elastic Beanstalk 環境のロードバランサーの設定」を参照してください。