已搭建HA VPN,如何配置GCP DMS实现AWS RDS到CloudSQL无停机同步?
解决CloudSQL无法访问AWS RDS的配置方案
问题根源
CloudSQL所在VPC与DMS所在VPC的对等连接不会自动同步AWS子网的路由,且CloudSQL的VPC需要明确配置指向AWS的路由规则,同时要确保路由、防火墙、安全组的规则都匹配。
1. 配置CloudSQL所属VPC的路由表
- 找到CloudSQL实例绑定的VPC网络(在CloudSQL控制台的「网络」标签查看)
- 进入该VPC的路由表页面,添加一条路由:
- 目标IP范围:AWS RDS所在的私有子网段(例如
10.2.0.0/16) - 下一跳:选择HA VPN的隧道接口(如
vpn-tunnel-xxxx)
- 目标IP范围:AWS RDS所在的私有子网段(例如
- 确保该路由优先级无冲突,且未被其他路由覆盖
2. 检查VPC对等连接的路由规则
- 针对DMS与CloudSQL的VPC对等连接:
- 开启双方的「自定义路由导入」和「自定义路由导出」选项
- 确认DMS所在VPC的AWS子网路由已被导出到对等连接,且CloudSQL所在VPC已导入该路由(如果手动添加了CloudSQL VPC的路由,此步可作为校验)
3. 验证防火墙与安全组规则
- GCP侧:CloudSQL所在VPC的出站防火墙规则需允许访问AWS RDS的端口(默认3306)
- AWS侧:RDS的安全组需允许来自CloudSQL私有IP段的入站连接到对应端口
- 测试验证:在CloudSQL的VPC中创建临时VM,尝试连接RDS——如果VM能连,说明CloudSQL的网络配置需检查;如果VM也连不上,排查路由或防火墙问题
4. 备选连接方式(简化配置)
如果VPC peering配置繁琐,可改用:
- 将DMS部署在与VPN同VPC的子网中,直接通过VPN访问RDS,同时确保CloudSQL的VPC与该VPC有对等连接,允许DMS访问CloudSQL私有IP
- 临时为CloudSQL分配公有IP,通过公网访问RDS(需AWS RDS安全组允许GCP公网IP段,仅临时使用,迁移完成后关闭)
验证命令
用GCloud CLI确认路由是否生效:
gcloud compute routes list --filter="network=projects/[你的GCP项目ID]/global/networks/[CloudSQL的VPC名称]"
内容的提问来源于stack exchange,提问作者Yorick
相关产品推荐
相关产品推荐

