翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ターゲットグループのヘルスチェック
Application Load Balancer は、登録されたターゲットのステータスをテストするため、定期的にリクエストを送信します。これらのテストは、ヘルスチェックと呼ばれます。
各ロードバランサーノードは、ロードバランサーに対して有効になっているアベイラビリティーゾーンの正常なターゲットにのみ、リクエストをルーティングします。各ロードバランサーノードは、ターゲットが登録されているターゲットグループのヘルスチェック設定を使用して、各ターゲットの状態を確認します。ターゲットは、登録後に正常と見なされるためには、1 つのヘルスチェックに合格する必要があります。各ヘルスチェックが完了すると、ロードバランサーノードはヘルスチェック用に確立された接続を終了します。
ターゲットグループに異常な登録済みターゲットのみが含まれている場合、そのヘルスステータスにかかわらず、ロードバランサーはそれらすべてのターゲットにリクエストをルーティングします。つまり、有効なすべてのアベイラビリティーゾーン内で、すべてのターゲットが同時にヘルスチェックに失敗すると、ロードバランサーはオープンに失敗します。フェールオープンの効果は、ヘルスステータスにかかわらず、ロードバランシングのアルゴリズムに基づいて、有効なすべてのアベイラビリティーゾーン内のすべてのターゲットへのトラフィックを許可することです。
ヘルスチェックは をサポートしていません WebSockets。
ヘルスチェックの設定
次の表に示すように、ターゲットグループのターゲットのヘルスチェックを設定します。表で使用される設定名は、API で使用される名前です。ロードバランサーは、指定されたポート、プロトコル、ヘルスチェックパスを使用して、登録された各ターゲットにヘルスチェックリクエストをHealthCheckIntervalSeconds秒ごとに送信します。各ヘルスチェックリクエストは独立しており、結果は間隔全体で存続します。ターゲットが応答するまでにかかる時間は、次のヘルスチェックリクエストまでの間隔に影響を与えません。ヘルスチェックがUnhealthyThresholdCount連続して失敗した場合、ロードバランサーはターゲットをサービス停止にします。ヘルスチェックがHealthyThresholdCount連続した成功を超えると、ロードバランサーはターゲットを稼働状態に戻します。
設定 | 説明 |
---|---|
HealthCheckProtocol |
ターゲットでヘルスチェックを実行するときにロードバランサーが使用するプロトコル。使用可能なプロトコルは HTTP および HTTPS です。デフォルトは HTTP プロトコルです。 これらのプロトコルは、HTTP GET メソッドを使用してヘルスチェックリクエストを送信します。 |
HealthCheckPort |
ターゲットでヘルスチェックを実行するときにロードバランサーが使用するポート。デフォルトでは、各ターゲットがロードバランサーからトラフィックを受信するポートが使用されます。 |
HealthCheckPath |
ターゲットでのヘルスチェックの送信先。 プロトコルバージョンが HTTP/1.1 または HTTP/2 の場合は、有効な URI (/ パス ?クエリ ) を指定します。デフォルトは / です。 プロトコルバージョンが grPC の場合は、カスタムヘルスチェックメソッドのパスを |
HealthCheckTimeoutSeconds |
ヘルスチェックを失敗と見なす、ターゲットからレスポンスがない時間 (秒単位)。範囲は 2~120 秒です。ターゲットタイプが |
HealthCheckIntervalSeconds |
個々のターゲットのヘルスチェックの概算間隔 (秒単位)。範囲は 5 ~ 300 秒です。ターゲットタイプが |
HealthyThresholdCount |
非正常なインスタンスが正常であると見なすまでに必要なヘルスチェックの連続成功回数。範囲は 2 ~ 10 です。デフォルトは 5 です。 |
UnhealthyThresholdCount |
非正常なインスタンスが非正常であると見なすまでに必要なヘルスチェックの連続失敗回数。範囲は 2 ~ 10 です。デフォルトは 2 です。 |
マッチャー |
ターゲットからの正常なレスポンスを確認するために使用するコード。これらは、コンソールでは [成功コード] と呼ばれます。 プロトコルバージョンが HTTP/1.1 または HTTP/2 の場合、指定できる値は 200~499 です。複数の値 (例: "200,202") または値の範囲 (例: "200-299") を指定できます。デフォルト値は 200 です。 プロトコルバージョンが grPC の場合、指定できる値は 0~99 です。複数の値 (例: "0,1") または値の範囲 (例: "0-5") を指定できます。デフォルト値は 12 です。 |
ターゲットヘルスステータス
ロードバランサーがターゲットにヘルスチェックリクエストを送信する前に、ターゲットグループに登録し、リスナールールでターゲットグループを指定して、ターゲットのアベイラビリティーゾーンがロードバランサーに対して有効になっていることを確認する必要があります。ターゲットがロードバランサーからリクエストを受信する前に、最初のヘルスチェックに合格する必要があります。ターゲットが最初のヘルスチェックに合格すると、ステータスは Healthy
になります。
次の表は、登録されたターゲットのヘルスステータスの可能値を示しています。
値 | 説明 |
---|---|
|
ロードバランサーは、ターゲットを登録中か、ターゲットで最初のヘルスチェックを実行中です。 関連する理由コード: |
|
ターゲットは正常です。 関連する理由コード:なし |
|
ターゲットはヘルスチェックに応答しなかったか、ヘルスチェックに合格しませんでした。 関連する理由コード : |
|
ターゲットがターゲットグループに登録されていないか、ターゲットグループがロードバランサーのリスナールールで使用されていないか、ロードバランサーに対して有効ではないアベイラビリティーゾーンにターゲットがあるか、ターゲットが停止または終了状態にあります。 関連する理由コード : |
|
ターゲットは登録解除中で、Connection Draining 中です。 関連する理由コード : |
|
ターゲットグループのヘルスチェックは無効になっています。 関連する理由コード : |
ヘルスチェックの理由コード
ターゲットのステータスが Healthy
以外の値の場合、API は問題の理由コードと説明を返し、コンソールで同じ説明が表示されます。Elb
で始まる理由コードはロードバランサー側で発生し、Target
で始まる理由コードはターゲット側で発生します。ヘルスチェックの失敗が考えられる原因の詳細については、「トラブルシューティング」を参照してください。
理由コード | 説明 |
---|---|
|
最初のヘルスチェックが進行中です |
|
内部エラーのため、ヘルスチェックに失敗しました |
|
ターゲットの登録中です |
|
ターゲットの登録解除中です |
|
ヘルスチェックに失敗しました |
|
ヘルスチェックは無効になっています。 |
|
ターゲットが停止状態にあります ターゲットは終了状態にあります ターゲットは終了状態か、または停止状態にあります ターゲットは無効な状態にあります |
|
IP アドレスはロードバランサーによって使用されているので、ターゲットとして使用できません |
|
ターゲットグループは、ロードバランサーからトラフィックを受信するように設定されていません ロードバランサーが有効になっていないアベイラビリティーゾーンにターゲットがあります |
|
ターゲットはターゲットグループに登録されていません |
|
次のコードでヘルスチェックに失敗しました: [code] |
|
リクエストがタイムアウトしました |
ターゲットのヘルスステータスをチェックする
ターゲットグループに登録されたターゲットのヘルスステータスをチェックできます。
コンソールを使用してターゲットのヘルスステータスをチェックするには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインの [ Load Balancing (ロードバランシング) ] で [ Target Groups (ターゲットグループ) ] を選択します。
-
ターゲットグループの名前を選択して、その詳細ページを開きます。
-
[ターゲット] タブの [ステータス] 列は、各ターゲットのステータスを示します。
-
ステータスの値が
Healthy
以外の場合は、[ステータスの詳細] 列に詳細情報が表示されます。ヘルスチェックの失敗に関するヘルプについては、「トラブルシューティング」を参照してください。
を使用してターゲットの状態を確認するには AWS CLI
describe-target-healthコマンドを実行します。このコマンドの出力にはターゲットのヘルス状態が含まれます。ステータスの値が Healthy
以外の場合は、理由コードも出力に含まれています。
異常なターゲットに関する E メール通知を受信するには
CloudWatch アラームを使用して Lambda 関数をトリガーし、異常なターゲットに関する詳細を送信します。 step-by-step 手順については、次のブログ記事「ロードバランサーの異常なターゲットの特定
ターゲットグループのヘルスチェック設定を変更する
ターゲットグループのヘルスチェック設定はいつでも変更できます。
コンソールを使用してターゲットグループのヘルスチェック設定を変更するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインの [ Load Balancing (ロードバランシング) ] で [ Target Groups (ターゲットグループ) ] を選択します。
-
ターゲットグループの名前を選択して、その詳細ページを開きます。
-
[グループの詳細] タブの [ヘルスチェックの設定] セクションで、[編集] を選択します。
-
[ヘルスチェックの編集の設定] ページで、必要に応じて設定を変更し、[変更内容の保存] を選択します。
を使用してターゲットグループのヘルスチェック設定を変更するには AWS CLI
modify-target-groupコマンドを実行します。