このページでは、推移的にピアリングされた VPC 間で Cloud SQL インスタンスに接続する方法について説明します。
Cloud SQL では、プライベート IP を使用して Cloud SQL インスタンスを複数の VPC に接続する次の方法があります。
- カスタム アドバタイズ ルートを使用して接続する
- 中間プロキシ(SOCKS5)を使用して接続する
- サービスとしてプロキシを使用して接続する
- Private Service Connect を使用して接続する
カスタム アドバタイズ ルートを使用して接続する
Cloud Router を使用して、中間 VPC を通過する 2 つのネットワーク間のカスタム アドバタイズ ルートを構成し、複数の VPC を Cloud SQL インスタンスに接続できます。2 つの VPC は、バーチャル プライベート ネットワーク(VPN)、Cloud Interconnect、またはその他の Cloud Router でサポートされているネットワークを使用して接続する必要があります。
カスタム アドバタイズ ルートでは、中間 VPC である VPC B を使用して、Cloud SQL VPC である VPC C がメイン VPC である VPC A に接続されています。これらのネットワーク間の共有ルートは、次の方法で構成できます。
Cloud Router を使用して、中間 VPC を経由する 2 つのネットワーク間のルートを手動でアドバタイズできます。ルートを手動でアドバタイズするように Cloud Router を構成する方法については、トランジット ネットワークをご覧ください。
相互に接続する 2 つの HA VPC ゲートウェイを作成して、2 つの異なる VPC をブリッジし、それらの間でルートを共有するように Cloud Router を構成できます。HA VPC ゲートウェイの設定方法の詳細については、HA VPC ゲートウェイを作成して VPC ネットワークを接続するをご覧ください。
Cloud Router を使用して複数の VPC を Cloud SQL インスタンスに接続するには、カスタム アドバタイズ ルートを使用することをおすすめします。
中間プロキシ(SOCKS5)を使用して接続する
中間 VPC に SOCKS5 プロキシなどの中間プロキシを、クライアントと Cloud SQL インスタンスの間のメイン VPC に Cloud SQL Auth Proxy を設定できます。これにより、中間ノードで暗号化されたトラフィックが Cloud SQL Auth Proxy から Cloud SQL インスタンスに転送されます。
中間プロキシを使用して複数の VPC から Cloud SQL インスタンスに接続するには、次の手順を行います。
外部クライアントに gcloud CLI をインストールします。
中間 VM で、SOCKS サーバーをインストール、構成、実行します。このようなサーバーの例として、一般的なオープンソース ソリューションである Dante があります。
外部接続と内部接続の両方で VM の
ens4
ネットワーク インターフェースにバインドするようにサーバーを構成します。内部接続の場合は、任意のポートを指定します。適切な IP アドレスまたは範囲から SOCKS サーバーの構成ポートへの TCP トラフィックを許可するように、VPC のファイアウォールを構成します。
外部クライアントで、Cloud SQL Auth Proxy をダウンロードしてインストールします。
外部クライアントで Cloud SQL Auth Proxy を起動します。
内部 IP アドレスを使用するようにインスタンスを構成したため、Cloud SQL Auth Proxy の起動時に
--private-ip
オプションを指定する必要があります。また、
ALL_PROXY
環境変数を中間 VM の IP アドレスに設定し、SOCKS サーバーが使用するポートを指定します。例:ALL_PROXY=socks5://VM_IP_ADDRESS:SOCKS_SERVER_PORT.
ピアリングされた VPC から接続する場合は、中間 VM の内部 IP アドレスを使用します。それ以外の場合は、外部 IP アドレスを使用します。
外部クライアントで、
psql
を使用して接続をテストします。
Cloud SQL Auth Proxy をサービスとして使用して接続する
Cloud SQL Auth Proxy を外部クライアントの代わりに中間 VPC にインストールして実行し、プロトコル対応プロキシ(接続プーラー)とペアリングすることで、安全な接続を有効にできます。接続プーラーの例には、PGBouncer や Pgpool-II(PostgreSQL のみ)などがあります。
この接続方法により、アプリケーションは、構成された SSL を使用してプーラーに直接接続できます。プーラーは、Cloud SQL Auth プロキシを使用して Cloud SQL インスタンスにデータベース クエリを渡します。
Private Service Connect を使用して接続する
Private Service Connect を使用すると、異なるプロジェクトや組織をまたがる複数の VPC ネットワークに接続できます。Private Service Connect を使用して、プライマリ インスタンスまたはそのリードレプリカのいずれかに接続できます。Private Service Connect の詳細については、Private Service Connect の概要をご覧ください。
Private Service Connect を使用して複数の VPC 間で接続するには、Private Service Connect を使用してインスタンスに接続するをご覧ください。