公開サービスの概要 (original) (raw)

公開サービスの概要

このドキュメントでは、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 接続は失敗します。次の点を考慮してください。

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

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

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

NAT の仕様

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

最大接続数

単一のプロデューサー VM は、単一の Private Service Connect コンシューマー(エンドポイントまたはバックエンド)から最大 64,512 個の TCP 接続と 64,512 個の 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 つのみです。ただし、複数のサービス アタッチメントで同じターゲット サービスを共有できます。

サービス アタッチメントを使用すると、公開サービスへのアクセスを制御し、接続を表示して、接続の上限を構成できます。詳細については、公開サービスへのアクセスの制御についてをご覧ください。

接続ステータス

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

DNS 構成

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

フェイルオーバー用のマルチリージョン構成

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

プロデューサーの構成:

コンシューマーの構成:

この構成は、クロスリージョン フェイルオーバーの自動化をサポートしています。自動フェイルオーバーでは、あるリージョンのサービス インスタンスが異常な状態になると、コンシューマーのロードバランサはそのサービスへのトラフィックの転送を停止し、代わりに別のリージョンの正常なサービス インスタンスにトラフィックを転送します。

詳しくは以下をご覧ください。

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

IP バージョンの変換

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

公開サービスの場合、サービス アタッチメントの IP バージョンは、関連付けられた転送ルールまたは Secure Web Proxy インスタンスの IP アドレスによって決まります。この IP アドレスには、サービス アタッチメントの NAT サブネットのスタックタイプとの互換性が必要です。IPv4 専用サブネット、IPv6 専用サブネット、またはデュアルスタック サブネットを NAT サブネットにすることができます。NAT サブネットがデュアルスタック サブネットの場合、IPv4 アドレス範囲または IPv6 アドレス範囲のいずれかが使用されます。両方が使用されることはありません。

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

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

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

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

機能と互換性

次の表で、 チェックマークは機能がサポートされていることを示し、記号なしは機能がサポートされていないことを示します。

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

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

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

コンシューマーの構成

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

ターゲット プロデューサー コンシューマーの構成(エンドポイント)
コンシューマーのグローバル アクセス ハイブリッド アクセス DNS の自動構成(IPv4 のみ) VPC ネットワーク ピアリング アクセス Network Connectivity Center 接続の伝播(IPv4 のみ) IPv4 エンドポイントでサポートされているターゲット サービス IPv6 エンドポイントでサポートされているターゲット サービス
クロスリージョン内部アプリケーション ロードバランサ IPv4 サービス IPv4 サービス
内部パススルー ネットワーク ロードバランサ ロードバランサでグローバル アクセスが有効になっている場合のみ(既知の問題 IPv4 サービス IPv4 サービス IPv6 サービス
内部プロトコル転送(ターゲット インスタンス) プロデューサー転送ルールでグローバル アクセスが有効になっている場合のみ(既知の問題 IPv4 サービス IPv4 サービス IPv6 サービス
ポート マッピング サービス プロデューサー転送ルールでグローバル アクセスが有効になっている場合のみ IPv4 サービス IPv4 サービス IPv6 サービス
リージョン内部アプリケーション ロードバランサ サービス アタッチメントの作成前にロードバランサでグローバル アクセスが有効になっている場合のみ IPv4 サービス IPv4 サービス
リージョン内部プロキシ ネットワーク ロードバランサ サービス アタッチメントの作成前にロードバランサでグローバル アクセスが有効になっている場合のみ IPv4 サービス IPv4 サービス
Secure Web Proxy IPv4 サービス IPv4 サービス

プロデューサーの構成

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

プロデューサーの種類 プロデューサーの構成(公開サービス)
サポートされるプロデューサー バックエンド PROXY プロトコル(TCP トラフィックのみ) IP バージョン
クロスリージョン内部アプリケーション ロードバランサ GCE_VM_IP_PORT ゾーン NEG ハイブリッド NEG サーバーレス NEG Private Service Connect NEG インスタンス グループ IPv4
内部パススルー ネットワーク ロードバランサ GCE_VM_IP ゾーン NEG インスタンス グループ IPv4 IPv6
内部プロトコル転送(ターゲット インスタンス) 該当なし IPv4 IPv6
ポート マッピング サービス ポート マッピングの NEG IPv4 IPv6
リージョン内部アプリケーション ロードバランサ GCE_VM_IP_PORT ゾーン NEG ハイブリッド NEG サーバーレス NEG Private Service Connect NEG インスタンス グループ IPv4
リージョン内部プロキシ ネットワーク ロードバランサ GCE_VM_IP_PORT ゾーン NEG ハイブリッド NEG Private Service Connect NEG インスタンス グループ IPv4
Secure Web Proxy 該当なし IPv4

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

バックエンドのサポート

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

コンシューマーの構成

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

コンシューマー ロードバランサ プロトコル IP バージョン クロス リージョン フェイルオーバー
クロスリージョン内部アプリケーション ロードバランサ HTTP HTTPS HTTP2 IPv4
クロスリージョン内部プロキシ ネットワーク ロードバランサ TCP IPv4
グローバル外部アプリケーション ロードバランサ 注: 従来のアプリケーション ロードバランサはサポートされていません。 HTTP HTTPS HTTP2 IPv4
グローバル外部プロキシ ネットワーク ロードバランサ このロードバランサを Private Service Connect NEG に関連付けるには、Google Cloud CLI を使用するか、API リクエストを送信します。 注: 従来のプロキシ ネットワーク ロードバランサはサポートされていません。 TCP / SSL IPv4
リージョン外部アプリケーション ロードバランサ HTTP HTTPS HTTP2 IPv4
リージョン外部プロキシ ネットワーク ロードバランサ TCP IPv4
リージョン内部アプリケーション ロードバランサ HTTP HTTPS HTTP2 IPv4
リージョン内部プロキシ ネットワーク ロードバランサ TCP IPv4

プロデューサーの構成

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

プロデューサーの種類 プロデューサーの構成(公開サービス)
サポートされるプロデューサー バックエンド 転送ルール プロトコル 転送ルールのポート PROXY プロトコル IP バージョン Private Service Connect のヘルスサポート
クロスリージョン内部アプリケーション ロードバランサ GCE_VM_IP_PORT ゾーン NEG ハイブリッド NEG サーバーレス NEG Private Service Connect NEG インスタンス グループ TCP HTTP HTTPS HTTP/2 gRPC 1 つ、複数、またはすべてのポートをサポート IPv4
内部パススルー ネットワーク ロードバランサ GCE_VM_IP ゾーン NEG インスタンス グループ TCP プロデューサー ポートの構成をご覧ください。 IPv4
リージョン内部アプリケーション ロードバランサ GCE_VM_IP_PORT ゾーン NEG ハイブリッド NEG サーバーレス NEG Private Service Connect NEG インスタンス グループ HTTP HTTPS HTTP/2 単一のポートをサポート IPv4
リージョン内部プロキシ ネットワーク ロードバランサ GCE_VM_IP_PORT ゾーン NEG ハイブリッド NEG Private Service Connect NEG インスタンス グループ TCP 単一のポートをサポート IPv4
Secure Web Proxy 該当なし 該当なし 該当なし IPv4

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

Private Service Connect を使用して内部パススルー ネットワーク ロードバランサが公開されている場合、Private Service Connect バックエンドを使用してサービスにアクセスするコンシューマーは、サービスとの通信に使用するポートを識別する必要があります。プロデューサーの内部パススルー ネットワーク ロードバランサの転送ルールを作成する場合は、次の点を考慮してください。

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

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

ロギング

バックエンド VM を含むサブネットで VPC Flow Logs を有効にできます。このログには、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 は次のようなシナリオで再利用される可能性があります。

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

制限事項

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

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