公開サービスの概要

このドキュメントでは、Private Service Connect を使用して、サービス ユーザーがサービスを利用できるようにする方法の概要について説明します。

サービス プロデューサーとして Private Service Connect を利用し、VPC ネットワークの内部 IP アドレスを使用してサービスを公開できます。サービス コンシューマは、VPC ネットワークの内部 IP アドレスを使用して、公開サービスにアクセスできます。

コンシューマがサービスを利用できるようにするには、1 つ以上の専用サブネットを作成します。次に、これらのサブネットを参照するサービス アタッチメントを作成します。サービス アタッチメントに異なる接続設定を行うことができます。

サービス コンシューマの種類

Private Service Connect サービスに接続できるユーザーには次の 2 種類があります。

エンドポイントは転送ルールに基づいています。

エンドポイントを使用すると、サービス ユーザーは、コンシューマーの VPC ネットワークからサービス プロデューサーの VPC ネットワーク内のサービスにトラフィックを送信できます(クリックして拡大)。

バックエンドはロードバランサに基づいています。

グローバル外部アプリケーション ロードバランサを使用するバックエンドでは、インターネットにアクセスできるサービス ユーザーは、サービス プロデューサーの VPC ネットワーク内のサービスにトラフィックを送信できます(クリックして拡大)。

NAT サブネット

Private Service Connect サービス アタッチメントは、1 つ以上の NAT サブネット(Private Service Connect サブネットとも呼ばれます)で構成されます。コンシューマ VPC ネットワークからのパケットは、送信元 NAT(SNAT)を使用して変換され、元の送信元 IP アドレスが、プロデューサーの VPC ネットワーク内にある NAT サブネットからの送信元 IP アドレスに変換されます。

サービス アタッチメントには複数の NAT サブネットを設定できます。トラフィックを中断することなく、いつでも NAT サブネットをサービス アタッチメントに追加できます。

1 つのサービス アタッチメントに複数の NAT サブネットを構成できますが、1 つの NAT サブネットを複数のサービス アタッチメントで使用することはできません。

Private Service Connect NAT サブネットは、仮想マシン(VM)インスタンスや転送ルールなどのリソースに使用できません。サブネットは、受信ユーザー接続の SNAT に IP アドレスを提供する目的でのみ使用されます。

NAT サブネットのサイズ設定

サービスを公開するときに、NAT サブネットを作成して IP アドレス範囲を選択します。サブネットのサイズによって、サービス アタッチメントに接続できる Private Service Connect エンドポイントまたはバックエンドの数が決まります。

IP アドレスは、Private Service Connect 接続の数に応じて NAT サブネットから使用されます。NAT サブネット内のすべての IP アドレスが使用されると、追加の Private Service Connect 接続は失敗します。そのため、NAT サブネットのサイズを適切に設定することが重要です。

サブネットのサイズを選択する際は、次の点を考慮してください。

  • NAT サブネットには、使用できない IP アドレスが 4 個あるため、使用可能な IP アドレスの数は 2(32 - PREFIX_LENGTH) - 4 になります。たとえば、プレフィックスの長さが /24 の NAT サブネットを作成すると、Private Service Connect は 252 個の IP アドレスを SNAT に使用できます。4 個の使用可能な IP アドレスを持つ /29 サブネットが、VPC ネットワークでサポートされている最小のサブネット サイズになります。
  • サービス アタッチメントに接続されているエンドポイントまたはバックエンドごとに、NAT サブネット内の 1 個の IP アドレスが使用されます。
  • エンドポイントとバックエンドに必要な IP アドレスの数を見積もる場合は、Private Service Connect のマルチポイント アクセスを使用するマルチテナント サービスまたはコンシューマーを考慮してください。
  • TCP 接続または UDP 接続、クライアント、コンシューマー VPC ネットワークの数は、NAT サブネットからの IP アドレスの使用に影響しません

たとえば、1 個のサービス アタッチメントに 2 個のエンドポイントが接続されている場合、NAT サブネット内にある 2 個の IP アドレスが使用されます。エンドポイントの数がこのまま変更されない場合は、このサービス アタッチメントで使用される 4 個の IP アドレスを加えて、/29 サブネットを使用できます。

NAT サブネットのモニタリング

NAT サブネットの IP アドレスを使用できずに Private Service Connect 接続が失敗することがないようにするため、次のことをおすすめします。

  • private_service_connect/producer/used_nat_ip_addresses サービス アタッチメントの指標をモニタリングします。使用する NAT IP アドレスの数が、サービス アタッチメントの NAT サブネットの容量を超えないようにします。
  • サービス アタッチメント接続の接続ステータスをモニタリングします。接続のステータスが「要確認」の場合、アタッチメントの NAT サブネットで使用可能な IP アドレスがない可能性があります。
  • マルチテナント サービスの場合、接続上限を使用して、単一のコンシューマがサービス アタッチメントの NAT サブネットの容量を使い果たさないようにすることができます。

トラフィックを中断することなく、いつでも NAT サブネットをサービス アタッチメントに追加できます。

NAT の仕様

公開するサービスを設計するときに、Private Service Connect NAT の次の特性を考慮してください。

  • UDP マッピングの無通信タイムアウトは 30 秒です。この値を構成することはできません。

  • TCP 確立済み接続の無通信タイムアウトは 20 分です。この値を構成することはできません。

    クライアント接続のタイムアウトに関する問題を回避するには、次のいずれかを行います。

    • すべての接続を 20 分未満にします。

    • 一部のトラフィックが 20 分に 1 回以上送信されるようにします。アプリケーションでハートビートやキープアライブを使用することも、TCP キープアライブを使用することもできます。たとえば、リージョン内部アプリケーション ロードバランサまたはリージョン内部プロキシ ネットワーク ロードバランサのターゲット プロキシでキープアライブを構成できます。

  • TCP 一時的な接続の無通信タイムアウトは 30 秒です。この値を構成することはできません。

  • 5 タプル(NAT サブネットの送信元 IP アドレスと送信元ポート、宛先プロトコル、IP アドレス、宛先ポート)が再利用されるまでに 2 分ほどかかることがあります。

  • Private Service Connect の SNAT は、IP フラグメントをサポートしていません。

最大接続数

単一のプロデューサー VM は、単一の Private Service Connect エンドポイントから最大 65,536 個の TCP 接続と 65,536 個の UDP 接続を同時に受信できます。単一の Private Service Connect エンドポイントがすべてのプロデューサー バックエンドで受け付けることができる TCP 接続と UDP 接続の合計数に制限はありません。コンシューマ VM は、Private Service Connect エンドポイントへの TCP 接続または UDP 接続を開始するときに、65,536 個のポートすべてを使用できます。すべてのネットワーク アドレス変換は、プロデューサー ホストでローカルに行われます。これには、一元的に割り当てられた NAT ポートプールは必要ありません。

サービス アタッチメント

サービス プロデューサーは、サービス アタッチメントを介してサービスを公開します。

  • サービスを公開するために、サービス プロデューサーでは、サービスのロードバランサ転送ルールを参照するサービス アタッチメントを作成します。

  • サービス コンシューマでは、サービスにアクセスするためにサービス アタッチメントを参照するエンドポイントを作成します。

このサービス アタッチメントの URI の形式は projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME のようになります。

各ロードバランサは、1 つのサービス アタッチメントでのみ参照できます。 同じロードバランサを使用する複数のサービス アタッチメントを構成することはできません。

接続の設定

各サービス アタッチメントには、接続リクエストを自動的に受け入れるかどうかを指定する接続設定があります。処理方法は次の 3 つです。

  • すべての接続を自動的に受け入れる。サービス アタッチメントは、任意のコンシューマーからのすべての受信接続リクエストを自動的に受け入れます。自動承認は、受信接続をブロックする組織のポリシーでオーバーライドできます。
  • 選択したネットワークの接続を受け入れる。サービス アタッチメントは、コンシューマ VPC ネットワークがサービス アタッチメントのコンシューマ承認リストに含まれている場合にのみ、受信接続リクエストを受け入れます。
  • 選択したプロジェクトの接続を受け入れる。サービス アタッチメントは、ユーザー プロジェクトがサービス アタッチメントのコンシューマ承認リストに含まれている場合にのみ、受信接続リクエストを受け入れます。

選択したプロジェクトやネットワークの接続を受け入れることをおすすめします。他の手段でコンシューマー アクセスを制御し、サービスに対して制限の緩すぎるアクセスを有効にする場合は、すべての接続を自動的に受け入れるのが適切です。

接続ステータス

サービス アタッチメントの接続ステータスは接続の状態を表します。詳細については、接続ステータスをご覧ください。

コンシューマーの承認リストと拒否リスト

コンシューマ承認リストとコンシューマ拒否リストは、サービス アタッチメントのセキュリティ機能です。承認リストと拒否リストを使用すると、サービス プロデューサーはサービスに対する Private Service Connect 接続を確立できるコンシューマーを指定できます。コンシューマーの承認リストは接続を受け入れるかどうかを指定し、拒否リストは接続が拒否するかどうかを指定します。どちらのリストでも、接続リソースの VPC ネットワークまたはプロジェクトごとにコンシューマーを指定できます。プロジェクトまたはネットワークを承認リストと拒否リストの両方に追加すると、そのプロジェクトまたはネットワークからの接続リクエストは拒否されます。フォルダでコンシューマを指定することはできません。

コンシューマーの承認リストと拒否リストでは、プロジェクトまたは VPC ネットワークを指定できますが、両方を同時に指定することはできません。接続を中断することなく、一方のタイプから他方のタイプにリストを変更できますが、変更は 1 回の更新で行う必要があります。そうしないと、一部の接続が一時的に保留状態に変わることがあります。

コンシューマ リストは、エンドポイントが公開サービスに接続できるかどうかを制御しますが、そのエンドポイントにリクエストを送信できるユーザーを制御しません。たとえば、コンシューマに 2 つのサービス プロジェクトが接続された共有 VPC ネットワークがあるとします。公開されたサービスで、コンシューマーの承認リストに service-project1 があり、コンシューマーの拒否リストに service-project2 がある場合、次のように処理されます。

  • service-project1 のコンシューマは、公開サービスに接続するエンドポイントを作成できます。
  • service-project2 のコンシューマは、公開サービスに接続するエンドポイントを作成できません。
  • service-project2 のクライアントは、トラフィックをブロックするファイアウォール ルールまたはポリシーがない場合、service-project1 のエンドポイントにリクエストを送信できます。

コンシューマの承認リストと組織のポリシー間のやり取り方法については、コンシューマ承認リストと組織のポリシー間のやり取りをご覧ください。

コンシューマーの承認リストの上限

コンシューマーの承認リストには、接続上限があります。これらの上限により、サービス アタッチメントが指定されたコンシューマー プロジェクトまたは VPC ネットワークから受け入れることができる Private Service Connect エンドポイントとバックエンド接続の合計数が設定されます。

プロデューサーは接続上限を使用して、個別のコンシューマーがプロデューサー VPC ネットワーク内の IP アドレスまたはリソースの割り当てを使い切らないようにします。受け入れられた各 Private Service Connect 接続は、コンシューマー プロジェクトまたは VPC ネットワークの構成済み上限から差し引かれます。上限は、コンシューマーの承認リストを作成または更新するときに設定されます。サービス アタッチメントの詳細を取得する際に、サービス アタッチメントの接続を確認できます。

伝播接続は、これらの上限にカウントされません。

たとえば、サービス アタッチメントに project-1project-2 を含むコンシューマー承認リストがあり、両方が 1 つの接続に制限されているとします。プロジェクト project-1 は 2 つの接続、project-2 は 1 つの接続、project-3 は 1 つの接続をリクエストします。project-1 には 1 つの接続という制限があるため、最初の接続は受け入れられますが、2 番目の接続は保留中のままになります。project-2 からの接続は受け入れられますが、project-3 からの接続は保留中のままになります。project-1 の制限を引き上げると、project-1 から 2 番目の接続を受け入れることが可能になります。project-3 がコンシューマーの承認リストに追加されると、その接続は保留中から承認済みに移行します。

接続調整

接続の調整により、サービス アタッチメントの許可リストまたは拒否リストの更新が既存の Private Service Connect 接続に影響を与えるかどうかが決まります。接続の調整が有効になっている場合、許可リストまたは拒否リストを更新すると、既存の接続を終了できます。以前に拒否された接続が受け入れられる可能性があります。接続の調整が無効になっている場合、許可リストまたは拒否リストの更新は新しい接続と保留中の接続にのみ影響します。

たとえば、Project-A からの複数の接続が承諾されているサービス アタッチメントがあるとします。Project-A は、サービス アタッチメントの許可リストにあります。サービス アタッチメントは、許可リストから Project-A を削除することで更新されます。

接続の調整が有効になっている場合、Project-A からの既存の接続はすべて PENDING に変わり、これにより、2 つの VPC ネットワーク間のネットワーク接続が切断され、ネットワーク トラフィックが直ちに停止します。

接続の調整が無効になっている場合、Project-A からの既存の接続は影響を受けません。ネットワーク トラフィックは、引き続き既存の Private Service Connect 接続間を通過できます。ただし、新しい Private Service Connect 接続は許可されません。

新しいサービス アタッチメントの接続調整を構成する方法については、明示的な承認でサービスを公開するをご覧ください。

既存のサービス アタッチメントの接続調整を構成する方法については、接続調整を構成するをご覧ください。

伝播接続

エンドポイントを使用してサービス アタッチメントに接続するコンシューマーは、伝播接続を有効にできます。伝播接続を使用すると、コンシューマー VPC スポークは、2 つの VPC ネットワークがエンドポイントを介して直接接続されているかのように、プロデューサー VPC ネットワークのマネージド サービスにアクセスできます。伝播接続ごとに、サービス アタッチメントの NAT サブネットから IP アドレスが使用されます。

公開サービスの詳細を表示すると、接続済みエンドポイントに関連付けられている伝播接続の数を確認できます。このカウントには、プロデューサーの伝播接続の上限によってブロックされた伝播接続は含まれません。

伝播接続数の上限

サービス アタッチメントには伝播接続数の上限があります。これにより、サービス プロデューサーは、単一のコンシューマーからサービス アタッチメントに対して確立できる伝播接続数を制限できます。指定しない場合、デフォルトの伝播接続数の上限は 250 です。

  • サービス アタッチメントの接続設定が ACCEPT_MANUAL の場合、この制限はコンシューマーの許可リストに登録されている各プロジェクトまたは VPC ネットワークに適用されます。
  • 接続設定が ACCEPT_AUTOMATIC の場合、この制限は接続されたエンドポイントを含む各プロジェクトに適用されます。

コンシューマーが伝播接続の上限を超えると、それ以上は伝播接続が作成されません。伝播されたエンドポイントをさらに作成できるようにするには、伝播接続の上限を増やすことができます。この上限を増やすと、新しい接続が更新された上限を超えない限り、Network Connectivity Center は、上限によってブロックされていた伝播接続を作成します。この上限を更新しても、既存の伝播接続には影響しません。

割り当ての枯渇を防ぐ

プロデューサー VPC ネットワークにアクセスできる Private Service Connect エンドポイントと伝播接続の合計数は、PSC ILB consumer forwarding rules per producer VPC network 割り当てによって制御されます。特にマルチテナント サービスでは、この割り当て量を使い切らないようにすることが重要です。

次の上限を使用して、割り当ての枯渇を防ぐことができます。

  • コンシューマー リストの接続上限は、単一のコンシューマー VPC ネットワークまたはプロジェクトからサービス アタッチメントへの接続を作成できる Private Service Connect エンドポイントの合計数を制御します。これらの上限を下げても、既存の接続には影響しません。これらの制限は、伝播接続には適用されません。
  • 伝播接続の上限は、単一のコンシューマーからサービス アタッチメントに確立できる伝播接続の合計数を制御します。この上限を下げても、既存の伝播接続には影響しません。

次の例は、PSC ILB consumer forwarding rules per producer VPC network 割り当てに関して、伝播接続の上限とコンシューマーの許可リストの上限がどのように機能するかを示しています。

コンシューマーがスポーク VPC ネットワーク spoke-vpc-1 に 2 つのエンドポイントを作成したとします。両方のエンドポイントは producer-vpc-1service-attachment-1 に接続します。スポークが、接続の伝播が有効になっている Network Connectivity Center ハブに接続されており、そのハブに接続されている他のスポークはありません。

サービス プロデューサーは、承認リストの各プロジェクトのコンシューマー承認リストの上限を 4 に設定するように service-attachment-1 を構成しています。プロデューサーは、伝播接続数の上限を 2 に構成し、1 つのプロジェクトで最大 2 つの伝播接続を指定しています。

この構成例には 2 つのエンドポイントがあり、伝播された接続はありません(クリックして拡大)。

この構成の割り当てと上限の使用量は次のとおりです。

割り当て / 上限 使用量 説明
プロデューサー VPC ネットワークあたりの PSC ILB コンシューマー転送ルール 2 エンドポイントごとに 1 つ
consumer-project-1 のサービス アタッチメント コンシューマー承認リストの接続上限 2 エンドポイントごとに 1 つ
consumer-project-1 のサービス アタッチメントの伝播接続の上限 0 伝播接続なし

consumer-project-1spoke-vpc-2 という別のスポークを spoke-vpc-1 と同じ Network Connectivity Center ハブに接続するとします。この場合、既存のエンドポイントごとに 1 つずつ作成され、consumer-project-1 に 2 つの伝播接続が作成されます。

この構成例には、2 つのエンドポイントと 2 つの伝播接続が含まれています(クリックして拡大)。

この構成の割り当てと上限の使用量は次のとおりです。

割り当て / 上限 使用量 説明
プロデューサー VPC ネットワークあたりの PSC ILB コンシューマー転送ルール 4 エンドポイントごとに 1 つ、伝播接続ごとに 1 つ
consumer-project-1 のサービス アタッチメント コンシューマー承認リストの接続上限 2 エンドポイントごとに 1 つ
consumer-project-1 のサービス アタッチメントの伝播接続の上限 2 伝播接続ごとに 1 つ

Consumer-project-1 の伝播接続数の上限に達しました。コンシューマーが別の VPC スポークを追加しても、Private Service Connect は新しい伝播接続を作成しません。

別のコンシューマーが consumer-project-2 に 2 つの VPC スポークを持っているとします。スポークは、伝播接続が有効になっている Network Connectivity Center ハブに接続します。VPC スポークの 1 つに、service-attachment-1 に接続する 1 つのエンドポイントが含まれています。

この構成例には、3 つのエンドポイントと 3 つの伝播接続が含まれています(クリックして拡大)。

この構成の割り当てと上限の使用量は次のとおりです。

割り当て / 上限 使用量 説明
プロデューサー VPC ネットワークあたりの PSC ILB コンシューマー転送ルール 6 consumer-project-1 から 4 つ、consumer-project-2 から 2 つ
consumer-project-1 のサービス アタッチメント コンシューマー承認リストの接続上限 2 consumer-project-1 のエンドポイントごとに 1 つ
consumer-project-2 のサービス アタッチメント コンシューマー承認リストの接続上限 1 consumer-project-2 のエンドポイントごとに 1 つ
consumer-project-1 のサービス アタッチメントの伝播接続の上限 2 consumer-project-1 の伝播接続ごとに 1 つ
consumer-project-2 のサービス アタッチメントの伝播接続の上限 1 consumer-project-2 の伝播接続ごとに 1 つ

DNS 構成

公開サービスに接続するエンドポイントの DNS 構成については、サービスの DNS 構成をご覧ください。

マルチリージョンの構成

次の構成を作成することで、複数のリージョンでサービスを使用できます。

プロデューサーの構成:

コンシューマの構成:

この構成では、エンドポイントはデフォルトのグローバル ロード バランシング ポリシー(まず正常であること、次にクライアントに最も近いロケーションであること)を使用してトラフィックをルーティングします。

グローバル外部アプリケーション ロードバランサを使用すると、インターネットにアクセスできるサービス ユーザーは、サービス プロデューサーの VPC ネットワーク内のサービスにトラフィックを送信できます。サービスは複数のリージョンにデプロイされているため、ロードバランサは最も近い正常状態のリージョンの NEG にトラフィックをルーティングできます(クリックして拡大)。

IP バージョンの変換

公開サービス用の Private Service Connect エンドポイントとサービス アタッチメント間の接続では、コンシューマ転送ルールの IP アドレスの IP バージョンによって、エンドポイントの IP バージョンと、エンドポイントから送信されるトラフィックが決定されます。エンドポイントの IP バージョンには IPv4 または IPv6 のいずれかを設定できます。両方を指定することはできません。アドレスのサブネットがシングルスタックの場合、コンシューマは IPv4 アドレスを使用できます。アドレスのサブネットがデュアルスタックの場合、コンシューマは IPv4 アドレスまたは IPv6 アドレスを使用できます。コンシューマは、IPv4 エンドポイントと IPv6 エンドポイントの両方を同じサービス アタッチメントに接続できます。これは、サービスを IPv6 に移行する場合に有効です。

公開サービスの Private Service Connect エンドポイントとサービス アタッチメント間の接続では、プロデューサー転送ルールの IP バージョンによって、サービス アタッチメントの IP バージョンと、サービス アタッチメントから送信されるトラフィックの IP バージョンが決定されます。サービス アタッチメントの IP バージョンには IPv4 または IPv6 のいずれかを指定できます。両方を指定することはできません。アドレスのサブネットがシングルスタックの場合、プロデューサーは IPv4 アドレスを使用できます。アドレスのサブネットがデュアルスタックの場合、プロデューサーは IPv4 アドレスまたは IPv6 アドレスを使用できます。

プロデューサー転送ルールの IP アドレスの IP バージョンは、サービス アタッチメントの NAT サブネットのスタックタイプと互換性があることが必要です。プロデューサーの転送ルールが IPv4 の場合、NAT サブネットはシングルスタックまたはデュアルスタックにできます。プロデューサーの転送ルールが IPv6 の場合、NAT サブネットはデュアルスタックであることが必要です。

Private Service Connect は、IPv4 エンドポイントと IPv6 サービス アタッチメントの接続をサポートしていません。この場合は、エンドポイントの作成が失敗し、次のエラー メッセージが表示されます。

Private Service Connect forwarding rule with an IPv4 address cannot target an IPv6 service attachment.

サポートされている構成では、次の組み合わせが可能です。

  • IPv4 エンドポイントから IPv4 サービスへのアタッチメント
  • IPv6 エンドポイントから IPv6 サービスへのアタッチメント
  • IPv6 エンドポイントから IPv4 サービスへのアタッチメント

    この構成では、Private Service Connect が 2 つの IP バージョン間で自動的に変換を行います。

Private Service Connect バックエンドとサービス アタッチメント間の接続では、コンシューマとプロデューサーの転送ルールの両方で IPv4 を使用する必要があります。

機能と互換性

次の表で、 は機能がサポートされていることを示し、 は機能がサポートされていないことを示します。

選択したプロデューサー ロードバランサに応じて、プロデューサー サービスはエンドポイント、バックエンド、またはその両方によるアクセスをサポートできます。

エンドポイントのサポート

このセクションでは、エンドポイントを使用して公開サービスにアクセスするときに、コンシューマーとプロデューサーが使用できる構成オプションについて説明します。

コンシューマーの構成

次の表は、公開サービスにアクセスするエンドポイントでサポートされる構成オプションと機能をまとめたものです。

コンシューマーの構成(エンドポイント) プロデューサー ロードバランサ
内部パススルー ネットワーク ロードバランサ リージョン内部アプリケーション ロードバランサ リージョン内部プロキシ ネットワーク ロードバランサ 内部プロトコル転送(ターゲット インスタンス)
コンシューマーのグローバル アクセス

ロードバランサのグローバル アクセス設定に依存しない

サービス アタッチメントの作成前にロードバランサでグローバル アクセスが有効になっている場合のみ

サービス アタッチメントの作成前にロードバランサでグローバル アクセスが有効になっている場合のみ

ロードバランサのグローバル アクセス設定に依存しない

相互接続のトラフィック

Cloud VPN のトラフィック
DNS の自動構成 IPv4 のみ IPv4 のみ IPv4 のみ IPv4 のみ
接続の伝播 IPv4 のみ IPv4 のみ IPv4 のみ IPv4 のみ
IPv4 エンドポイント
  • IPv4 プロデューサーの転送ルール
  • IPv4 プロデューサーの転送ルール
  • IPv4 プロデューサーの転送ルール
  • IPv4 プロデューサーの転送ルール
IPv6 エンドポイント
  • IPv4 プロデューサーの転送ルール
  • IPv6 プロデューサーの転送ルール
  • IPv4 プロデューサーの転送ルール
  • IPv4 プロデューサーの転送ルール
  • IPv4 プロデューサーの転送ルール
  • IPv6 プロデューサーの転送ルール

プロデューサーの構成

この表は、エンドポイントがアクセスする公開サービスでサポートされる構成オプションと機能をまとめたものです。

プロデューサーの構成(公開サービス) プロデューサー ロードバランサ
内部パススルー ネットワーク ロードバランサ リージョン内部アプリケーション ロードバランサ リージョン内部プロキシ ネットワーク ロードバランサ 内部プロトコル転送(ターゲット インスタンス)

サポートされるプロデューサー バックエンド

  • GCE_VM_IP ゾーン NEG
  • インスタンス グループ
  • ポート マッピング NEG
  • GCE_VM_IP_PORT ゾーン NEG
  • ハイブリッド NEG
  • サーバーレス NEG
  • Private Service Connect NEG
  • インスタンス グループ
  • GCE_VM_IP_PORT ゾーン NEG
  • ハイブリッド NEG
  • サーバーレス NEG
  • Private Service Connect NEG
  • インスタンス グループ
該当なし
PROXY プロトコル TCP トラフィックのみ TCP トラフィックのみ
セッション アフィニティ モード なし(5 タプル)
CLIENT_IP_PORT_PROTO
該当なし 該当なし 該当なし
IP バージョン
  • IPv4 プロデューサーの転送ルール
  • IPv6 プロデューサーの転送ルール
  • IPv4 プロデューサーの転送ルール
  • IPv4 プロデューサーの転送ルール
  • IPv4 プロデューサーの転送ルール
  • IPv6 プロデューサーの転送ルール

サポートされるポート構成は、ロードバランサによって異なります。ロードバランサには、単一のポートをサポートするものと、ポートの範囲をサポートするものと、すべてのポートをサポートするものがあります。詳細については、ポートの仕様をご覧ください。

バックエンドのサポート

公開サービス用の Private Service Connect バックエンドには、コンシューマー ロードバランサとプロデューサー ロードバランサという2つのロードバランサが必要です。このセクションでは、バックエンドを使用して公開サービスにアクセスするときに、コンシューマーとプロデューサーが使用できる構成オプションについて説明します。

コンシューマーの構成

次の表に、公開サービス用の Private Service Connect バックエンドでサポートされているコンシューマー ロードバランサを示します。各コンシューマー ロードバランサで使用できるバックエンド サービス プロトコルも示します。コンシューマー ロードバランサは、サポートされているプロデューサー ロードバランサでホストされている公開サービスにアクセスできます。

コンシューマー ロードバランサ プロトコル IP バージョン

グローバル外部アプリケーション ロードバランサ複数のリージョンをサポート)

注: 従来のアプリケーション ロードバランサはサポートされていません。

  • HTTP
  • HTTPS
  • HTTP2
IPv4

リージョン外部アプリケーション ロードバランサ

  • HTTP
  • HTTPS
  • HTTP2
IPv4

リージョン内部アプリケーション ロードバランサ

  • HTTP
  • HTTPS
  • HTTP2
IPv4

クロスリージョン内部アプリケーション ロードバランサ

  • HTTP
  • HTTPS
  • HTTP2
IPv4

リージョン内部プロキシ ネットワーク ロードバランサ

  • TCP
IPv4

クロスリージョン内部プロキシ ネットワーク ロードバランサ

  • TCP
IPv4

リージョン外部プロキシ ネットワーク ロードバランサ

  • TCP
IPv4

グローバル外部プロキシ ネットワーク ロードバランサ

このロードバランサを Private Service Connect NEG に関連付けるには、Google Cloud CLI を使用するか、API リクエストを送信します。

注: 従来のプロキシ ネットワーク ロードバランサはサポートされていません。

  • TCP / SSL
IPv4

プロデューサーの構成

次の表に、公開サービス用の Private Service Connect バックエンドでサポートされるプロデューサー ロードバランサの構成を示します。

構成 プロデューサー ロードバランサ
内部パススルー ネットワーク ロードバランサ リージョン内部アプリケーション ロードバランサ リージョン内部プロキシ ネットワーク ロードバランサ
サポートされるプロデューサー バックエンド
  • GCE_VM_IP ゾーン NEG
  • インスタンス グループ
  • GCE_VM_IP_PORT ゾーン NEG
  • ハイブリッド NEG
  • サーバーレス NEG
  • Private Service Connect NEG
  • インスタンス グループ
  • GCE_VM_IP_PORT ゾーン NEG
  • ハイブリッド NEG
  • サーバーレス NEG
  • Private Service Connect NEG
  • インスタンス グループ
転送ルール プロトコル
  • TCP
  • HTTP
  • HTTPS
  • HTTP/2
  • TCP
転送ルールのポート 単一ポートを使用することをおすすめします。プロデューサー ポートの構成をご覧ください。 単一のポートをサポート 単一のポートをサポート
PROXY プロトコル
IP バージョン IPv4 IPv4 IPv4

プロデューサー ポートの構成

コンシューマ バックエンドが内部パススルー ネットワーク ロードバランサにホストされている公開サービスに接続すると、Google Cloud はコンシューマが使用するポートを選択します。ポートは、プロデューサーの転送ルールのポート構成に基づいて選択されます。プロデューサー ロードバランサの転送ルールを作成する場合は、次の点を考慮してください。

  • 1 つのポートを指定することをおすすめします。この構成では、コンシューマ バックエンドは同じポートを使用します。
  • 複数のポートを指定する場合は、次のようになります。

    • ポート 443 が含まれている場合、コンシューマ バックエンドはポート 443 を使用します。
    • ポート 443 が含まれていない場合、コンシューマ バックエンドは、リストをアルファベット順に並べ替えた後、リスト内の最初のポートを使用します。たとえば、ポート 80 とポート 1111 を指定すると、コンシューマ バックエンドはポート 1111 を使用します。
    • プロデューサー バックエンドで使用されるポートを変更すると、コンシューマのサービスが中断される可能性があります。

      たとえば、ポート 4438443 を使用する転送ルールと、ポート 4438443 で応答するバックエンド VM を使用して公開サービスを作成するとします。コンシューマ バックエンドがこのサービスに接続すると、通信にポート 443 を使用します。

      ポート 8443 でのみ応答するようにバックエンド VM を変更すると、コンシューマ バックエンドは公開サービスに到達できなくなります。

  • --port=ALL は使用しないでください。この構成を使用すると、コンシューマ バックエンドはポート 1 を使用しますが、これは機能しません。

共有 VPC

サービス プロジェクト管理者は、共有 VPC ネットワーク内のリソースに接続する共有 VPC サービス プロジェクトでサービス アタッチメントを作成できます。

構成は、通常のサービス アタッチメントの場合とほぼ同じですが、次の点が異なります。

  • プロデューサー ロードバランサの転送ルールは、共有 VPC ネットワークの IP アドレスに関連付けられています。転送ルールのサブネットは、サービス プロジェクトと共有されている必要があります。
  • サービス アタッチメントは、共有 VPC ネットワークの Private Service Connect サブネットを使用します。このサブネットは、サービス プロジェクトと共有されている必要があります。

ロギング

バックエンド VM を含むサブネットで VPC フローログを有効にできます。このログには、Private Service Connect のサブネット内のバックエンド VM と IP アドレスの間のフローが記録されます。

VPC Service Controls

VPC Service Controls と Private Service Connect には互換性があります。Private Service Connect エンドポイントがデプロイされている VPC ネットワークが VPC Service Controls の境界内にある場合、エンドポイントも同じ境界の一部になります。エンドポイントを介してアクセスされる VPC Service Controls でサポートされているサービスには、その VPC Service Controls の境界のポリシーが適用されます。

エンドポイントを作成すると、コンシューマ プロジェクトとプロデューサー プロジェクトの間でコントロール プレーンの API 呼び出しが行われ、Private Service Connect 接続を確立します。同じ VPC Service Controls の境界内にないコンシューマ プロジェクトとプロデューサー プロジェクトの間に Private Service Connect 接続を確立する場合、下り(外向き)ポリシーによる明示的な承認は必要ありません。エンドポイントを介した VPC Service Controls 対応サービスとの通信は、VPC Service Controls の境界で保護されます。

コンシューマーの接続情報の表示

デフォルトでは、Private Service Connect は、コンシューマの送信元 IP アドレスをサービス プロデューサーの VPC ネットワーク内に存在する Private Service Connect サブネットのアドレスに変換します。コンシューマの元の送信元 IP アドレスを確認する場合は、サービスを公開するときに PROXY プロトコルを有効にします。Private Service Connect は、PROXY プロトコル バージョン 2 をサポートしています。

すべてのサービスが PROXY プロトコルをサポートしているわけではありません。詳細については、機能と互換性をご覧ください。

PROXY プロトコルが有効になっている場合は、PROXY プロトコル ヘッダーからコンシューマの送信元 IP アドレスと PSC 接続 ID(pscConnectionId)を取得できます。

PROXY プロトコル ヘッダーの形式は、コンシューマ エンドポイントの IP バージョンによって異なります。サービス アタッチメントのロードバランサに IPv6 アドレスがある場合、コンシューマは IPv4 アドレスと IPv6 アドレスの両方で接続できます。受信するトラフィックの IP バージョンの PROXY プロトコル ヘッダーを受信して読み取るようにアプリケーションを構成します。

伝播接続を流れるコンシューマー トラフィックの場合、コンシューマーの送信元 IP アドレスと PSC 接続 ID は、伝播される Private Service Connect エンドポイントを参照します。

サービス アタッチメントで PROXY プロトコルを有効にすると、その変更は新しい接続にのみ適用されます。既存の接続に PROXY プロトコル ヘッダーは含まれません。

PROXY プロキシを有効にする場合は、バックエンド ウェブサーバー ソフトウェアのドキュメントで、クライアント接続 TCP ペイロードで受信する PROXY プロトコル ヘッダーの解析と処理についてご確認ください。サービス アタッチメントで PROXY プロトコルが有効になっていても、バックエンド ウェブサーバーが PROXY プロトコル ヘッダーを処理するように構成されていない場合は、ウェブ リクエストの形式が正しくない可能性があります。リクエストの形式が正しくない場合、サーバーはそのリクエストを解釈できません。

Private Service Connect 接続 ID(pscConnectionId)は、Type-Length-Value(TLV)形式で PROXY プロトコル ヘッダーにエンコードされます。

フィールド フィールドの長さ フィールド値
タイプ 1 バイト 0xE0(PP2_TYPE_GCP)
長さ 2 バイト 0x8(8 バイト)
8 バイト ネットワーク順の 8 バイトの pscConnectionId

コンシューマ転送ルール、またはプロデューサー サービス アタッチメントから、8 バイトの pscConnectionId 値を表示できます。

pscConnectionId 値は、ある時点でのすべてのアクティブな接続に対してグローバルに一意です。ただし、時間がたつと、pscConnectionId は次のようなシナリオで再利用される可能性があります。

  • 特定の VPC ネットワーク内で、エンドポイント(転送ルール)を削除し、同じ IP アドレスを使用して新しいエンドポイントを作成した場合、同じ pscConnectionId 値が使用されることがあります。

  • エンドポイント(転送ルール)を含む VPC ネットワークを削除すると、7 日間の待機期間後に、これらのエンドポイントに使用されていた pscConnectionId 値が、別の VPC ネットワークにある別のエンドポイントに使用されることがあります。

pscConnectionId 値は、デバッグやパケットの送信元のトレースに使用できます。

16 バイトの Private Service Connect サービス アタッチメント ID(pscServiceAttachmentId)は、プロデューサー サービス アタッチメントから取得できます。pscServiceAttachmentId 値は、Private Service Connect サービス アタッチメントを識別するグローバルに一意の ID です。pscServiceAttachmentId 値は公開設定とデバッグに使用できます。この値は PROXY プロトコル ヘッダーには含まれません。

料金

Private Service Connect の料金については、VPC の料金ページをご覧ください。

割り当て

プロデューサー VPC ネットワークにアクセスできる Private Service Connect エンドポイントと伝播接続の合計数は、PSC ILB consumer forwarding rules per producer VPC network 割り当てによって制御されます。

関連付けられたサービス アタッチメントが削除された場合や、接続を拒否するように構成された場合でも、エンドポイントは削除されるまでこの割り当てに影響します。接続の伝播が Network Connectivity Center ハブで無効になっている場合や、伝播された接続のスポークが削除された場合でも、関連付けられたエンドポイントが削除されるまで、伝播接続はこの割り当てに影響します。

オンプレミス アクセス

Private Service Connect サービスは、エンドポイントを使用して利用可能になります。これらのエンドポイントには、サポート対象で接続中のオンプレミス ホストからアクセスできます。詳細については、オンプレミス ホストからエンドポイントにアクセスするをご覧ください。

制限事項

公開サービスには次の制限があります。

問題と回避策については、既知の問題をご覧ください。