Gateway Load Balancer ターゲットグループのヘルスチェック - Elastic Load Balancing

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Gateway Load Balancer ターゲットグループのヘルスチェック

ターゲットを 1 つ以上のターゲットグループに登録します。登録プロセスが完了するとすぐに、Gateway Load Balancer は新たに登録されたターゲットへのトラフィックのルーティングを開始します。登録プロセスが完了し、ヘルスチェックが開始されるまで数分かかることがあります。

Gateway Load Balancer は、登録された各ターゲットに定期的にリクエストを送信してそのステータスを確認します。各ヘルスチェックが完了すると、Gateway Load Balancer はヘルスチェック用に確立された接続を終了します。

ヘルスチェックの設定

以下の設定を使用して、ターゲットグループのターゲットのアクティブなヘルスチェックを設定します。ヘルスチェックがUnhealthyThresholdCount連続する失敗の指定された数を超えると、Gateway Load Balancer はターゲットをサービス停止にします。ヘルスチェックが指定されたHealthyThresholdCount連続成功数を超えると、Gateway Load Balancer はターゲットを稼働状態に戻します。

設定 説明

HealthCheckProtocol

ターゲットに対してヘルスチェックを実行するときにロードバランサーで使用するプロトコル。可能なプロトコルは、HTTP、HTTPS、および ですTCP。デフォルトは ですTCP。

HealthCheckPort

ターゲットでヘルスチェックを実行するときに Gateway Load Balancer が使用するポート。範囲は 1 ~ 65535 です。デフォルトは 80 です。

HealthCheckPath

〔HTTP/HTTPS ヘルスチェック] ヘルスチェックのターゲットの送信先であるヘルスチェックパス。デフォルトは / です。

HealthCheckTimeoutSeconds

ヘルスチェックを失敗と見なす、ターゲットからレスポンスがない時間 (秒単位)。範囲は 2 ~ 120 です。デフォルトは 5 です。

HealthCheckIntervalSeconds

個々のターゲットのヘルスチェックの概算間隔 (秒単位)。範囲は 5 ~ 300 です。デフォルト値は 10 秒です。この値は 以上である必要がありますHealthCheckTimeoutSeconds

重要

Gateway Load Balancer のヘルスチェックは分散され、コンセンサスメカニズムを使用してターゲットのヘルスを判断します。このため、ターゲットアプライアンスでは、設定された時間間隔内に複数のヘルスチェックを受け取ることが考えられます。

HealthyThresholdCount

非正常なインスタンスが正常であると見なすまでに必要なヘルスチェックの連続成功回数。範囲は 2~10 です。デフォルトは 5 です。

UnhealthyThresholdCount

非正常なインスタンスが非正常であると見なすまでに必要なヘルスチェックの連続失敗回数。範囲は 2~10 です。デフォルトは 2 です。

マッチャー

〔HTTP/HTTPS ヘルスチェック] ターゲットからの正常なレスポンスをチェックするときに使用するHTTPコード。この値は、200 ~ 399 である必要があります。

ターゲットヘルスステータス

Gateway Load Balancer がターゲットにヘルスチェックリクエストを送信する前に、ターゲットグループに登録し、リスナールールでターゲットグループを指定して、ターゲットのアベイラビリティーゾーンがロードバランサーに対して有効になっていることを確認する必要があります。

次の表は、登録されたターゲットのヘルスステータスの可能値を示しています。

説明

initial

Gateway Load Balancer は、ターゲットを登録中か、ターゲットで最初のヘルスチェックを実行中です。

関連する理由コード:Elb.RegistrationInProgress|Elb.InitialHealthChecking

healthy

ターゲットは正常です。

関連する理由コード:なし

unhealthy

ターゲットはヘルスチェックに応答しなかったか、ヘルスチェックに合格しませんでした。

関連する理由コード : Target.FailedHealthChecks

unused

ターゲットがターゲットグループに登録されていないか、ターゲットグループがロードバランサーのリスナールールで使用されていないか、ロードバランサーに対して有効ではないアベイラビリティーゾーンにターゲットがあるか、ターゲットが停止または終了状態にあります。

関連する理由コード :Target.NotRegistered |Target.NotInUse |Target.InvalidState |Target.IpUnusable

draining

ターゲットは登録解除中で、Connection Draining 中です。

関連する理由コード : Target.DeregistrationInProgress

unavailable

ターゲットヘルスは使用できません。

関連する理由コード : Elb.InternalError

ヘルスチェックの理由コード

ターゲットのステータスが 以外の値の場合Healthy、 は理由コードと問題の説明APIを返し、コンソールに同じ説明が表示されます。Elb で始まる理由コードは Gateway Load Balancer 側で発生し、Target で始まる理由コードはターゲット側で発生します。

理由コード 説明

Elb.InitialHealthChecking

最初のヘルスチェックが進行中です

Elb.InternalError

内部エラーのため、ヘルスチェックに失敗しました

Elb.RegistrationInProgress

ターゲットの登録中です

Target.DeregistrationInProgress

ターゲットの登録解除中です

Target.FailedHealthChecks

ヘルスチェックに失敗しました

Target.InvalidState

ターゲットが停止状態にあります

ターゲットは終了状態にあります

ターゲットは終了状態か、または停止状態にあります

ターゲットは無効な状態にあります

Target.IpUnusable

IP アドレスはロードバランサーによって使用されているので、ターゲットとして使用できません

Target.NotInUse

ターゲットグループは、Gateway Load Balancer からトラフィックを受信するように設定されていません

Gateway Load Balancer が有効になっていないアベイラビリティーゾーンにターゲットがあります

Target.NotRegistered

ターゲットはターゲットグループに登録されていません

Gateway Load Balancer ターゲット障害シナリオ

既存のフロー : デフォルトでは、ターゲットのヘルスステータスと登録ステータスに関係なく、フローがタイムアウトまたはリセットされない限り、既存のフローは同じターゲットに送信されます。このアプローチにより、Connection Draining が容易になり、CPU使用率が高いためにヘルスチェックに応答できないことがあるサードパーティーのファイアウォールに対応できます。詳細については、「ターゲットフェイルオーバー」を参照してください。

新しいフロー: 新しいフローが正常なターゲットに送信されます。フローのロードバランシングの決定が行われると、Gateway Load Balancer は、そのターゲットが異常になったり、他のターゲットが正常になったりした場合でも、同じターゲットにフローを送信します。

すべてのターゲットが異常な場合、Gateway Load Balancer はターゲットをランダムに選択し、リセットされるかタイムアウトするまで、フローの存続期間中、そのターゲットにトラフィックを転送します。トラフィックは異常なターゲットに転送されるため、トラフィックはそのターゲットが再び正常になるまでドロップされます。

TLS 1.3: ターゲットグループがHTTPSヘルスチェックで設定されている場合、登録されたターゲットが 1.3 TLS のみをサポートしている場合、そのターゲットはヘルスチェックに失敗します。これらのターゲットは、1.2 TLSなどの以前のバージョンの TLS をサポートしている必要があります。

クロスゾーン負荷分散: デフォルトでは、アベイラビリティーゾーン間のロードバランシングは無効になっています。ゾーン間のロードバランシングが有効になっている場合、各 Gateway Load Balancer はすべてのアベイラビリティーゾーン内のすべてのターゲットを認識でき、ゾーンに関係なく、それらはすべて同じように処理されます。

ロードバランシングとヘルスチェックの決定は、ゾーン間で常に独立しています。ゾーン間のロードバランシングが有効になっている場合でも、既存のフローと新しいフローの動作は上記と同じです。詳細については、Elastic Load Balancing ユーザーガイドクロスゾーン負荷分散を参照してください。

ターゲットのヘルスステータスをチェックする

ターゲットグループに登録されたターゲットのヘルスステータスをチェックできます。

コンソールを使用してターゲットのヘルスステータスをチェックするには
  1. で Amazon EC2コンソールを開きますhttps://console.aws.amazon.com/ec2/

  2. ナビゲーションペインの [ロードバランシング] で [ターゲットグループ] を選択します。

  3. ターゲットグループの名前を選択して、その詳細ページを開きます。

  4. [ターゲット] タブの [ステータス] 列は、各ターゲットのステータスを示します。

  5. ターゲットのステータスの値が Healthy 以外の場合は、[ステータスの詳細] 列に詳細情報が表示されます。

を使用してターゲットの状態を確認するには AWS CLI

describe-target-health コマンドを使用します。このコマンドの出力にはターゲットのヘルス状態が含まれます。ステータスの値が Healthy 以外の場合は、理由コードも含まれています。

異常なターゲットに関する E メール通知を受信するには

CloudWatch アラームを使用して Lambda 関数をトリガーし、異常なターゲットに関する詳細を送信します。 step-by-step 手順については、次のブログ記事「ロードバランサーの異常なターゲットの特定」を参照してください。

ヘルスチェックの設定の変更

ターゲットグループのヘルスチェック設定の一部を変更できます。

コンソールを使用してターゲットグループのヘルスチェック設定を変更するには
  1. で Amazon EC2コンソールを開きますhttps://console.aws.amazon.com/ec2/

  2. ナビゲーションペインの [ロードバランシング] で [ターゲットグループ] を選択します。

  3. ターゲットグループの名前を選択して、その詳細ページを開きます。

  4. [グループの詳細] タブの [ヘルスチェックの設定] セクションで、[編集] を選択します。

  5. [ヘルスチェックの編集の設定] ページで、必要に応じて設定を変更し、[変更内容の保存] を選択します。

を使用してターゲットグループのヘルスチェック設定を変更するには AWS CLI

modify-target-group コマンドを使用します。