翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ベーシックヘルスレポート
このトピックでは、Elastic Beanstalk の基本ヘルスが提供する機能について説明します。
AWS Elastic Beanstalk は、複数のソースからの情報を使用して、環境が利用可能かどうかを判断し、インターネットからのリクエストを処理します。環境の状態は 4 つの色のいずれかで表され、Elastic Beanstalk コンソールの [環境の概要] ページに表示されます。また、DescribeEnvironments API から、および EB CLI を使用して eb status を呼び出すことによっても利用できます。
基本的なヘルスレポートシステムは、Elastic Beanstalk 環境におけるインスタンスのヘルスに関する情報を提供します。ロードバランシング環境の場合は 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 は環境内の各インスタンスに 10 秒ごとにリクエストを送信します。デフォルトでは、ロードバランサーはポート 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 ヘルスチェックを使用するように Amazon EC2 Auto Scaling を設定していない場合、そのインスタンスは Amazon EC2 Auto Scaling によって自動的に置き換えられることはありません。Elastic Load Balancing ヘルスチェックに失敗したインスタンスを置き換えるように Amazon EC2 Auto Scaling を設定するには、「Elastic Beanstalk 環境の Auto Scaling ヘルスチェック設定」を参照してください。
単一インスタンスおよびワーカー枠環境のヘルスチェック
単一インスタンスまたはワーカー枠環境では、Elastic Beanstalk は Amazon EC2 インスタンスのステータスをモニタリングして、インスタンスの状態を決定します。HTTP ヘルスチェック URL を含む Elastic Load Balancing のヘルス設定は、これらの環境タイプでは使用できません。
Amazon EC2 インスタンスのステータスチェックの詳細については、「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 開発者ガイドの以下のトピックを参照してください。
名前空間 | トピック |
---|---|
AWS::ElasticLoadBalancing::LoadBalancer | Elastic Load Balancing のメトリクスとリソース |
AWS::AutoScaling::AutoScalingGroup | Amazon Elastic Compute Cloud のメトリクスとリソース |
AWS::SQS::Queue | Amazon SQS メトリクスおよびリソース |
AWS::RDS::DBInstance | Amazon RDS のディメンションおよびメトリクス |
ワーカー環境ヘルスメトリクス
ワーカー環境でのみ、SQS デーモンは CloudWatch に環境ヘルスのカスタムメトリクスを発行します (値 1 は Green です)。ElasticBeanstalk/SQSD
名前空間を使用してアカウントの CloudWatch ヘルスメトリクスデータを確認できます。メトリクスディメンションは EnvironmentName
、メトリクス名は Health
です。すべてのインスタンスが、同じ名前空間にメトリクスを公開します。
デーモンがメトリクスを発行できるように、環境のインスタンスプロファイルに、cloudwatch:PutMetricData
を呼び出す権限を付与する必要があります。この権限は、デフォルトのインスタンスプロファイルに含まれます。詳細については、「」を参照してくださいElastic Beanstalk インスタンスプロファイルの管理