将实例连接到多个 VPC

本页面介绍了如何在传递性对等互连 VPC 中连接到 Cloud SQL 实例。

Cloud SQL 提供了以下方法来供您使用专用 IP 将 Cloud SQL 实例连接到多个 VPC:

如需详细了解 Cloud SQL 实例和多个 VPC,请参阅多个 VPC 中的 Cloud SQL 实例

使用自定义路由通告连接

您可以使用 Cloud Router 手动通告经过中间 VPC 的两个网络之间的路由,以将多个 VPC 连接到您的 Cloud SQL 实例。这两个 VPC 必须使用虚拟专用网 (VPN)、Cloud Interconnect 或任何其他 Cloud Router 支持的网络进行连接。

自定义路由通告

借助自定义路由通告,您的 Cloud SQL VPC (VPC C) 会使用中间 VPC (VPC B) 连接到主 VPC (VPC A)。 您可以通过以下方式配置这些网络之间的共享路由:

  • 您可以使用 Cloud Router 手动通告经过中间 VPC 的两个网络之间的路由。如需详细了解如何配置 Cloud Router 以手动通告路由,请参阅传输网络

  • 您可以创建两个相互连接的高可用性 VPC 网关,以桥接两个不同的 VPC,并配置 Cloud Router 路由器以便在它们之间共享路由。如需详细了解如何设置高可用性 VPC 网关,请参阅创建高可用性 VPC 网关以连接 VPC 网络

我们建议您使用自定义路由通告,通过 Cloud Router 将多个 VPC 连接到您的 Cloud SQL 实例。

使用中间代理 (SOCKS5) 连接

您可以在中间 VPC 上设置中间代理(如 SOCKS5 代理)以及 Cloud SQL Auth 代理(在客户端和 Cloud SQL 实例之间的主 VPC 中)。这样一来,中间节点便可以将加密流量从 Cloud SQL Auth 代理转发到 Cloud SQL 实例。

使用中间代理进行连接。

如需使用中间代理连接到多个 VPC,请按照以下步骤操作:

  1. 在中间虚拟机上安装和配置 SOCKS5 服务器。SOCKS5 服务器的一个示例是 Dante
  2. 使用任何端口配置 SOCKS5 服务器,以绑定到用于外部和内部连接的虚拟机的 ens4 网络接口。
  3. 配置 VPC 的防火墙,以允许从相应 IP 地址或范围流向 SOCKS 服务器配置的端口的 TCP 流量。
  4. 在外部客户端上安装 Cloud SQL Auth 代理。
  5. 在外部客户端上运行 Cloud SQL Auth 代理,并将 ALL_PROXY 环境变量设置为中间虚拟机的 IP 地址,将端口设置为 SOCKS 服务器使用的端口。

    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 进行连接,请使用中间虚拟机的内部 IP 地址。 否则,请使用其外部 IP 地址。
    • PORT:您的连接使用的端口。

    例如,以下代码可将 Cloud SQL Auth 代理配置为使用在 IP 地址 198.51.100.1 和端口 1080 上运行的 SOCKS 服务器连接到实例。

    ALL_PROXY=socks5://198.51.100.1:1080 cloud-sql-proxy $INSTANCE_CONNECTION_NAME
    
    

SOCKS5 代理的性能取决于可用的 CPU 和内存。 对于较大的设置,或者有更多应用将使用代理,您可能需要部署更多 SOCKS5 代理实例。

使用 Cloud SQL Auth 代理即服务连接

您可以在中间 VPC(而不是外部客户端)上安装并运行 Cloud SQL Auth 代理,并通过将代理与协议感知代理(也称为连接池程序)配对来启用安全连接。连接池程序的示例包括 PGbouncerPgpool-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 连接到实例