

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

# Gateway Load Balancer ターゲットグループのヘルスチェック
<a name="health-checks"></a>

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

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

## ヘルスチェックの設定
<a name="health-check-settings"></a>

以下の設定を使用して、ターゲットグループのターゲットのアクティブなヘルスチェックを設定します。ヘルスチェックが **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 である必要があります。 | 

## ターゲットヘルスステータス
<a name="target-health-states"></a>

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

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


| 値 | 説明 | 
| --- | --- | 
| `initial` | Gateway Load Balancer は、ターゲットを登録中か、ターゲットで最初のヘルスチェックを実行中です。<br />関連する理由コード:`Elb.RegistrationInProgress`\|`Elb.InitialHealthChecking` | 
| `healthy` | ターゲットは正常です。<br />関連する理由コード:なし | 
| `unhealthy` | ターゲットはヘルスチェックに応答しなかったか、ヘルスチェックに合格しませんでした。<br />関連する理由コード : `Target.FailedHealthChecks` | 
| `unused` | ターゲットがターゲットグループに登録されていないか、ターゲットグループがロードバランサーのリスナールールで使用されていないか、ロードバランサーに対して有効ではないアベイラビリティーゾーンにターゲットがあるか、ターゲットが停止または終了状態にあります。<br />関連する理由コード :`Target.NotRegistered` \|`Target.NotInUse` \|`Target.InvalidState` \|`Target.IpUnusable` | 
| `draining` | ターゲットは登録解除中で、Connection Draining 中です。<br />関連する理由コード : `Target.DeregistrationInProgress` | 
| `unavailable` | ターゲットヘルスは使用できません。<br />関連する理由コード : `Elb.InternalError` | 

## ヘルスチェックの理由コード
<a name="target-health-reason-codes"></a>

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


| 理由コード | 説明 | 
| --- | --- | 
| `Elb.InitialHealthChecking` | 最初のヘルスチェックが進行中です | 
| `Elb.InternalError` | 内部エラーのため、ヘルスチェックに失敗しました | 
| `Elb.RegistrationInProgress` | ターゲットの登録中です | 
| `Target.DeregistrationInProgress` | ターゲットの登録解除中です | 
| `Target.FailedHealthChecks` | ヘルスチェックに失敗しました | 
| `Target.InvalidState` | ターゲットが停止状態にあります<br />ターゲットは終了状態にあります<br />ターゲットは終了状態か、または停止状態にあります<br />ターゲットは無効な状態にあります | 
| `Target.IpUnusable` | IP アドレスはロードバランサーによって使用されているので、ターゲットとして使用できません | 
| `Target.NotInUse` | ターゲットグループは、Gateway Load Balancer からトラフィックを受信するように設定されていません<br />Gateway Load Balancer が有効になっていないアベイラビリティーゾーンにターゲットがあります | 
| `Target.NotRegistered` | ターゲットはターゲットグループに登録されていません | 

## Gateway Load Balancer ターゲット障害シナリオ
<a name="failure-scenarios"></a>

**既存のフロー**: デフォルトでは、ターゲットのヘルスや登録のステータスにかかわらず、フローがタイムアウトまたはリセットされない限り、既存のフローは常に同じターゲットに移動します。このアプローチにより、Connection Draining が容易になります。また、CPU 使用率が高いため、ヘルスチェックに応答できないことがあるサードパーティーのファイアウォールに対応できます。詳細については、「[ターゲットフェイルオーバー](edit-target-group-attributes.md#target-failover)」を参照してください。

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

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

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

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

ロードバランシングとヘルスチェックの決定は、ゾーン間で常に独立しています。ゾーン間のロードバランシングが有効になっている場合でも、既存のフローと新しいフローの動作は上記と同じです。詳細については、*Elastic Load Balancing ユーザーガイド*の[クロスゾーン負荷分散](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#cross-zone-load-balancing)を参照してください。

## ターゲットのヘルスステータスをチェックする
<a name="check-target-health"></a>

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

**コンソールを使用してターゲットのヘルスステータスをチェックするには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

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

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

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

**を使用してターゲットの状態を確認するには AWS CLI**  
[describe-target-health](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-target-health.html) コマンドを使用します。このコマンドの出力にはターゲットのヘルス状態が含まれます。ステータスの値が `Healthy` 以外の場合は、理由コードも含まれています。

**異常なターゲットに関する E メール通知を受信するには**  
CloudWatch アラームを使用して、異常なターゲットに関する詳細を送信する Lambda 関数をトリガーします。ステップバイステップの手順については、ブログ投稿「[ロードバランサーの異常なターゲットを特定する](https://aws.amazon.com/blogs/networking-and-content-delivery/identifying-unhealthy-targets-of-elastic-load-balancer/)」を参照してください。

## ヘルスチェックの設定の変更
<a name="modify-health-check-settings"></a>

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

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

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

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

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

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

**を使用してターゲットグループのヘルスチェック設定を変更するには AWS CLI**  
[modify-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-target-group.html) コマンドを使用します。