インスタンスを複数の VPC に接続する

このページでは、推移的にピアリングされた VPC 間で Cloud SQL インスタンスに接続する方法について説明します。

Cloud SQL では、プライベート IP を使用して Cloud SQL インスタンスを複数の VPC に接続する次の方法があります。

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 を Cloud SQL インスタンスに接続するには、カスタムルート アドバタイズを使用することをおすすめします。

中間プロキシ(SOCKS5)を使用して接続する

中間 VPC に SOCKS5 プロキシなどの中間プロキシを、クライアントと Cloud SQL インスタンスの間のメイン VPC に Cloud SQL Auth Proxy を設定できます。これにより、中間ノードで暗号化されたトラフィックが Cloud SQL Auth Proxy から Cloud SQL インスタンスに転送されます。

中間プロキシを使用した接続。

中間プロキシを使用して複数の VPC に接続するには、次の手順に沿って操作します。

  1. 中間 VM に SOCKS5 サーバーをインストールして構成します。SOCKS5 サーバーの例として、Dante があります。
  2. 任意のポートを使用して SOCKS5 サーバーを構成し、外部接続と内部接続の両方に対して VM の ens4 ネットワーク インターフェースにバインドします。
  3. 適切な IP アドレスまたは範囲から SOCKS サーバーの構成ポートへの TCP トラフィックを許可するように、VPC のファイアウォールを構成します。
  4. 外部クライアントに Cloud SQL Auth Proxy をインストールします。
  5. 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
    
    

SOCKS5 プロキシのパフォーマンスは、使用可能な CPU とメモリに依存します。設定が大規模であるほど、またプロキシを使用するアプリケーションが多いほど、SOCKS5 プロキシのインスタンスのより多くのデプロイが必要になります。

Cloud SQL Auth Proxy をサービスとして使用して接続する

Cloud SQL Auth Proxy を外部クライアントの代わりに中間 VPC にインストールして実行し、プロトコル対応プロキシ(接続プーラー)とペアリングすることで、安全な接続を有効にできます。接続プーラーの例には、PgBouncerPgpool-II(PostgreSQL のみ)などがあります。

この接続方法により、アプリケーションは、構成された SSL を使用してプーラーに直接接続できます。プーラーは、Cloud SQL Auth Proxy を使用して Cloud SQL インスタンスにデータベース クエリを渡します。