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

基本ヘルスレポート

AWS Elastic Beanstalk は、複数のソースからの情報を使用して、対象環境が使用可能であり、インターネットへのリクエストを処理中であるかどうかを判断します。環境のヘルスステータスは、4 色のいずれかで表されて、環境ダッシュボードに表示されます。また、DescribeEnvironments API からも、EB CLI での eb status の呼び出しによっても使用できます。

バージョン 2 より前の Linux プラットフォーム設定では、ヘルスレポートシステムは基本ヘルスのみでした。基本ヘルスレポートシステムは、負荷分散環境では Elastic Load Balancing によって、または単一インスタンス環境では Amazon Elastic Compute Cloud によって行われるヘルスチェックに基づいて、Elastic Beanstalk 環境内のインスタンスのヘルスステータスに関する情報を提供します。

EC2 インスタンスのヘルスチェックに加えて、Elastic Beanstalk は、対象環境内のその他のリソースのモニタリングも行い、不足しているリソースや、誤設定のためユーザーに使用不可となったリソースをレポートします。

対象環境内のリソースによって収集されたメトリクスは、5 分間隔で Amazon CloudWatch に発行されます。これには、EC2 からのオペレーティングシステムメトリクス、Elastic Load Balancing からのリクエストメトリクスが含まれます。環境コンソールの [Monitoring] ページで、これらの CloudWatch メトリクスに基づいてグラフを表示できます。基本ヘルスの場合、これらのメトリクスは環境のヘルスステータスを判断するために使用されません。

ヘルスステータスの色

Elastic Beanstalk は、ウェブサーバーの環境のヘルスステータスを、そのサーバーで実行中のアプリケーションによるヘルスチェックへの応答に基づいてレポートします。Elastic Beanstalk は、以下の表に示しているように、4 色のいずれかでステータスを表します。

説明

Grey

環境が更新中です。

Green

環境が最新のヘルスチェックで合格になりました。環境内の少なくとも 1 つのインスタンスが使用可能であり、リクエストを受け取っています。

黄色

対象環境が 1 つ以上のヘルスチェックで失格になりました。環境へのいくつかのリクエストが失敗しています。

対象環境が 3 つ以上のヘルスチェックで失格になったか、環境のリソースが使用不可になっています。リクエストは一貫して失敗しています。

これらの説明は、基本ヘルスレポートを使用している環境にのみ適用されます。拡張ヘルスの詳細については、「状態の色とステータス」を参照してください。

Elastic Load Balancing ヘルスチェック

負荷が分散されている環境では、インスタンスが正常であることを確認するために、Elastic Load Balancing は環境内の各インスタンスに 30 秒ごとにリクエストを送信します。デフォルトでは、ロードバランサーはポート 80 で TCP 接続を開くように設定されています。インスタンスが接続に応答した場合、そのインスタンスは正常と見なされます。

アプリケーションで既存のリソースを指定することによって、この設定をオーバーライドすることもできます。/health などのパスを指定した場合、ヘルスチェック URL は http:80/health に設定されます。ヘルスチェック URL は、常にアプリケーションによって処理されるパスに設定する必要があります。アプリケーションの前にあるウェブサーバーによって処理またはキャッシュされる静的なページに設定すると、ヘルスチェックはアプリケーションサーバーまたはウェブコンテナで発生する問題を検出しません。ヘルスチェック URL の変更方法については、ヘルスチェック を参照してください。

ヘルスチェック URL が設定されている場合、Elastic Load Balancing では、送信する GET リクエストで 200 OK の応答が返される必要があります。5 秒以内に応答が返されなかった場合、または他の HTTP ステータスコードで応答が返された場合、アプリケーションはヘルスチェックで失格になります。5 回連続してヘルスチェックで失格になった後、Elastic Load Balancing はそのインスタンスをサービスから除外します。

Elastic Load Balancing ヘルスチェックの詳細については、『Elastic Load Balancing ユーザーガイド』の「ヘルスチェック」を参照してください。

注記

ヘルスチェック URL を設定しても、環境の Auto Scaling グループのヘルスチェック動作は変わりません。 正常でないインスタンスはロードバランサーから削除されますが、インスタンス置き換えの判断基準として Elastic Load Balancing ヘルスチェックを使用するように Auto Scaling を設定していない場合、そのインスタンスは Auto Scaling によって自動的に置き換えられることはありません。Elastic Load Balancing のヘルスチェックで失格になったインスタンスを置き換えるように Auto Scaling を設定するには、「Auto Scaling ヘルスチェックの設定」を参照してください。

単一インスタンス環境のヘルスチェック

単一インスタンス環境では、Elastic Beanstalk は、その Amazon EC2 インスタンスのステータスを監視することで、インスタンスのヘルスステータスを判断します。HTTP ヘルスチェック URL などの Elastic Load Balancing ヘルス設定を単一インスタンス環境で使用することはできません。

Amazon EC2 インスタンスのステータスチェックの詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「ステータスチェックでインスタンスをモニタリングする」を参照してください。

追加のチェック

Elastic Load Balancing ヘルスチェックに加えて、Elastic Beanstalk は、対象環境内のリソースのモニタリングを行い、デプロイに失敗したリソースや、誤設定されたリソース、使用不可になったリソースが見つかった場合、そのリソースのヘルスステータスを赤色に変更します。これらのチェックでは、以下のことが確認されます。

  • 環境の Auto Scaling グループと少なくとも 1 つのインスタンスが使用可能である。

  • 環境のセキュリティグループが使用可能で、ポート 80 で受信トラフィックを許可するように設定されている。

  • 環境 CNAME が存在し、正しいロードバランサーを指している。

  • ワーカー環境において、Amazon Simple Queue Service(Amazon SQS)キューが少なくとも 3 分に 1 回ポーリングされている。

Amazon CloudWatch のメトリクス

基本ヘルスレポートでは、Elastic Beanstalk サービスは Amazon CloudWatch にメトリクスを発行しません。環境コンソールの [Monitoring] ページでグラフの生成に使用される CloudWatch メトリクスは、対象環境内のリソースによって発行されます。

たとえば、EC2 は対象環境の Auto Scaling グループのインスタンスについて以下のメトリクスを発行します。

CPUUtilization

現在使用中のコンピューティングユニットのパーセンテージ。

DiskReadBytes
DiskReadOps
DiskWriteBytes
DiskWriteOps

読み取りおよび書き込みバイトの数、読み取りおよび書き込みオペレーションの数。

NetworkIn
NetworkOut

送信および受信バイトの数。

Elastic Load Balancing は対象環境のロードバランサーについて以下のメトリクスを発行します。

BackendConnectionErrors

対象環境のロードバランサーとインスタンスとの接続失敗の数。

HTTPCode_Backend_2XX
HTTPCode_Backend_4XX

対象環境内のインスタンスによって生成された成功(2XX)とクライアントエラー(4XX)の応答コードの数。

Latency

ロードバランサーがインスタンスにリクエストを中継してから応答を受信するまでの秒数。

RequestCount

完了したリクエストの数。

これらのリストにはすべてのメトリクスが含まれているわけではありません。これらのリソースについてレポート可能なメトリクスの完全なリストについては、『Amazon CloudWatch 開発者ガイド』の以下のトピックを参照してください。

メトリクス

ワーカー環境ヘルスメトリクス

ワーカー環境でのみ、SQS デーモンは CloudWatch に環境ヘルスのカスタムメトリクスを発行します(値 1 は緑色です)。ElasticBeanstalk/SQSD 名前空間を使用してアカウントの CloudWatch ヘルスメトリクスデータを確認できます。メトリクスディメンションは EnvironmentName、メトリクス名は Health です。すべてのインスタンスが、同じ名前空間にメトリクスを公開します。

デーモンがメトリクスを発行できるように、環境のインスタンスプロファイルに、cloudwatch:PutMetricData を呼び出す権限を付与する必要があります。この権限は、デフォルトのインスタンスプロファイルに含まれます。詳細については、「Elastic Beanstalk インスタンスプロファイルを管理する」を参照してください。