我正在使用两个 Google 托管服务,即 Google Cloud SQL 和 Google Cloud Data Fusion。云数据融合私有 IP 实例部署在 Google 托管 VPC(我们称之为 A)内,该 VPC 与我的自定义 VPC(我们称之为 B)对等。
现在我的 Cloud SQL Postgres 也安装在 Google 管理的 VPC(我们称之为 C)中。
A <-> B(窥视)B <-> C(窥视)
由于 A 和 C 是 Google 管理的 VPC,我无法对等连接它们。我应该怎么做才能让 A 可以访问 C?
答案1
根据文档,与您的理解一致,对等连接不是可传递的,Google 建议在你的 VPC 中设置代理实例,以便两者可以通过代理进行通信。
他们的指示包括:
- 使用内部 IP 和公共 IP(内部 IP 只需要私有 Google 访问)在 VPC 中创建运行 TCP 代理的 VM 实例
- 创建防火墙规则,允许从 Cloud Data Fusion 对等 VPC IP 范围通过您想要的任何端口 (TCP) 访问您的虚拟机的流量。
- 将虚拟机的内部 IP 提升为静态 IP。
- 在虚拟机上运行代理,以便与防火墙中打开的任何端口的连接都代理到数据库服务器监听端口。
- 将 Cloud Data Fusion 连接到代理的静态内部 IP。
查阅链接的文档以获取使用gcloud
或其他方式创建此代理的具体示例。
文档中提到的替代方法(取决于您的 Cloud SQL 实例或 Cloud Data Fusion 实例是否具有公共 IP 或私有 IP)包括:
- 公共 Cloud Data Fusion 实例到公共 Cloud SQL 实例(通过使用公共 Cloud SQL 代理或在授权网络中将 0.0.0.0/0 范围列入允许名单)。请参阅 Cloud SQL 的公共 IP 连接选项。
- 私有 Cloud Data Fusion 实例和公共 Cloud SQL 实例(通过在授权网络中使用公共 Cloud SQL 代理)。
- 一个公共 Cloud Data Fusion 实例和一个私有 Cloud SQL 实例。