

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

# VPC Lattice のターゲットグループ
<a name="target-groups"></a>

VPC Lattice ターゲットグループは、アプリケーションまたはサービスを実行するターゲット、つまりコンピューティングリソースのコレクションです。サポートされているターゲットタイプには、EC2 インスタンス、IP アドレス、Lambda 関数、Application Load Balancer、Amazon ECS タスク、Kubernetes Pod などがあります。ターゲットグループには既存のサービスをアタッチすることもできます。VPC Lattice での Kubernetes の使用の詳細については、「[AWS ゲートウェイ API コントローラのユーザーガイド](https://www.gateway-api-controller.eks.aws.dev/)」を参照してください。

各*ターゲットグループ*は、1 つ以上の登録されているターゲットにリクエストをルーティングするために使用されます。リスナーのルールを作成するときに、ターゲットグループと条件を指定します。ルールの条件が満たされると、トラフィックが該当するターゲットグループに転送されます。さまざまなタイプのリクエストに応じて別のターゲットグループを作成できます。例えば、一般的なリクエスト用にターゲットグループを作成し、パスやヘッダー値など、特定のルール条件を含むリクエスト用に別のターゲットグループを作成できます。

![\[リスナー 1 つ、リスナールール、ターゲットグループ 2 つを含むサービス。\]](http://docs.aws.amazon.com/ja_jp/vpc-lattice/latest/ug/images/service.png)


サービスのヘルスチェック設定は、ターゲットグループ単位で定義します。各ターゲットグループはデフォルトのヘルスチェック設定を使用します。ただし、ターゲットグループを作成したときや、後で変更したときに上書きした場合を除きます。リスナーのルールでターゲットグループを指定すると、サービスは、ターゲットグループに登録されたすべてのターゲットの状態を継続的にモニタリングします。サービスは、正常な登録済みターゲットにリクエストをルーティングします。

ターゲットグループをサービスリスナーのルールで指定するには、サービスと同じアカウントにそのターゲットグループがある必要があります。

VPC Lattice ターゲットグループは Elastic Load Balancing が提供するターゲットグループと似ていますが、これらには互換性はありません。

**Topics**
+ [ターゲットグループの作成](create-target-group.md)
+ [ターゲットの登録](register-targets.md)
+ [ヘルスチェックを設定する](target-group-health-checks.md)
+ [ルーティング設定](#target-group-routing-configuration)
+ [ルーティングアルゴリズム](#target-group-routing-algorithm)
+ [[Target type (ターゲットタイプ)]](#target-type)
+ [IP アドレスタイプ](#target-group-ip-address-type)
+ [HTTP ターゲット](http-targets.md)
+ [ターゲットとしての Lambda 関数](lambda-functions.md)
+ [ターゲットとしての Application Load Balancer](alb-target.md)
+ [プロトコルバージョン](#target-group-protocol-version)
+ [タグの更新](target-group-tags.md)
+ [ターゲットグループの削除](delete-target-group.md)

# VPC Lattice ターゲットグループを作成する
<a name="create-target-group"></a>

ターゲットグループにターゲットを登録します。デフォルトでは、VPC Lattice サービスはターゲットグループに指定したポートとプロトコルを使用して登録済みターゲットにリクエストを送信します。ターゲットグループに各ターゲットを登録するときに、このポートを上書きできます。

ターゲットグループ内のターゲットにトラフィックをルーティングするには、リスナーを作成するか、リスナーのルールを作成するときに、アクションでターゲットグループを指定します。詳細については、「[VPC Lattice サービスのリスナールール](listener-rules.md)」を参照してください。複数のリスナーに同じターゲットグループを指定できますが、そのリスナーは同じサービスに属している必要があります。サービスでターゲットグループを使用するには、ターゲットグループが他のサービスのリスナーによって使用されていないことを確認する必要があります。

ターゲットグループのタグはいつでも追加または削除できます。詳細については、「[VPC Lattice ターゲットグループにターゲットを登録する](register-targets.md)」を参照してください。ターゲットグループのヘルスチェック設定を変更することもできます。詳細については、「[VPC Lattice ターゲットグループのヘルスチェック](target-group-health-checks.md)」を参照してください。

## ターゲットグループの作成
<a name="create-lattice-target-group"></a>

以下の手順を実行すると、ターゲットグループを作成し、必要に応じてターゲットを登録できます。

**コンソールを使用してターゲットグループを作成するには**

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

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

1. **[ターゲットグループの作成]** を選択します。

1. **[ターゲットタイプの選択]** で、以下のいずれかを選択します。
   + インスタンス ID でターゲットを登録するには、**[インスタンス]** を選択します。
   + IP アドレスでターゲットを登録するには、**[IP アドレス]** を選択します。
   + Lambda 関数をターゲットとして登録するには、**[Lambda 関数]** を登録します。
   + Application Load Balancer をターゲットとして登録するには、**[Application Load Balancer]** を選択します

1. [**ターゲットグループ名**] に、ターゲットグループの名前を入力します。この名前は、各 AWS リージョンのアカウントで一意であること、最大 32 文字であること、英数字またはハイフンのみであること、ハイフンで開始または終了することはできません。

1. **[プロトコル]** と **[ポート]** で、必要に応じてデフォルト値を変更できます。デフォルトのプロトコルは **[HTTPS]** で、デフォルトのポートは **[443]** です。

   ターゲットタイプが **[Lambda 関数]** の場合は、プロトコルやポートを指定できません。

1. **[IP アドレスタイプ]** で、ターゲットを IPv4 アドレスで登録するには **[IPv4]** を選択し、ターゲットを IPv6 アドレスで登録するには **[IPv6]** を選択します。ターゲットグループの作成後はこの設定を変更できません。

   このオプションは、ターゲットタイプが **[IP アドレス]** の場合にのみ使用できます。

1. [**VPC**] で、Virtual Private Cloud (VPC) を選択します。

   ターゲットタイプが **[Lambda 関数]** の場合、このオプションは使用できません。

1. **[プロトコルバージョン]** で、必要に応じてデフォルト値を変更します。デフォルトは **[HTTP1]** です。

   ターゲットタイプが **[Lambda 関数]** の場合、このオプションは使用できません。

1. **[ヘルスチェック]** で、必要に応じてデフォルト設定を変更します。詳細については、「[VPC Lattice ターゲットグループのヘルスチェック](target-group-health-checks.md)」を参照してください。

   ターゲットタイプが **[Lambda 関数]** の場合、ヘルスチェックは使用できません。

1. **[Lambda イベント構造バージョン]** でバージョンを選択します。詳細については、「[VPC Lattice サービスからのイベントを受け取る](lambda-functions.md#receive-event-from-service)」を参照してください。

   このオプションは、ターゲットタイプが **[Lambda 関数]** の場合にのみ使用できます。

1. (オプション) タグを追加するには、**[タグ]** を展開し、**[新しいタグを追加]** を選択して、タグキーとタグ値を入力します。

1. [**次へ**] を選択します。

1. **[ターゲットの登録]** では、このステップをスキップするか、以下の手順を実行してターゲットを追加できます。
   + ターゲットタイプが**インスタンス**である場合は、インスタンスを選択し、[**保留中として以下を含める**] を選択します。
   + ターゲットタイプが [**IP addresses**] (IP アドレス) の場合は、以下を実行してください。

     1. **[ネットワークを選択]** では、ターゲットグループに選択した VPC をそのまま使用するか、**[その他のプライベート IP アドレス]** を選択します。

     1. **[Specify IPs and define ports]** に IP アドレスを入力し、ポートを入力します。デフォルトのポートは、ターゲットグループのポートです。

     1. **[保留中として以下を含める]** をクリックします。
   + ターゲットタイプが [**Lambda 関数]** の場合は、Lambda 関数を選択します。Lambda 関数を作成するには、**[新しい Lambda 関数を作成]** を選択します。
   + ターゲットタイプが **[Application Load Balancer]** の場合、Application Load Balancer を選択します。Application Load Balancer を作成するには、**[create an Application Load Balancer]** を選択します。

1. **[ターゲットグループの作成]** を選択します。

   VPC Lattice がターゲットを登録するまでに数分かかる場合があります。詳細については、[「DNS の変更が Route 53 とパブリックリゾルバーに反映されるまでに時間がかかるのはなぜですか？」を参照してください。](https://repost.aws/knowledge-center/route-53-propagate-dns-changes)

**を使用してターゲットグループを作成するには AWS CLI**  
ターゲットグループを作成するには [create-target-group](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-target-group.html) コマンド、ターゲットを追加するには [register-targets](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/register-targets.html) コマンドを使用します。

## 共有サブネット
<a name="target-group-shared-subnets"></a>

参加者は VPC Lattice ターゲットグループを共有 VPC に作成できます。共有サブネットには以下のルールが適用されます。
+ VPC Lattice サービスのすべての部分 (リスナー、ターゲットグループ、ターゲットなど) は、同じアカウントで作成する必要があります。これらは、VPC Lattice サービスの所有者が所有するサブネット、または VPC Lattice サービスの所有者と共有するサブネットに作成できます。
+ ターゲットグループに登録するターゲットは、ターゲットグループと同じアカウントで作成する必要があります。
+ VPC の所有者のみが、VPC をサービスネットワークに関連付けることができます。サービスネットワークに関連付けられている共有 VPC の参加者リソースは、サービスネットワークに関連付けられているサービスにリクエストを送信できます。ただし、管理者はセキュリティグループ、ネットワーク ACL、認証ポリシーを使用してこれを防ぐことができます。

VPC Lattice の共有可能なリソースの詳細については、「[VPC Lattice のエンティティを共有する](sharing.md)」を参照してください。

# VPC Lattice ターゲットグループにターゲットを登録する
<a name="register-targets"></a>

サービスは、クライアントにとって単一の通信先として機能し、正常な登録済みターゲットに受信トラフィックを分散します。各ターゲットは、1 つ以上のターゲットグループに登録できます。

アプリケーションの需要が高まった場合、需要に対処するため、1 つ以上のターゲットグループに追加のターゲットを登録できます。登録処理が完了し、ターゲットが最初のヘルスチェックに合格するとすぐに、サービスは新しく登録したターゲットへのリクエストのルーティングを開始します。

アプリケーションの需要が低下した場合や、ターゲットを保守する必要がある場合、ターゲットグループからターゲットを登録解除することができます。ターゲットを登録解除するとターゲットグループから削除されますが、ターゲットにそれ以外の影響は及びません。登録解除するとすぐに、サービスはターゲットへのリクエストのルーティングを停止します。ターゲットは、未処理のリクエストが完了するまで `DRAINING` 状態になります。リクエストの受信を再開する準備ができると、ターゲットをターゲットグループに再度登録することができます。

ターゲットグループのターゲットの種類により、ターゲットグループにターゲットを登録する方法が決定されます。詳細については、「[[Target type (ターゲットタイプ)]](target-groups.md#target-type)」を参照してください。

以下のコンソール手順を使用して、ターゲットを登録または登録解除します。または、 AWS CLIの [register-targets](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/register-targets.html) コマンドと [deregister-targets](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/deregister-targets.html) コマンドを使用します。

**Topics**
+ [インスタンス ID によるターゲットの登録または登録解除](#register-instances)
+ [IP アドレスによるターゲットの登録または登録解除](#register-ip-addresses)
+ [Lambda 関数の登録または登録解除](#register-lambda-function)
+ [Application Load Balancer の登録または登録解除](#register-alb)

## インスタンス ID によるターゲットの登録または登録解除
<a name="register-instances"></a>

ターゲットインスタンスは、ターゲットグループに指定された仮想プライベートクラウド (VPC) に存在している必要があります。また、インスタンスの登録時の状態は `running` である必要があります。

インスタンス ID でターゲットを登録する場合は、Auto Scaling グループでサービスを使用できます。Auto Scaling グループにターゲットグループをアタッチし、そのグループがスケールアウトすると、Auto Scaling グループによって起動されたインスタンスが自動的にターゲットグループに登録されます。Auto Scaling グループからターゲットグループをデタッチした場合、インスタンスはターゲットグループから自動的に登録解除されます。詳細については、「Amazon EC2 Auto Scaling ユーザーガイド」の「[VPC Lattice ターゲットグループを使用して、トラフィックを Auto Scaling グループにルーティングする](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-vpc-lattice.html)」を参照してください。

**コンソールを使用してターゲットをインスタンス ID で登録または登録解除するには**

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

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

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

1. [**Targets**] タブを選択します。

1. インスタンスを登録するには、[**ターゲットの登録**] を選択します。インスタンスを選択し、インスタンスポートを入力して、**[保留中として以下を含める]** を選択します。インスタンスの追加が完了したら、**[ターゲットの登録]** を選択します。

1. インスタンスを登録解除するには、インスタンスを選択してから **[登録解除]** を選択します。

## IP アドレスによるターゲットの登録または登録解除
<a name="register-ip-addresses"></a>

ターゲットの IP アドレスは、ターゲットグループに指定した VPC のサブネットのものである必要があります。同じ VPC に別のサービスの IP アドレスを登録することはできません。VPC エンドポイントまたはパブリックにルーティング可能な IP アドレスは登録できません。

**コンソールを使用してターゲットを IP アドレスで登録または登録解除するには**

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

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

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

1. [**Targets**] タブを選択します。

1. IP アドレスを登録するには、[**ターゲットの登録**] を選択します。IP アドレスごとにネットワークを選択し、IP アドレスかポートを入力して、[**保留中として以下を含める**] を選択します。アドレスの指定が終了したら、**[ターゲットの登録]** を選択します。

1. IP アドレスの登録を解除するには、IP アドレスを選択して [**登録解除**] を選択します。

## Lambda 関数の登録または登録解除
<a name="register-lambda-function"></a>

ターゲットグループに単一の Lambda 関数を登録できます。トラフィックを Lambda 関数に送信する必要がなくなった場合は、登録を解除できます。Lambda 関数の登録を解除すると、未処理のリクエストは HTTP 5XX エラーで失敗します。ターゲットグループの Lambda 関数を置き換えるよりも、新しいターゲットグループを作成することをお勧めします。

**コンソールを使用して Lambda 関数を登録または登録解除するには**

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

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

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

1. [**Targets**] タブを選択します。

1. 登録された Lambda 関数が表示されない場合は、**[ターゲットの登録]** を選択します。Lambda 関数を選択し、**[ターゲットの登録]** を選択します。

1. Lambda 関数を登録解除するには、[**登録解除**] を選択します。確認を求められたら、「**confirm**」と入力し、**[登録解除]** を選択します。

## Application Load Balancer の登録または登録解除
<a name="register-alb"></a>

各ターゲットグループに単一の Application Load Balancer を登録できます。トラフィックをロードバランサーに送信する必要がなくなった場合は、登録を解除できます。ロードバランサーの登録を解除すると、未処理のリクエストは HTTP 5XX エラーで失敗します。ターゲットグループの Application Load Balancer を置き換えるよりも、新しいターゲットグループを作成することをお勧めします。

**コンソールを使用して Application Load Balancer を登録または登録解除するには**

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

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

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

1. [**Targets**] タブを選択します。

1. 登録された Application Load Balancer が表示されない場合は、**[ターゲットの登録]** を選択します。Application Load Balancer を選択し、**[ターゲットの登録]** を選択します。

1. Application Load Balancer を登録解除するには、**[登録解除]** を選択します。確認を求められたら、「**confirm**」と入力し、**[登録解除]** を選択します。

# VPC Lattice ターゲットグループのヘルスチェック
<a name="target-group-health-checks"></a>

サービスは、ステータスをテストするため、登録されたターゲットに定期的にリクエストを送信します。これらのテストは、*ヘルスチェック*と呼ばれます。

各 VPC Lattice サービスは、リクエストを正常なターゲットにのみルーティングします。各サービスは、ターゲットが登録されているターゲットグループのヘルスチェック設定を使用して、各ターゲットの状態を確認します。ターゲットは、登録後に正常と見なされるためには、1 つのヘルスチェックに合格する必要があります。各ヘルスチェックが完了すると、サービスはヘルスチェック用に確立された接続を終了します。

**制約事項と考慮事項**
+ ターゲットグループのプロトコルバージョンが HTTP1 の場合、ヘルスチェックはデフォルトで有効になります。
+ ターゲットグループのプロトコルバージョンが HTTP2 の場合、ヘルスチェックはデフォルトでは有効になりません。ただし、ヘルスチェックを有効にして、プロトコルバージョンを HTTP1 または HTTP2 に手動で設定できます。
+ ヘルスチェックでは gRPC ターゲットグループのプロトコルバージョンはサポートされません。ただし、ヘルスチェックを有効にする場合は、ヘルスチェックプロトコルのバージョンを HTTP1 または HTTP2 に指定する必要があります。
+ ヘルスチェックでは Lambda ターゲットグループはサポートされません。
+ ヘルスチェックでは、Application Load Balancer ターゲットグループはサポートされません。ただし、Elastic Load Balancing を使用して Application Load Balancer のターゲットのヘルスチェックを有効にできます。詳細については、*「Application Load Balancer ユーザーガイド*」の[「ターゲットグループのヘルスチェック](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)」を参照してください。

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

次の表に示すように、ターゲットグループのターゲットのヘルスチェックを設定します。表で使用される設定名は、API で使用される名前です。サービスは、指定されたポート、プロトコル、および ping パスを使用して、**HealthCheckIntervalSeconds** 秒ごとに、登録された各ターゲットにヘルスチェックリクエストを送信します。各ヘルスチェックリクエストは独立しており、結果は間隔全体で存続します。ターゲットが応答するまでにかかる時間は、次のヘルスチェックリクエストまでの間隔に影響を与えません。ヘルスチェックが **UnhealthyThresholdCount** 連続失敗数のしきい値を超えると、サービスはターゲットをサービス停止中の状態にします。ヘルスチェックが **HealthyThresholdCount** 連続成功数のしきい値を超えると、サービスはターゲットを実行中の状態に戻します。


| 設定 | 説明 | 
| --- | --- | 
| **HealthCheckProtocol** |  ターゲットでヘルスチェックを実行するときにサービスが使用するプロトコル。使用可能なプロトコルは HTTP および HTTPS です。デフォルトは HTTP プロトコルです。  | 
| **HealthCheckPort** |  ターゲットでヘルスチェックを実行するときにサービスが使用するポート。デフォルトでは、各ターゲットがサービスからトラフィックを受信するポートが使用されます。  | 
| **HealthCheckPath** |  ターゲットでのヘルスチェックの送信先。 プロトコルバージョンが HTTP1 または HTTP2 の場合は、有効な URI (/パス?クエリ) を指定します。デフォルトは / です。  | 
| **HealthCheckTimeoutSeconds** |  ヘルスチェックを失敗と見なす、ターゲットからレスポンスがない時間 (秒単位)。範囲は 1～120 秒です。ターゲットタイプが `INSTANCE` または `IP` の場合、デフォルトは 5 秒です。この設定をデフォルト値にリセットするには、0 を指定します。  | 
| **HealthCheckIntervalSeconds** |  個々のターゲットのヘルスチェックの概算間隔 (秒単位)。範囲は 5 ～ 300 秒です。ターゲットタイプが `INSTANCE` または `IP` の場合、デフォルトは 30 秒です。この設定をデフォルト値にリセットするには、0 を指定します。  | 
| **HealthyThresholdCount** |  非正常なターゲットが正常であると見なされるまでに必要なヘルスチェックの連続成功回数。範囲は 2 ～ 10 です。デフォルトは 5 です。この設定をデフォルト値にリセットするには、0 を指定します。  | 
| **UnhealthyThresholdCount** |  ターゲットが異常であると見なされるまでに必要なヘルスチェックの連続失敗回数。範囲は 2 ～ 10 です。デフォルトは 2 です。この設定をデフォルト値にリセットするには、0 を指定します。  | 
| **マッチャー** |  ターゲットからの正常なレスポンスを確認するために使用するコード。これらは、コンソールでは [**成功コード**] と呼ばれます。 プロトコルバージョンが HTTP1 または HTTP2 の場合、指定できる値は 200～499 です。複数の値 (例: "200,202") または値の範囲 (例: "200-299") を指定できます。デフォルト値は 200 です。 gRPC のヘルスチェックプロトコルのバージョンは現在サポートされていません。ただし、ターゲットグループのプロトコルバージョンが gRPC の場合、ヘルスチェックの設定で HTTP1 または HTTP2 のプロトコルバージョンを指定できます。  | 

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

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

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

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

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

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

1. **[Targets]** (ターゲット) タブの **[Health status]** (ヘルスステータス) 列は、各ターゲットのステータスを示します。ステータスの値が `Healthy` 以外の場合は、**[ヘルスステータスの詳細]** 列に詳細情報が表示されます。

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

**異常なターゲットに関する E メール通知を受信するには**  
CloudWatch アラームを使用して、異常なターゲットに関する詳細を送信する Lambda 関数を開始します。

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

ターゲットグループのヘルスチェック設定はいつでも変更できます。

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

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

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

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

1. **[ヘルスチェック]** タブの **[ヘルスチェックの設定]** で **[編集]** を選択します。

1. 必要に応じてヘルスチェックの設定を変更します。

1. **[Save changes]** (変更の保存) をクリックします。

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

## ルーティング設定
<a name="target-group-routing-configuration"></a>

デフォルトでは、サービスはターゲットグループの作成時に指定したプロトコルとポート番号を使用して、リクエストをターゲットにルーティングします。または、ターゲットグループへの登録時にターゲットへのトラフィックのルーティングに使用されるポートを上書きすることもできます。

ターゲットグループでは、次のプロトコルとポートがサポートされています。
+ **プロトコル**: HTTP、HTTPS、TCP
+ **ポート**: 1 ～ 65535

ターゲットグループが HTTPS プロトコルで設定されている場合、または HTTPS ヘルスチェックを使用している場合、ターゲットへの TLS 接続はリスナーのセキュリティポリシーを使用します。VPC Lattice は、ターゲットにインストールした証明書を使用して、ターゲットとの TLS 接続を確立します。VPC Lattice はこれらの証明書を検証しません。したがって、自己署名証明書または期限切れの証明書を使用できます。VPC Lattice とターゲット間のトラフィックはパケットレベルで認証されるため、ターゲットの証明書が有効でなくてもman-in-the-middle攻撃やスプーフィングのリスクはありません。

TCP ターゲットグループは [TLS リスナー](tls-listeners.md)でのみサポートされます。

## ルーティングアルゴリズム
<a name="target-group-routing-algorithm"></a>

デフォルトでは、ラウンドロビンルーティングアルゴリズムが正常なターゲットへのリクエストのルーティングに使用されます。

リクエストを受け取ると、VPC Lattice サービスは以下のプロセスを使用します。

1. リスナールールを優先度順に評価して、適用するルールを決定します。

1. デフォルトのラウンドロビンアルゴリズムを使用して、ルールアクションのターゲットグループからターゲットを選択します。それぞれのターゲットグループでルーティングは個別に実行され、複数のターゲットグループに登録されているターゲットの場合も同じです。

ターゲットグループに異常なターゲットのみが含まれている場合、そのヘルスステータスにかかわらず、リクエストはすべてのターゲットにルーティングされます。つまり、すべてのターゲットが同時にヘルスチェックに失敗すると、VPC Lattice サービスがオープンに失敗します。フェイルオープンの効果は、ヘルスステータスにかかわらず、ラウンドロビンアルゴリズムに基づいて、すべてのターゲットへのトラフィックを許可することです。

VPC Lattice は、トラフィックをルーティングするためのアベイラビリティーゾーン (AZ) アフィニティをサポートしています。クライアントが VPC Lattice にリクエストを送信すると、VPC Lattice はクライアントと同じ AZ からのサービスまたはリソースの IP アドレスで応答します。その AZ が使用できない場合、VPC Lattice は他の AZs。VPC Lattice からターゲットへのルーティングはターゲットに対して行われ、AZs 間で分散される可能性があります。さらに、VPC Lattice では AZ 間のデータ転送料金は発生しません。

## [Target type (ターゲットタイプ)]
<a name="target-type"></a>

ターゲットグループを作成するときは、そのターゲットの種類を指定します。それにより、このターゲットグループ内でターゲットを登録するときに指定するターゲットの種類が決定されます。ターゲットグループを作成した後で、ターゲットタイプを変更することはできません。

可能なターゲットの種類は次のとおりです。

`INSTANCE`  
インスタンス ID で指定されたターゲット。

`IP`  
ターゲットは IP アドレスです。

`LAMBDA`  
ターゲットは Lambda 関数です。

`ALB`  
ターゲットは Application Load Balancer です。

**考慮事項**
+ ターゲットタイプが `IP` である場合、ターゲットグループの VPC のサブネットの IP アドレスを指定する必要があります。この VPC 外部の IP アドレスを登録する必要がある場合は、`ALB` タイプのターゲットグループを作成し、その IP アドレスを Application Load Balancer に登録します。
+ ターゲットタイプが `IP` である場合、VPC エンドポイントやパブリックにルーティング可能な IP アドレスは登録できません。
+ ターゲットタイプが `LAMBDA` である場合、1 つの Lambda 関数を登録できます。サービスが Lambda 関数のリクエストを受け取ると、Lambda 関数を呼び出します。1 つのサービスに複数の Lambda 関数を登録するには、複数のターゲットグループを使用する必要があります。
+ ターゲットタイプが の場合`ALB`、単一の内部 Application Load Balancer を最大 2 つの VPC Lattice サービスのターゲットとして登録できます。その場合、Application Load Balancer を 2 つの異なるターゲットグループに登録します。これは 2 つの異なる VPC Lattice サービスによって使用されます。また、ターゲットの Application Load Balancer には、ターゲットグループポートと一致するポートを持つリスナーが 1 つ以上必要です。
+ ECS タスクは、起動時に VPC Lattice ターゲットグループに自動的に登録できます。ターゲットグループは、`IP` のターゲットタイプを持つ必要があります。詳細については、[「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS サービスで VPC Lattice を使用する](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-vpc-lattice.html)」を参照してください。 **

  または、Amazon ECS サービスの Application Load Balancer を、タイプ の VPC Lattice ターゲットグループに登録します`ALB`。詳細については、[「Amazon Elastic Container Service デベロッパーガイド」の「ロードバランシングを使用して Amazon ECS サービストラフィックを分散](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)する」を参照してください。 **
+ EKS ポッドをターゲットとして登録するには、Kubernetes サービスから IP アドレスを取得する [AWS ゲートウェイ API コントローラー](https://www.gateway-api-controller.eks.aws.dev/)を使用します。
+ ターゲットグループプロトコルが TCP の場合、サポートされているターゲットタイプは `INSTANCE`、`IP`、または のみです`ALB`。

## IP アドレスタイプ
<a name="target-group-ip-address-type"></a>

ターゲットタイプ `IP` のターゲットグループを作成すると、ターゲットグループの IP アドレスタイプを指定できます。これにより、ターゲットにリクエストやヘルスチェックを送信するためにロードバランサーが使用するアドレスの種類が指定されます。指定できる値は `IPv4` および `IPv6` です。デフォルトは `IPV4` です。

**考慮事項**
+ IP アドレスタイプ `IPv6` でターゲットグループを作成する場合、ターゲットグループに指定する VPC には IPv6 アドレス範囲が必要です。
+ ターゲットグループに登録する IP アドレスは、ターゲットグループの IP アドレスタイプと一致する必要があります。例えば、IP アドレスタイプが `IPv4` の場合、IPv6 アドレスをターゲットグループに登録できません。
+ ターゲットグループに登録する IP アドレスは、ターゲットグループに指定した VPC の IP アドレスの範囲内にある必要があります。

# VPC Lattice の HTTP ターゲット
<a name="http-targets"></a>

HTTP リクエストと HTTP レスポンスは、ヘッダーフィールドを使用して HTTP メッセージに関する情報を送信します。HTTP ヘッダーは自動的に追加されます。ヘッダーフィールドはコロンで区切られた名前と値のペアであり、キャリッジリターン (CR) とラインフィード (LF) で区切ります。HTTP ヘッダーフィールドの標準セットは、「[メッセージヘッダー](https://datatracker.ietf.org/doc/html/rfc2616)」RFC 2616 で定義されています。アプリケーションで広く使用されている標準以外の HTTP ヘッダーもあります。例えば、`x-forwarded` プレフィックスが付いた標準外の HTTP ヘッダーがあります。

## x-forwarded ヘッダー
<a name="http-x-forwarded-headers"></a>

Amazon VPC Lattice は、以下の `x-forwarded` ヘッダーを追加します。

`x-forwarded-for`  
送信元 IP アドレス。

`x-forwarded-port`  
送信先ポート

`x-forwarded-proto`  
接続プロトコル (`http` \$1 `https`)。

## 発信者 ID ヘッダー
<a name="http-caller-identity-headers"></a>

Amazon VPC Lattice は、以下の発信者 ID ヘッダーを追加します。

`x-amzn-lattice-identity`  
ID 情報。 AWS 認証が成功すると、以下のフィールドが表示されます。  
+ `Principal` — 認証されたプリンシパル。
+ `PrincipalOrgID` — 認証されたプリンシパルの組織の ID。
+ `PrincipalOrgPath` – 認証されたプリンシパルの組織パス。
+ `SessionName` - 認証されたセッションの名前。
Roles Anywhere の認証情報が使用され、認証が成功すると、以下のフィールドが表示されます。  
+ `X509Issuer/OU` — 発行者 (OU)。
+ `X509SAN/DNS` — サブジェクト代替名 (DNS)。
+ `X509SAN/NameCN` — 発行者代替名 (名前/CN)。
+ `X509SAN/URI` — サブジェクト代替名 (URI)。
+ `X509Subject/CN` — サブジェクト名 (CN)。

`x-amzn-lattice-identity-tags`  
プリンシパル ID と任意のプリンシパルタグ。形式は次のとおりです。  

```
principal=principal;principalorgid=orgid;principalorgpath=orgpath;principal-tag1=value1; ...;principal-tag99=value99
```
VPC Lattice は、バックスラッシュ (\$1) を持つ値のセミコロン (;) をエスケープします。

`x-amzn-lattice-network`  
VPC。形式は次のとおりです。  

```
SourceVpcArn=arn:aws:ec2:region:account:vpc/id
```

`x-amzn-lattice-target`  
ターゲット。形式は次のとおりです。  

```
ServiceArn=arn;ServiceNetworkArn=arn;TargetGroupArn=arn
```
VPC Lattice のリソース ARN の詳細については、「[Amazon VPC Lattice で定義されるリソースタイプ](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html#amazonvpclattice-resources-for-iam-policies)」を参照してください。

発信者 ID ヘッダーを偽装することはできません。VPC Lattice は、受信リクエストからこれらのヘッダーを削除します。これらの ID ヘッダーは、次の形式を使用して空の値をサポートするマップを表します。解析するときは、これらのヘッダーの KEYs の特定の順序に依存しないでください。新しい KEYsはいつでも追加されることを想定し、空の値を処理する準備を整える必要があります。

形式は次のとおりです。

```
key-0=value-0;key-1=value-1;....;key-n=value-n;
```

# VPC Lattice のターゲットとしての Lambda 関数
<a name="lambda-functions"></a>

Lambda 関数を VPC Lattice ターゲットグループのターゲットとして登録し、Lambda 関数のターゲットグループにリクエストを転送するリスナールールを設定できます。サービスが Lambda 関数をターゲットとしてターゲットグループにリクエストを転送すると、Lambda 関数を呼び出し、リクエストのコンテンツを JSON 形式で Lambda 関数に渡します。

**制限事項**
+ Lambda 関数とターゲットグループは、同じアカウントおよび同じリージョンにある必要があります。
+ Lambda 関数に送信できるリクエストボディの最大サイズは 6 MB です。
+ Lambda 関数が送信できるレスポンス JSON の最大サイズは 6 MB です。
+ プロトコルは HTTP または HTTPS である必要があります。

## Lambda 関数の準備
<a name="prepare-lambda-function"></a>

VPC Lattice サービスで Lambda 関数を使用している場合は、以下の推奨事項が適用されます。

**Lambda 関数を呼び出すアクセス許可**  
ターゲットグループを作成し、 AWS マネジメントコンソール または を使用して Lambda 関数を登録すると AWS CLI、VPC Lattice はユーザーに代わって Lambda 関数ポリシーに必要なアクセス許可を追加します。

また、次の API 呼び出しを使用すると、自分で権限を追加できます。

```
aws lambda add-permission \
  --function-name lambda-function-arn-with-alias-name \ 
  --statement-id vpc-lattice \
  --principal vpc-lattice.amazonaws.com \
  --action lambda:InvokeFunction \
  --source-arn target-group-arn
```

**Lambda 関数のバージョニング**  
ターゲットグループごとに 1 つの Lambda 関数を登録できます。Lambda 関数を変更し、VPC Lattice サービスが常に現行バージョンの Lambda 関数を呼び出せるようにするには、関数のエイリアスを作成し、VPC Lattice サービスに Lambda 関数を登録するときに関数 ARN にエイリアスを含めます。詳細については、「 *AWS Lambda デベロッパーガイド*」の[「Lambda 関数のバージョン](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)」および[「Lambda 関数のエイリア](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)スを作成する」を参照してください。

## Lambda 関数のターゲットグループの作成
<a name="register-lambda-function"></a>

リクエストルーティングで使用されるターゲットグループを作成します。リクエストのコンテンツが、コンテンツをこのターゲットグループに転送するアクションを含むリスナールールと一致する場合、VPC Lattice サービスは登録された Lambda 関数を呼び出します。

**コンソールを使用してターゲットグループを作成し、Lambda 関数を登録するには**

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

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

1. **[ターゲットグループの作成]** を選択します。

1. [**ターゲットタイプの選択**] で [**Lambda 関数**] を選択します。

1. [**ターゲットグループ名**] に、ターゲットグループの名前を入力します。

1. **[Lambda イベント構造バージョン]** でバージョンを選択します。詳細については、「[VPC Lattice サービスからのイベントを受け取る](#receive-event-from-service)」を参照してください。

1. (オプション) タグを追加するには、**[タグ]** を展開し、**[新しいタグを追加]** を選択して、タグキーとタグ値を入力します。

1. [**次へ**] を選択します。

1. [**Lambda 関数**] で、次のいずれかを実行します。
   + 既存の Lambda 関数を選択します。
   + 新しい Lambda 関数を作成し、その関数を選択します。
   + Lambda 関数は後ほど登録します。

1. **[ターゲットグループの作成]** を選択します。

**を使用してターゲットグループを作成し、Lambda 関数を登録するには AWS CLI**  
[create-target-group](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-target-group.html) と [register-targets](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/register-targets.html) コマンドを使用します。

## VPC Lattice サービスからのイベントを受け取る
<a name="receive-event-from-service"></a>

VPC Lattice サービスは、HTTP と HTTPS の両方を経由するリクエストの Lambda 呼び出しをサポートします。このサービスは JSON 形式でイベントを送信し、すべてのリクエストに `X-Forwarded-For` ヘッダーを追加します。

**Base64 エンコード**  
`content-encoding` ヘッダーが存在し、コンテンツタイプが以下のいずれでもない場合、サービス Base64 は本文をエンコードします。
+ `text/*`
+ `application/json`
+ `application/xml`
+ `application/javascript`

`content-encoding` ヘッダーが存在しない場合、Base64 エンコーディングはコンテンツタイプによって異なります。上述のコンテンツタイプの場合、サービスは Base64 エンコーディングせずに本文をそのまま送信します。

**イベント構造の形式**  
`LAMBDA` タイプのターゲットグループを作成または更新するときには、Lambda 関数が受け取るイベント構造のバージョンを指定できます。指定できるバージョンは `V1` と `V2` です。<a name="event-structure-v2"></a>

**Example サンプルイベント: V2**  

```
{
    "version": "2.0",
    "path": "/?query1=value1&query2=value2",
    "method": "GET|POST|HEAD|...",
    "headers": {
        "header-key": ["header-value", ...],
        ...
    },    
    "queryStringParameters": {
        "key": ["value", ...]
    },
    "body": "request-body",
    "isBase64Encoded": true|false,
    "requestContext": {
        "serviceNetworkArn": "arn:aws:vpc-lattice:region:123456789012:servicenetwork/sn-0bf3f2882e9cc805a",
        "serviceArn": "arn:aws:vpc-lattice:region:123456789012:service/svc-0a40eebed65f8d69c",
        "targetGroupArn": "arn:aws:vpc-lattice:region:123456789012:targetgroup/tg-6d0ecf831eec9f09",
        "identity": {
            "sourceVpcArn": "arn:aws:ec2:region:123456789012:vpc/vpc-0b8276c84697e7339",
            "type": "AWS_IAM",
            "principal": "arn:aws:iam::123456789012:assumed-role/my-role/my-session",
            "principalOrgID": "o-50dc6c495c0c9188",
            "sessionName": "i-0c7de02a688bde9f7",
            "x509IssuerOu": "string",
            "x509SanDns": "string",
            "x509SanNameCn": "string",
            "x509SanUri": "string",
            "x509SubjectCn": "string"
        },
        "region": "region",
        "timeEpoch": "1690497599177430"
    }
}
```  
`body`  
リクエスト本文。プロトコルが HTTP、HTTPS、gRPC の場合にのみ存在します。  
`headers`  
リクエストの HTTP ヘッダー。プロトコルが HTTP、HTTPS、gRPC の場合にのみ存在します。  
`identity`  
ID 情報。有効なフィールドには以下のものがあります。  
+ `principal` — 認証されたプリンシパル。 AWS 認証が成功した場合にのみ表示されます。
+ `principalOrgID` — 認証されたプリンシパルの組織の ID。 AWS 認証が成功した場合にのみ表示されます。
+ `sessionName` - 認証されたセッションの名前。 AWS 認証が成功した場合にのみ表示されます。
+ `sourceVpcArn` — リクエストが発生した VPC の ARN。ソース VPC が特定できる場合にのみ表示されます。
+ `type` – 認証ポリシーが使用され、 AWS 認証が成功`AWS_IAM`した場合、値は です。
Roles Anywhere の認証情報が使用され、認証が成功すると、以下のフィールドが表示される場合があります。  
+ `x509IssuerOu` — 発行者 (OU)。
+ `x509SanDns` — サブジェクト代替名 (DNS)。
+ `x509SanNameCn` — 発行者代替名 (名前/CN)。
+ `x509SanUri` — サブジェクト代替名 (URI)。
+ `x509SubjectCn` — サブジェクト名 (CN)。  
`isBase64Encoded`  
本文が base64 エンコードされているかどうかを示します。プロトコルが HTTP、HTTPS、gRPC であり、リクエスト本文がまだ文字列でない場合にのみ表示されます。  
`method`  
リクエストの HTTP メソッド。プロトコルが HTTP、HTTPS、gRPC の場合にのみ存在します。  
`path`  
クエリ文字列パラメータを含むクライアントからのリクエストのパス。プロトコルが HTTP、HTTPS、gRPC の場合にのみ存在します。  
`queryStringParameters`  
HTTP クエリ文字列パラメータ。プロトコルが HTTP、HTTPS、gRPC の場合にのみ存在します。  
`serviceArn`  
リクエストを受け取るサービスの ARN。  
`serviceNetworkArn`  
リクエストを配信するサービスネットワークの ARN。  
`targetGroupArn`  
リクエストを受け取るターゲットグループの ARN。  
`timeEpoch`  
時間 (秒単位)。<a name="event-structure-v1"></a>

**Example サンプルイベント: V1**  

```
{
    "raw_path": "/path/to/resource?query1=value1&query2=value2",
    "method": "GET|POST|HEAD|...",
    "headers": {"header-key": "header-value", ... },
    "query_string_parameters": {"key": "value", ...},
    "body": "request-body",
    "is_base64_encoded": true|false
}
```

## VPC Lattice サービスへのレスポンス
<a name="respond-to-service"></a>

Lambda 関数からのレスポンスには、Base64 エンコーディングのステータス、ステータスコード、およびヘッダーが含まれます。本文は省略できます。

レスポンス本文にバイナリコンテンツを含めるには、コンテンツを Base64 でエンコードし、`isBase64Encoded` を `true` に設定する必要があります。サービスはコンテンツをデコードしてバイナリコンテンツを取得し、そのコンテンツを HTTP レスポンスの本文でクライアントに送信します。

VPC Lattice サービスでは、`Connection` や `Transfer-Encoding` などのホップバイホップ方式のヘッダーは受け付けません。サービスがクライアントにレスポンスを送信する前に計算するため、`Content-Length` ヘッダーは省略できます。

Lambda 関数からのレスポンスの例を次に示します。

```
{
    "isBase64Encoded": false,
    "statusCode": 200,
    "headers": {
        "Set-cookie": "cookies",
        "Content-Type": "application/json"
    },
    "body": "Hello from Lambda (optional)"
}
```

## 複数値ヘッダー
<a name="multi-value-headers"></a>

VPC Lattice は、クライアントからのリクエスト、または複数の値を持つヘッダーを含むか、同じヘッダーを複数回含む Lambda 関数からのレスポンスをサポートします。VPC Lattice はすべての値をターゲットに渡します。

次の例では、異なる値header1を持つ という名前の 2 つのヘッダーがあります。

```
header1 = value1
header1 = value2
```

V2 イベント構造では、VPC Lattice はリスト内の値を送信します。例えば、次のようになります。

```
"header1": ["value1", "value2"]
```

V1 イベント構造では、VPC Lattice は値を 1 つの文字列に結合します。例えば、次のようになります。

```
"header1": "value1, value2"
```

## 複数値クエリ文字列パラメータ
<a name="multi-value-string-parameters"></a>

VPC Lattice は、同じキーに対して複数の値を持つクエリパラメータをサポートします。

次の例では、異なる値QS1を持つ という名前の 2 つのパラメータがあります。

```
http://www.example.com?&QS1=value1&QS1=value2
```

V2 イベント構造では、VPC Lattice はリスト内の値を送信します。例えば、次のようになります。

```
"QS1": ["value1", "value2"]
```

V1 イベント構造では、VPC Lattice は最後に渡された値を使用します。例えば、次のようになります。

```
"QS1": "value2"
```

## Lambda 関数の登録解除
<a name="deregister-lambda-function"></a>

トラフィックを Lambda 関数に送信する必要がなくなった場合は、登録を解除できます。Lambda 関数の登録を解除すると、未処理のリクエストは HTTP 5XX エラーで失敗します。

Lambda 関数を置き換えるには、新しいターゲットグループを作成し、新しい関数を新しいターゲットグループに登録し、リスナールールを更新して既存のターゲットグループではなく新しいターゲットグループを使用することをお勧めします。

**コンソールを使用して Lambda 関数を登録解除するには**

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

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

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

1. [**ターゲット**] タブで、[**登録解除**] を選択します。

1. 確認を求められたら、「**confirm**」と入力し、**[登録解除]** を選択します。

**を使用して Lambda 関数の登録を解除するには AWS CLI**  
[deregister-targets](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/deregister-targets.html) コマンドを使用します。

# VPC Lattice のターゲットとしての Application Load Balancer
<a name="alb-target"></a>

VPC Lattice ターゲットグループを作成し、1 つの内部 Application Load Balancer をターゲットとして登録し、このターゲットグループにトラフィックを転送するように VPC Lattice サービスを設定できます。このシナリオでは、トラフィックがターゲットに到達するとすぐに、Application Load Balancer がルーティングの決定を引き継ぎます。この設定では、Application Load Balancer のレイヤー 7 リクエストベースのルーティング機能を、IAM 認証と認可などの VPC Lattice がサポートする機能や VPC とアカウントの間の接続と組み合わせて使用できます。

**制限事項**
+ タイプ `ALB` の VPC Lattice ターゲットグループでは、1 つの内部 Application Load Balancer をターゲットとして登録できます。
+ 1 つの Application Load Balancer を、2 つの異なる VPC Lattice サービスで使用される最大 2 つの VPC Lattice ターゲットグループのターゲットとして登録できます。
+ VPC Lattice は、`ALB` タイプのターゲットグループにはヘルスチェックを行いません。ただし、Elastic Load Balancing のターゲットには、ロードバランサーレベルで個別にヘルスチェックを設定できます。詳細については、「Application Load Balancer ユーザーガイド」の[「ターゲットグループのヘルスチェック](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)」を参照してください。 **

## 前提条件
<a name="prerequisites-alb-target"></a>

VPC Lattice ターゲットグループにターゲットとして登録する Application Load Balancer を作成します。ロードバランサーは次の基準を満たしている必要があります。
+ ロードバランサースキームは **[内部]** です。
+ Application Load Balancer は VPC Lattice ターゲットグループと同じアカウントにあり、**[アクティブ]** 状態である必要があります。
+ Application Load Balancer は、VPC Lattice ターゲットグループと同じ VPC にある必要があります。
+ Application Load Balancer の HTTPS リスナーを使用すると、TLS を終了できます。ただし、VPC Lattice サービスがロードバランサーと同じ SSL/TLS 証明書を使用している場合に限ります。
+ VPC Lattice サービスのクライアント IP を `X-Forwarded-For` リクエストヘッダーに保存するには、Application Load Balancer の属性 `routing.http.xff_header_processing.mode` を `Preserve` に設定する必要があります。値が `Preserve` の場合、ロードバランサーは HTTP リクエストの `X-Forwarded-For` ヘッダーを保持し、変更を加えずにターゲットに送信します。

詳細については、「Application Load Balancer ユーザーガイド」の「[Application Load Balancer の作成](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html)」を参照してください。

## ステップ 1: ALB タイプのターゲットグループを作成する
<a name="step1-create-alb-target-group"></a>

以下の手順に従って、ターゲットグループを作成します。VPC Lattice は`ALB`ターゲットグループのヘルスチェックをサポートしていないことに注意してください。ただし、Application Load Balancer のターゲットグループのヘルスチェックを設定できます。詳細については、*「Application Load Balancer ユーザーガイド*」の[「ターゲットグループのヘルスチェック](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)」を参照してください。

**ターゲットグループを作成するには**

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

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

1. **[ターゲットグループの作成]** を選択します。

1. **[Specify target group details]** ページの **[基本設定]** で、**[Application Load Balancer]** をターゲットタイプとして選択します。

1. [**ターゲットグループ名**] に、ターゲットグループの名前を入力します。

1. Protocol で****、**HTTP**、**HTTPS**、または を選択します**TCP**。ターゲットグループのプロトコルは、内部 Application Load Balancer のリスナーのプロトコルと一致する必要があります。

1. **[ポート]** で、ターゲットグループのポートを指定します。このポートは、内部 Application Load Balancer のリスナーのポートと一致する必要があります。または、ここで指定するターゲットグループのポートと一致するリスナーポートを内部 Application Load Balancer に追加することもできます。

1. **[VPC]** で、内部 Application Load Balancer を作成したときに選択したものと同じ仮想プライベートクラウド (VPC) を選択します。これは VPC Lattice リソースを含む VPC になります。

1. **[プロトコルバージョン]** で、Application Load Balancer がサポートするプロトコルバージョンを選択します。

1. (オプション) 必要なタグを追加します。

1. [**次へ**] を選択します。

## ステップ 2: Application Load Balancer をターゲットとして登録する
<a name="step2-register-alb-target-group"></a>

今すぐロードバランサーをターゲットとして登録できますが、後で登録することもできます。

**Application Load Balancer をターゲットとして登録するには**

1. **[今すぐ登録]** を選択します。

1. **[Application Load Balancer]** で、内部 Application Load Balancer を選択します。

1. **[ポート]** はデフォルトのままにするか、必要に応じて別のポートを指定します。このポートは、Application Load Balancer の既存のリスナーポートと一致する必要があります。一致するポートがない状態で続行すると、トラフィックが Application Load Balancer に到達しません。

1. **[ターゲットグループの作成]** を選択します。

## プロトコルバージョン
<a name="target-group-protocol-version"></a>

デフォルトでは、サービスは HTTP/1.1 を使用してターゲットにリクエストを送信します。プロトコルバージョンを使用して、HTTP/2 または grPC を使用するターゲットにリクエストを送信できます。

次の表は、リクエストプロトコルとターゲットグループのプロトコルバージョンの組み合わせの結果をまとめたものです。


| リクエストプロトコル | プロトコルバージョン | 結果 | 
| --- | --- | --- | 
| HTTP/1.1 | HTTP/1.1 | 成功 | 
| HTTP/2 | HTTP/1.1 | 成功 | 
| gRPC | HTTP/1.1 | エラー | 
| HTTP/1.1 | HTTP/2 | エラー | 
| HTTP/2 | HTTP/2 | 成功 | 
| gRPC | HTTP/2 | ターゲットが grPC をサポートしている場合は成功 | 
| HTTP/1.1 | gRPC | エラー | 
| HTTP/2 | gRPC | POST リクエストの場合は成功 | 
| gRPC | gRPC | 成功 | 

**gRPC プロトコルバージョンの考慮事項**
+ サポートされているリスナープロトコルは HTTPS だけです。
+ サポートされているターゲットタイプは、`INSTANCE` と `IP` のみです。
+ サービスは、gRPC リクエストを解析し、パッケージ、サービス、メソッドに基づいて、適切なターゲットグループに gRPC 呼び出しをルーティングします。
+ Lambda 関数をターゲットとして使用することはできません。

**HTTP/2 プロトコルバージョンの考慮事項**
+ サポートされているリスナープロトコルは HTTPS だけです。ターゲットグループのプロトコルには、HTTP または HTTPS を選択できます。
+ サポートされているリスナールールは、転送と固定レスポンスのみです。
+ サポートされているターゲットタイプは、`INSTANCE` と `IP` のみです。
+ サービスは、クライアントからのストリーミングをサポートします。サービスは、ターゲットへのストリーミングをサポートしていません。

# VPC Lattice ターゲットグループのタグ
<a name="target-group-tags"></a>

タグを使用すると、ターゲットグループを目的、所有者、環境などさまざまな方法で分類することができます。

各ターゲットグループに対して複数のタグを追加できます。タグキーは、各ターゲットグループで一意である必要があります。すでにターゲットグループに関連付けられているキーを持つタグを追加すると、そのキーの値が更新されます。

不要になったタグは、削除することができます。

**制限事項**
+ リソースあたりのタグの最大数 – 50
+ キーの最大長 – 127 文字 (Unicode)
+ 値の最大長 – 255 文字 (Unicode)
+ タグのキーと値は大文字と小文字が区別されます。使用できる文字は、UTF-8 で表現できる文字、スペース、および数字と、特殊文字 (\$1、-、=、.、\$1、:、/、@) です。ただし、先頭または末尾にはスペースを使用しないでください。
+ タグ名または値に `aws:` プレフィックスを使用しないでください。このプレフィックスは AWS 使用のために予約されています。このプレフィックスが含まれるタグの名前または値は編集または削除できません。このプレフィックスを持つタグは、リソースあたりのタグ数の制限時には計算されません。

**コンソールを使用してターゲットグループのタグを更新するには**

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

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

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

1. **[タグ]** タブを選択します。

1. タグを追加するには、**[タグを追加]** を選択し、タグキーとタグ値を入力します。別のタグを追加するには、**[新しいタグを追加]** を選択します。タグの追加を完了したら、**[Save changes]** (変更の保存) を選択します。

1. タグを削除するには、タグのチェックボックスを選択し、**[削除]** を選択します。確認を求められたら、**confirm**と入力し、[**削除**] を選択します。

**を使用してターゲットグループのタグを更新するには AWS CLI**  
[tag-resource](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/tag-resource.html) コマンドと [untag-resource](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/untag-resource.html) コマンドを使用します。

# VPC Lattice ターゲットグループを削除する
<a name="delete-target-group"></a>

ターゲットグループがリスナールールの転送アクションによって参照されていない場合は、これを削除できます。ターゲットグループを削除しても、ターゲットグループに登録されたターゲットには影響が及びません｡ 登録済み EC2 インスタンスが必要なくなった場合は停止または終了できます。

**コンソールを使用してターゲットグループを削除するには**

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

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

1. ターゲットグループのチェックボックスを選択し、**[アクション]**、**[削除]** を選択します。

1. 確認を求められたら、**confirm**と入力し、[**削除**] を選択します。

**を使用してターゲットグループを削除するには AWS CLI**  
[delete-target-group](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/delete-target-group.html) コマンドを使用します。