このページでは、推移的にピアリングされた VPC 間で Cloud SQL インスタンスに接続する方法について説明します。
Cloud SQL では、プライベート IP を使用して Cloud SQL インスタンスを複数の VPC に接続する次の方法があります。
- カスタムルート アドバタイズを使用して接続する
- 中間プロキシ(SOCKS5)を使用して接続する
- サービスとしてプロキシを使用して接続する
- Private Service Connect を使用して接続する
Cloud SQL インスタンスと複数の VPC の詳細については、複数の VPC にまたがる Cloud SQL インスタンスをご覧ください。
カスタムルート アドバタイズを使用して接続する
Cloud Router を使用して、中間 VPC を通過する 2 つのネットワーク間のルートを手動でアドバタイズし、複数の VPC を Cloud SQL インスタンスに接続できます。2 つの VPC は、バーチャル プライベート ネットワーク(VPN)、Cloud Interconnect、またはその他の Cloud Router でサポートされているネットワークを使用して接続する必要があります。
カスタムルート アドバタイズでは、Cloud SQL VPC VPC C が、中間 VPC VPC B を使用してメイン 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 に接続するには、次の手順に沿って操作します。
- 中間 VM に SOCKS5 サーバーをインストールして構成します。SOCKS5 サーバーの例として、Dante があります。
- 任意のポートを使用して SOCKS5 サーバーを構成し、外部接続と内部接続の両方に対して VM の
ens4
ネットワーク インターフェースにバインドします。 - 適切な IP アドレスまたは範囲から SOCKS サーバーの構成ポートへの TCP トラフィックを許可するように、VPC のファイアウォールを構成します。
- 外部クライアントに Cloud SQL Auth Proxy をインストールします。
ALL_PROXY
環境変数を中間 VM の IP アドレスに設定し、ポートを SOCKS サーバーで使用されるものに設定して、外部クライアントで Cloud SQL Auth Proxy を実行します。ALL_PROXY=socks5://$IP_ADDRESS:$PORT cloud-sql-proxy $INSTANCE_CONNECTION_NAME
このコマンドを実行するには、次の変数を置き換えます。
INSTANCE_CONNECTION_NAME
: Cloud SQL インスタンス名(project:region:instance-id
形式)。IP_ADDRESS
: 接続 IP アドレス。ピアリングされた VPC から接続する場合は、中間 VM の内部 IP アドレスを使用します。それ以外の場合は、その外部 IP アドレスを使用します。PORT
: 接続で使用されているポート。
たとえば、次のコードは、IP アドレス
198.51.100.1
とポート1080
で実行されている SOCKS サーバーを使用してインスタンスに接続するように Cloud SQL Auth Proxy を構成します。ALL_PROXY=socks5://198.51.100.1:1080 cloud-sql-proxy $INSTANCE_CONNECTION_NAME
```
psql -h 127.0.0.1 -p 5432 -U postgres
```
SOCKS5 プロキシのパフォーマンスは、使用可能な CPU とメモリに依存します。設定が大規模であるほど、またプロキシを使用するアプリケーションが多いほど、SOCKS5 プロキシのインスタンスのより多くのデプロイが必要になります。
Cloud SQL Auth Proxy をサービスとして使用して接続する
Cloud SQL Auth Proxy を外部クライアントの代わりに中間 VPC にインストールして実行し、プロトコル対応プロキシ(接続プーラー)とペアリングすることで、安全な接続を有効にできます。接続プーラーの例には、PgBouncer や Pgpool-II(PostgreSQL のみ)などがあります。
この接続方法により、アプリケーションは、構成された SSL を使用してプーラーに直接接続できます。プーラーは、Cloud SQL Auth Proxy を使用して 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 を使用してインスタンスに接続するをご覧ください。