Traffic Director のターゲット プロキシ

このドキュメントは、ロード バランシング API を使用する Traffic Director にのみ適用されます。Traffic Director をデプロイするには、サービス ルーティング API または Google Kubernetes Engine Gateway API を使用することを強くおすすめします。

Traffic Director を構成すると、構成するリソースの 1 つがターゲット プロキシになります。Traffic Director の観点では、ターゲット プロキシは主に次の 2 つの目的で使用されます。

  • サービスに関連付けられたバックエンドまたはエンドポイントへの接続を開いたときに Traffic Director クライアントが使用するプロトコルを定義する。

  • 転送ルールと URL マップを使用してルーティング ルール マップを作成する。ルーティング ルール マップは、ターゲット プロキシのタイプに応じて、追加のルーティング機能(ルーティング ルールなど)を提供します。無効な選択肢は、ユーザー インターフェースに表示されないか、API によって拒否されます。

ターゲット プロキシのタイプとリクエスト プロトコル

Traffic Director は、構成しているターゲット プロキシのタイプに基づいて、クライアント向けに異なる構成を生成します。ターゲット プロキシのタイプを構成する場合、Traffic Director クライアントは特定のリクエスト プロトコルを使用します。

ターゲット プロキシ リクエスト プロトコル
HTTPS クライアントが HTTPS 接続を開始する
HTTP クライアントが HTTP 接続を開始する
gRPC クライアントが gRPC 接続を開始する
TCP クライアントが TCP 接続を開始する

選択できる対象が 1 つのタイプのみに制限されることはありません。たとえば、あるサービスに対処するときに HTTP を使用する一方で、他のサービスに対処するときは TCP を使用する場合があります。そのようなユースケースでは、ターゲット HTTP プロキシとターゲット TCP プロキシの両方を作成する必要があります。

ルーティング ルール マップにおける有効なリソースの組み合わせ

構成ミスを回避するため、Traffic Director では、次のようなルーティング ルール マップのみ作成できます。

  • 転送ルール > グローバル ターゲット HTTPS プロキシ > URL マップ > 1 つ以上のバックエンド サービス
  • 転送ルール > グローバル ターゲット HTTP プロキシ > URL マップ > 1 つ以上のバックエンド サービス
  • 転送ルール > グローバル ターゲット gRPC プロキシ > URL マップ > 1 つ以上のバックエンド サービス
  • 転送ルール > グローバル ターゲット TCP プロキシ > 1 つのバックエンド サービス

Google Cloud コンソールを使用してターゲット HTTP プロキシを設定する場合、ターゲット プロキシはルーティング ルール マップ構成の一部として暗黙的に設定されます。TCP プロキシの設定は、Google Cloud コンソールでは現時点でサポートされていません。

Google Cloud CLI または API を使用している場合は、ターゲット プロキシを明示的に構成する必要があります。

トラフィックの処理

以降のセクションでは、使用するターゲット プロキシのタイプに応じてトラフィックを処理する方法について説明します。

ターゲット HTTP または HTTPS プロキシの使用

HTTP または HTTPS ベースのサービスを構成すると、各サービス インスタンスとともに、Envoy プロキシがデプロイされます。Traffic Director は、この Envoy プロキシを構成します。これはサービス メッシュ データプレーンの一部として次のようにトラフィックを処理します。

Envoy プロキシが送信リクエストを受信します。次に、リクエストの宛先 IP アドレス / ポートと、ターゲット HTTP プロキシまたは HTTPS プロキシを参照する各転送ルールで構成された IP アドレス /ポートを比較します。一致するものが見つかると、Envoy プロキシは、ターゲット プロキシの対応する URL マップに従ってリクエストを評価します。

ターゲット TCP プロキシの使用

TCP ベースのサービスを構成すると、通常、各サービス インスタンスとともに Envoy プロキシがデプロイされます。Traffic Director は、この Envoy プロキシを構成します。これはサービス メッシュ データプレーンの一部として次のようにトラフィックを処理します。

Envoy プロキシが送信リクエストを受信します。次に、リクエストの宛先 IP アドレス / ポートと、ターゲット TCP プロキシを参照する各転送ルールで構成された IP アドレス / ポートを比較します。各転送ルールは、デフォルトのバックエンド サービスを参照するターゲット プロキシに TCP トラフィックをルーティングします。バックエンド サービスはヘルスチェックを指定し、適切なバックエンドを決定します。

ターゲット gRPC プロキシの使用

gRPC ベースのサービスを構成すると、通常、サービス インスタンスと一緒に Envoy プロキシはデプロイされません。代わりに、Traffic Director が gRPC ライブラリを構成します。このライブラリはサービス メッシュ データプレーンの一部であり、次のようにしてトラフィックを処理します。

gRPC ライブラリは、URI で指定された hostname[:port] と、ターゲット gRPC プロキシによって参照されるすべての URL マップのホストルールを比較します。一致するものが見つかると、gRPC ライブラリは、一致するホストルールに関連付けられたパスルールに従ってリクエストを評価します。

ターゲット プロキシのリソース

ターゲット プロキシに関する情報を追加、削除、一覧表示、取得するには、REST API または gcloud CLI を使用します。

また、ターゲット プロキシに関する情報を取得するには、次の gcloud コマンドを使用します。

gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] list
gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] describe TARGET_PROXY_NAME

API

REST API でのターゲット プロキシ操作時に使用できるプロパティとメソッドについては、Traffic Director でサポートされている次のリソースをご覧ください。

gcloud CLI

Google Cloud CLI については、次のリソースをご覧ください。

次のステップ