概览
如需在 Database Migration Service 中创建迁移,必须在源实例和 AlloyDB 目标实例之间建立连接。系统支持多种方法。请选择最适合特定工作负载的方法。| 网络方法 | 说明 | 优点 | 缺点 |
|---|---|---|---|
| IP 许可名单 |
此方法的工作原理是将源数据库服务器配置为接受来自 Cloud SQL 实例的传出 IP 的连接 。 如果您选择此方法,Database Migration Service 会在迁移创建期间引导您 完成设置过程。 |
|
|
| 通过云托管式虚拟机的代理 - 反向 SSH 隧道 |
通过 安全的反向 SSH 隧道建立从目标到来源的连接。 需要在 Google Cloud 平台项目中提供堡垒主机虚拟机,以及一台可连接到来源的机器 (例如网络上的笔记本电脑)。 Database Migration Service 会在迁移创建时收集所需的信息,并自动生成用于设置所有内容的脚本。 |
|
|
| 通过云托管式虚拟机的 TCP 代理 |
通过云托管式虚拟机使用 TCP 代理建立从目标到来源的连接。 Database Migration Service 会在迁移创建时收集所需的信息,并自动生成用于设置所有内容的脚本。 适用于来源采用旧网络架构的 AlloyDB 迁移。 |
|
|
| VPC 对等互连 |
此方法的工作原理是配置 VPC 以相互通信。 |
|
|
| Private Service Connect 接口 |
借助 Private Service Connect 接口,您的目标数据库可以启动与来源数据库的专用 IP 的连接,而不会消耗对等互连配额。相反,此连接方法 会利用您在 VPC 中创建的网络连接。 |
|
如需详细了解 AlloyDB for PostgreSQL 中的专用服务访问通道和 Private Service Connect,请参阅 AlloyDB for PostgreSQL 文档中的专用 IP 概览。 |
连接限制
PostgreSQL 到 AlloyDB 连接具有以下限制:
- AlloyDB 支持使用 专用服务访问通道 进行专用连接。不支持为集群分配公共 IP 地址。
- 创建 AlloyDB 集群后,您无法更改与该集群对等互连的 VPC。
- 由于 AlloyDB 使用专用服务访问通道(内部使用 VPC 对等互连),因此不支持 传递性对等互连。您的 AlloyDB 集群只能访问与其对等互连的同一 VPC 中的内部 IP 地址。如需访问其他 VPC,您必须使用中间代理。如需了解详情,请参阅以下部分。
常见连接场景和解决方案
从采用旧提供方网络架构的 Cloud SQL 实例迁移
如需从采用旧提供方网络架构的 Cloud SQL for PostgreSQL 实例迁移,您必须使用中间代理建立连接。这是因为来源 Cloud SQL 实例和 AlloyDB 目标之间无法直接连接。 您可以设置自己的代理解决方案,但我们建议使用 Database Migration Service 提供的自动生成的脚本设置 TCP 代理虚拟机。 请参阅 TCP 代理连接方法。
从同一 Google Cloud 项目但不同 VPC 中的来源迁移
由于 AlloyDB 集群所在的 VPC 在集群创建后无法更改,因此您有以下选项:
建议的选项是将来源实例的 VPC 更改为与目标实例的 VPC 匹配。例如,如果您想将 Cloud SQL 实例迁移到 AlloyDB,请更新 Cloud SQL VPC 以与 AlloyDB VPC 匹配。
如果无法更改来源实例的 VPC 以与目标实例的 VPC 匹配,请使用中间虚拟机 (VM) 作为代理。您可以设置自己的代理解决方案,但我们建议使用 TCP 代理连接方法。在 Database Migration Service 于 Google Cloud 控制台中生成脚本后,请向用于创建 TCP 代理实例的命令添加另一个网络接口,并将其配置为与来源实例的 VPC 匹配。这样,代理就可以连接到来源和目标 VPC。
如需添加另一个网络接口,请将
--network-interface network=SOURCE_NETWORK_NAME附加到脚本中显示的gcloud compute instances create-with-container命令。用于创建代理的示例命令:
gcloud compute instances create-with-container … \ --network-interface subnet=DESTINATION-SUBNET-NAME \ --network-interface network=SOURCE-NETWORK-NAME
替换以下内容:
- DESTINATION-SUBNET-NAME:目标子网的名称。
- SOURCE-NETWORK-NAME:来源网络的名称。
如需了解详情,请参阅创建具有多个网络接口的虚拟机实例。
通过公共互联网迁移
当您从本地实例或从 其他云服务提供商迁移时,如果不存在与 的现有 VPN 或 Interconnect 连接,建议使用此方法。 Google Cloud如需使用此方法,您需要将目标 AlloyDB 集群配置为使用出站公共 IP 地址。
从不同 Google Cloud 项目中的来源迁移
如需从不同 Google Cloud 项目中的来源迁移,您必须通过互联网迁移,或者,对于内部 Google Cloud 连接,使用共享 VPC。从下列选项中选择一项:
使用共享 VPC,无需代理。如果您希望 AlloyDB 集群位于共享 VPC 中,只需在创建集群时选择来源所在的 VPC 即可。这样,来源和目标就可以直接连接。
使用共享 VPC,需要代理。如果您不希望 AlloyDB 集群位于共享 VPC 中,则必须使用中间代理。您可以设置自己的代理解决方案,但我们建议使用 TCP 代理连接方法。请按照以下准则在共享 VPC 上创建具有额外网络接口的 TCP 代理。
迁移时不允许目标访问来源的网络
当您从本地网络迁移时,如果担心向入站流量开放网络的防火墙,建议使用此方法。 Google Cloud 对于此场景,您可以使用 Compute Engine 实例作为中间代理来设置反向代理。我们建议使用反向 SSH 连接方法。