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

Traffic Director を構成すると、構成するリソースの 1 つがターゲット プロキシになります。Google Cloud Console を使用している場合は、ルーティング ルール マップ構成の一部としてターゲット プロキシが暗黙的に設定されます。

Traffic Director のコンテキストでは、ターゲット プロキシは主に次の 2 つの目的で使用されます。

  1. IP アドレスとポートを提供する転送ルールを、転送ルールを提供する URL マップに関連付けます。これにより、サービス メッシュは、特定のリクエストの処理時に使用するルーティング ルールを決定できます。
  2. 特定のタイプ(ターゲット HTTP プロキシまたはターゲット gRPC プロキシのいずれか)である。このタイプは、特定のタイプのトラフィックに関係のないフィールドを構成しないようにするのに役立ちます。また、このタイプによりターゲット プロキシの動作が決定されます。
ハイライト表示された Traffic Director の転送ルール(クリックして拡大)
ハイライト表示された Traffic Director のターゲット プロキシ(クリックして拡大)

この図は、Traffic Director のアーキテクチャにおけるターゲット プロキシの位置付けを示しています。

ターゲット HTTP プロキシとターゲット gRPC プロキシの比較

HTTP ベースのサービスを構成する場合は、ターゲット HTTP プロキシを選択する必要があります。gRPC ベースのサービスを構成する場合は、ターゲット gRPC プロキシを選択する必要があります。

ターゲット HTTP プロキシを使用する場合のトラフィック処理

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

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

ターゲット gRPC プロキシを使用する場合のトラフィック処理

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

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

ゲートウェイと中央プロキシのトラフィック インターセプトを構成する

サービス メッシュには通常、次のものがあります。

  • サービス インスタンスには専用の Envoy サイドカー プロキシまたは gRPC ライブラリがあります。
    • Envoy を使用している場合は、サービス インスタンスが Envoy プロキシへの送信リクエストをインターセプトしてリダイレクトするように構成されています。
  • Envoy プロキシまたは gRPC ライブラリが送信リクエストを処理します。

また、Traffic Director を使用してゲートウェイや中央プロキシを構成することもできます。この設定では、Envoy プロキシはサービス インスタンスとは別のものです。ポートで受信リクエストをリッスンし、リクエストを受信するとリクエストを処理します。

この設定では、インターセプトまたはリダイレクトを設定する必要はありません。代わりに、ターゲット HTTP プロキシで --proxy-bind フラグを有効にするだけで済みます。これにより、受信トラフィック インターセプトが設定され、Envoy プロキシが IP アドレスとポート(転送ルールで構成)での受信リクエストをリッスンします。

転送ルールがターゲット プロキシを参照していることを思い出してください。したがって、ターゲット HTTP プロキシで --proxy-bind を有効にすると、プロキシはこのターゲット HTTP プロキシを参照する転送ルールの IP アドレスとポートでリッスンします。

次の点にご注意ください。

  • Traffic Director をサービス メッシュ用に使用している場合は、通常、サイドカー プロキシが発信トラフィックを受信して転送するため、--proxy-bind を使用する必要はありません。
  • --proxy-bind フラグは、ターゲット gRPC プロキシには使用できません。

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

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

Google Cloud Console を使用してルーティング ルール マップを作成すると、転送ルール、ターゲット プロキシ、URL マップが自動的に作成されます。転送ルールに関する情報は明示的に指定する必要があります。Cloud Console ではターゲット プロキシを明示的に構成する必要がないため、Traffic Director 用に構成されたターゲット プロキシに関する情報は入手できません。

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

gcloud compute [target-http-proxies | target-grpc-proxies ] list
gcloud compute [target-http-proxies | target-grpc-proxies ] describe target-proxy-name

API

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

gcloud SDK

gcloud コマンドライン ツールについては、次のページをご覧ください。

次のステップ

詳細情報