VPC Lattice のターゲットグループ - Amazon VPC Lattice

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

VPC Lattice のターゲットグループ

VPC Lattice ターゲットグループは、アプリケーションまたはサービスを実行するターゲット、つまりコンピューティングリソースのコレクションです。ターゲットには、EC2 インスタンス、IP アドレス、Lambda 関数、Application Load Balancer、Kubernetes ポッドを指定できます。ターゲットグループには既存のサービスをアタッチすることもできます。VPC Lattice での Kubernetes の使用の詳細については、「AWS ゲートウェイ API コントローラのユーザーガイド」を参照してください。

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

リスナー 1 つ、リスナールール、ターゲットグループ 2 つを含むサービス。

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

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

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

ルーティング設定

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

ターゲットグループでは、次のプロトコルとポートがサポートされています。

  • プロトコル: HTTP、HTTPS、TCP

  • ポート: 1 ~ 65535

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

TCP ターゲットグループは、TLS リスナー でのみサポートされます。

ルーティングアルゴリズム

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

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

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

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

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

[Target type (ターゲットタイプ)]

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

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

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 タスクをターゲットとして登録するには、ALB ターゲットタイプを使用して Amazon ECS サービスの Application Load Balancer を登録します。詳細については、Amazon Elastic Container Service デベロッパーガイドService load balancing を参照してください。

  • EKS ポッドをターゲットとして登録するには、Kubernetes サービスから IP アドレスを取得する AWS ゲートウェイ API コントローラーを使用します。

  • ターゲットグループプロトコルが TCP の場合、サポートされているターゲットタイプは INSTANCEと のみですIP

IP アドレスタイプ

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

考慮事項
  • IP アドレスタイプ IPv6 でターゲットグループを作成する場合、ターゲットグループに指定する VPC には IPv6 アドレス範囲が必要です。

  • ターゲットグループに登録する IP アドレスは、ターゲットグループの IP アドレスタイプと一致する必要があります。例えば、IP アドレスタイプが IPv4 の場合、IPv6 アドレスをターゲットグループに登録できません。

  • ターゲットグループに登録する IP アドレスは、ターゲットグループに指定した VPC の IP アドレスの範囲内にある必要があります。

プロトコルバージョン

デフォルトでは、サービスは 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 だけです。

  • サポートされているターゲットタイプは、INSTANCEIP のみです。

  • サービスは、gRPC リクエストを解析し、パッケージ、サービス、メソッドに基づいて、適切なターゲットグループに gRPC 呼び出しをルーティングします。

  • Lambda 関数をターゲットとして使用することはできません。

HTTP/2 プロトコルバージョンの考慮事項
  • サポートされているリスナープロトコルは HTTPS だけです。ターゲットグループのプロトコルには、HTTP または HTTPS を選択できます。

  • サポートされているリスナールールは、転送と固定レスポンスのみです。

  • サポートされているターゲットタイプは、INSTANCEIP のみです。

  • サービスは、クライアントからのストリーミングをサポートします。サービスは、ターゲットへのストリーミングをサポートしていません。