公開サービスの概要

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

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

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

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

Private Service Connect サービスに接続できるコンシューマには次の 2 種類があります。

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

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

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

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

Private Service Connect サービス構成

Private Service Connect サービスを作成するときに、サブネット、サービス アタッチメント、接続設定を構成します。必要に応じて、サービスの DNS ドメインを構成することもできます。これらの構成については、次のセクションで説明します。

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 サブネットには 4 個の使用できない IP アドレスがあるため、使用可能な 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 サブネットをサービス アタッチメントに追加できます。

最大接続数

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

その他の考慮事項

NAT サブネットには他にも次の考慮事項があります。

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

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

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

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

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

サービス アタッチメント

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

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

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

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

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

接続の設定

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

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

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

接続ステータス

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

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

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

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

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

接続調整

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

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

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

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

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

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

接続制限

コンシューマーの承認リストには、接続上限があります。これらの上限には、サービス アタッチメントが指定されたコンシューマー プロジェクトまたは VPC ネットワークから受け入れることができる接続の合計数を設定します。プロデューサーはこれらの上限を使用して、個々のコンシューマーがプロデューサー 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 がコンシューマーの承認リストに追加されると、その接続は保留中から承認済みに移行します。

DNS 構成

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

マルチリージョンの構成

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

プロデューサーの構成:

コンシューマの構成:

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

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

機能と互換性

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

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

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

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

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

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

ロードバランサでグローバル アクセスが有効になっている場合のみ

ロードバランサでグローバル アクセスが有効になっている場合のみ

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

相互接続のトラフィック

Cloud VPN のトラフィック
DNS の自動構成
IP スタック IPv4 IPv4 IPv4 IPv4

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

プロデューサーの構成(公開サービス) プロデューサー ロードバランサ
内部パススルー ネットワーク ロードバランサ リージョン内部アプリケーション ロードバランサ リージョン内部プロキシ ネットワーク ロードバランサ 内部プロトコル転送(ターゲット インスタンス)
サポートされるプロデューサー バックエンド
  • 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
  • インスタンス グループ
該当なし
PROXY プロトコル TCP トラフィックのみ TCP トラフィックのみ
セッション アフィニティ モード なし(5 タプル)
CLIENT_IP_PORT_PROTO
該当なし 該当なし 該当なし

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

バックエンドのサポート

公開サービス用の Private Service Connect バックエンドには、コンシューマー ロードバランサとプロデューサー ロードバランサという 2 つのロードバランサが必要です。次の表に、コンシューマー ロードバランサとプロデューサー ロードバランサの互換性を示します。また、各コンシューマー ロードバランサで使用できるバックエンド サービス プロトコルについても説明します。各行はコンシューマー ロードバランサのタイプを表し、各列はプロデューサー ロードバランサのタイプを表します。

コンシューマー ロードバランサとサポートされているコンシューマー バックエンド サービス プロトコル プロデューサー ロードバランサ
内部パススルー ネットワーク ロードバランサ リージョン内部アプリケーション ロードバランサ リージョン内部プロキシ ネットワーク ロードバランサ

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

プロトコル: HTTPS、HTTP2

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

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

プロトコル: HTTP、HTTPS、HTTP2

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

プロトコル: HTTP、HTTPS、HTTP2

クロスリージョン内部アプリケーション ロードバランサ(プレビュー)

プロトコル: HTTPS、HTTP2

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

プロトコル: TCP

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

プロトコル: TCP

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

プロトコル: TCP

グローバル外部プロキシ ネットワーク ロードバランサ(プレビュー)

プロトコル: TCP / SSL

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

次の表に、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
転送ルールのポート 転送ルールは 1 つのポートを参照する必要があります。 転送ルールは 1 つのポートを参照する必要があります。 転送ルールは 1 つのポートを参照する必要があります。
PROXY プロトコル

共有 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 の料金については、VPC の料金ページをご覧ください。

割り当て

公開サービスにアクセスするために作成できるエンドポイントの数は、PSC Internal LB Forwarding Rules 割り当てによって制御されます。詳細については、割り当てをご覧ください。

オンプレミス アクセス

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

制限事項

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

  • プロデューサー ロードバランサは、次の機能をサポートしていません。
  • Packet Mirroring では、Private Service Connect の公開サービス トラフィックのパケットはミラーリングできません。
  • Google Cloud CLI または API を使用して、内部プロトコル転送に使用される転送ルールを指すサービス アタッチメントを作成する必要があります。
  • 次のロードバランサ タイプでは、BETA指標の値が提供されません。値が 0 になっているか、値がありません。
    • リージョン内部アプリケーション ロードバランサ
    • リージョン内部プロキシ ネットワーク ロードバランサ
  • 問題と回避策については、既知の問題をご覧ください。