您可以通过在源数据库和目标数据库的专用 IP 地址之间建立连接,通过专用网络迁移数据。 如需为目标数据库配置专用 IP 地址,您可以使用以下两种方法之一:使用专用服务访问通道和 VPC 对等互连,或使用 Private Service Connect。
每种连接方法都有其独特的优势和缺点。请务必选择最适合您场景的方法。如需详细了解 Cloud SQL 中的专用服务访问通道和 Private Service Connect, 请参阅 Cloud SQL 文档中的 专用 IP 概览。
使用 VPC 对等互连配置连接
VPC 对等互连的工作原理是配置 VPC 以相互通信。如果您的来源位于 Cloud SQL 或 Compute Engine 中的同一 Google Cloud 项目中,则目标可以直接与来源通信。 如果您的来源位于 VPN 内(例如在 AWS 中或您自己的本地 VPN 中),请配置来源 VPN 和 Google Cloud VPN,以便其互相配合。如需了解详情,请参阅 通过 VPN 连接 VPC。不支持 VPC 链接。如果您的来源位于其他 Google Cloud 项目中,请参阅共享 VPC 概览,了解如何将多个项目中的资源连接到公用 VPC 网络以进行 VPC 对等互连。
源数据库服务器的防火墙必须配置为允许为VPC 网络(Cloud SQL 目标实例将使用该网络)的专用服务连接分配的整个内部 IP 地址范围。
如要在控制台中查找内部 IP 范围 ,请执行以下操作:
进入 控制台中的 VPC 网络页面。 Google Cloud
选择要使用的 VPC 网络。
依次选择专用服务访问通道 > 为服务分配的 IP 范围。
找到与 servicenetworking-googleapis-com 创建的连接关联的内部 IP 范围 。
pg_hba.conf 文件的复制连接部分或源数据库上 AWS RDS 中的安全组定义已更新,以接受来自 Cloud SQL VPC 的 IP 地址范围的连接。
VPC 对等互连使用 专用服务访问通道,
该通道必须为使用 VPC 对等互连的每个项目配置一次。建立 private services access 后,请测试迁移作业以验证连接。
为 Database Migration Service 配置专用服务访问通道
如果您要为任何 Database Migration Service 实例使用专用 IP 地址,只需为具有 Database Migration Service 实例或需要连接到 Database Migration Service 实例的每个 Google Cloud 项目配置一次专用服务访问通道。
建立专用服务访问通道需要有
compute.networkAdmin IAM 角色。为您的网络建立专用服务访问通道后,您不再需要 compute.networkAdmin IAM 角色就可将实例配置为使用专用 IP。
要使用专用服务访问通道,您必须先分配内部 IP 地址范围,然后创建专用连接,再导出自定义路由。
分配的范围是预留的 CIDR 块,不能在您的本地 VPC 网络中使用。创建专用连接时,您必须指定分配。专用连接将您的 VPC 网络与底层(“服务提供方”)VPC 网络相链接。
创建专用连接后,VPC 网络和服务提供方网络仅交换子网路由。您必须导出 VPC 网络的自定义路由,使服务提供方的网络可以导入这些路由,并将流量正确地路由到您的本地网络。
对等互连配置用于建立连接到另一个 VPC 网络的意图。 在您的网络和另一个网络都具有彼此的对等互连配置之前,这两个网络不会连接。在另一个网络具有与您的网络对等互连的相应配置后,对等互连状态会在两个网络中都更改为“活跃”,并且这两个网络会连接。如果另一个网络中没有匹配的对等互连配置,对等互连状态将保持“不活跃”,这表示您的网络未连接到另一个网络。
连接后,这两个网络将始终交换子网路由。如果一个对等互连网络配置为导出静态和动态自定义路由,则可以选择从该网络导入这些路由。
专用服务访问通道的配置过程分为两个部分:
- 分配 IP 地址范围。该范围涵盖您的所有实例。
- 创建从 VPC 网络到 服务提供方网络的专用连接。
分配 IP 地址范围
控制台
- 进入 VPC 网络页面 在 Google Cloud 控制台中。
- 选择要使用的 VPC 网络。
- 选择专用服务连接标签页。
- 选择为服务分配的 IP 范围标签页。
- 点击分配 IP 范围。
对于已分配的范围的名称,请指定
google-managed-services-VPC_NETWORK_NAME,其中VPC_NETWORK_NAME是 要连接的 VPC 网络的名称(例如google-managed-services-default)。 说明为可选字段。点击分配 以创建分配的范围。
gcloud
执行下列其中一项操作:
如需指定地址范围和前缀长度(子网掩码),请使用
addresses和prefix-length标志。例如,若要分配 CIDR 块192.168.0.0/16,请将地址指定为192.168.0.0,并将前缀长度指定为16。gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]若只指定前缀长度(子网掩码),请仅使用
prefix-length标志。如果您省略地址范围, Google Cloud 会自动选择您的 VPC 网络中未使用的地址范围。以下示例选择的是前缀长度为16位的未使用的 IP 地址范围。gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]
将 [VPC_NETWORK_NAME] 替换为您的 VPC 网络的名称,例如 my-vpc-network。
以下示例分配一个 IP 地址范围,这允许 VPC 网络 my-vpc-network 中的资源使用专用 IP 连接到 Database Migration Service 实例。
gcloud compute addresses create google-managed-services-my-vpc-network \
--global \
--purpose=VPC_PEERING \
--prefix-length=16 \
--network=my-vpc-network \
--project=my-project
创建专用连接
控制台
- 进入 VPC 网络页面 在 Google Cloud 控制台中。
- 选择要使用的 VPC 网络。
- 选择专用服务连接标签页。
- 选择连到服务的专用连接标签页。
- 点击创建连接 以在您的网络与服务提供方之间创建专用连接。
- 对于指定的分配范围 ,请选择一个或多个未被其他服务提供方占用的现有已分配的 范围,然后点击确定 。
- 点击连接 以创建连接。
gcloud
创建专用连接。
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=google-managed-services-[VPC_NETWORK_NAME] \ --network=[VPC_NETWORK_NAME] \ --project=[PROJECT_ID]将
[VPC_NETWORK_NAME]替换为您的 VPC 网络的名称,并将[PROJECT_ID]替换为包含您的 VPC 网络的项目的 ID。该命令会启动一个长时间运行的操作,并返回操作名称。
检查操作是否成功。
gcloud services vpc-peerings operations describe \ --name=[OPERATION_NAME]将
[OPERATION_NAME]替换为从上一步返回的操作名称。
创建专用连接时,您可以指定多个分配范围。举例来说,如果一个范围已用尽,则您可以分配额外的分配范围。该服务会按您指定的顺序使用所提供的所有范围中的 IP 地址。
导出自定义路由
更新现有 VPC 网络对等互连连接,以更改 VPC 网络是向对等 VPC 网络导出还是从对等 VPC 网络导入自定义路由。
仅当对等互连网络也导出自定义路由时,您的网络才会导入自定义路由,并且仅当对等互连网络导入自定义路由时,才会接收到自定义路由。
控制台
- 前往 Google Cloud 控制台中的“VPC 网络对等互连”页面。
前往“VPC 网络对等互连”页面 - 选择要更新的对等互连连接。
- 点击修改 。
- 通过选择或取消选择导入自定义路由 或导出自定义路由 来更新自定义路由设置。
- 点击保存 。
gcloud
更新对等互连连接,以更改自定义路由的导入或导出设置。
gcloud compute networks peerings update [PEERING-NAME] \
--network=[MY-LOCAL-NETWORK] \
[--[no-]import-custom-routes] \
[--[no-]export-custom-routes]
授予 roles/servicenetworking.serviceAgent 角色
gcloud beta services identity create \
--service=servicenetworking.googleapis.com \
--project=project-id
gcloud projects add-iam-policy-binding project-id \
--member="service-account-prefix@service-networking.iam.gserviceaccount.com" \
--role="roles/servicenetworking.serviceAgent"
使用 Private Service Connect 接口配置连接
对于同构迁移,Cloud SQL 可以使用 Private Service Connect 接口通过专用网络建立连接。此连接方法仅在您 迁移到现有实例时可用。
如需使用 Private Service Connect 接口,请执行以下操作:
创建一个已启用 Private Service Connect 的 Cloud SQL 实例。 请参阅 Cloud SQL 文档中的创建已启用 Private Service Connect 的实例 。
为实例配置 Private Service Connect 以实现出站连接。从总体上讲,此过程涉及:
2.1. 在 VPC 网络中创建网络连接,您可以在该网络中访问源数据库的专用 IP 地址。请注意,为网络连接预留的子网范围必须在 RFC 1918 范围内。
2.2. 将网络连接分配给 Cloud SQL for MySQL 目标实例。
如需了解完整过程,请参阅 Cloud SQL 文档中的 配置出站连接 。