概览
如需在 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 以便相互通信。 |
|
|
连接限制
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 代理连接方法。在 Google Cloud 控制台中,让数据库迁移服务生成脚本后,请为用于创建 TCP 代理实例的命令添加另一个网络接口,并将其配置为与源实例的 VPC 相匹配。这样,代理便可同时连接到源 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 连接方法。