You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从本地连接VPC内RDS实例,如何确保其部署在公网子网?

AWS RDS 公网访问与子网部署问题解答

问题场景

我在包含3个公网子网和3个私网子网的VPC中创建了2个RDS实例,均开启了“公网可访问”选项,但仅能从本地电脑连接其中一个,另一个仅能通过VPC内的EC2实例访问。推测一个RDS实例位于公网子网,无法本地访问的那个位于私网子网。

核心问题:

  1. 创建RDS实例时能否确保其部署在公网子网?
  2. 若不能,能否在不将私网子网改为公网子网的前提下,将该实例迁移至公网子网?

目前临时解决方案:新建了仅含公网子网的VPC并重新创建了RDS实例。

解答

1. 创建时确保RDS部署在公网子网的方法

RDS实例创建时无法直接指定具体子网,但可以通过自定义RDS子网组实现精准控制:

  • 提前创建一个仅包含公网子网的RDS子网组(创建子网组时,只勾选VPC内的公网子网)
  • 创建RDS实例时,选择这个自定义子网组,RDS会从该子网组的公网子网中分配部署位置(多AZ实例会跨子网,但均为你指定的公网子网)
  • 同时确保开启“公网可访问”选项,且公网子网已关联互联网网关(IGW)的路由表,此时RDS会自动分配弹性公网IP(EIP),支持本地直接访问。

2. 不修改私网子网的前提下迁移RDS到公网子网的方案

已部署在私网子网的RDS无法直接迁移子网,但可以通过以下两种方式实现迁移,且完全不会影响原有私网子网内的EC2实例:

  • 方式一:创建只读副本并切换
    1. 针对目标RDS实例创建只读副本,创建时选择提前建好的公网子网组
    2. 等待副本数据同步完成后,将业务应用切换到只读副本
    3. 若原实例是单AZ部署,可将只读副本提升为独立的主实例,之后删除原私网子网内的RDS实例
  • 方式二:快照恢复新实例
    1. 给私网子网内的RDS实例创建手动快照
    2. 使用该快照恢复新的RDS实例,恢复时选择公网子网组并开启“公网可访问”
    3. 验证新实例数据正常后,切换业务应用到新实例,再删除原实例

补充说明

你遇到的“开了公网可访问但无法本地连接”的问题,本质是私网子网没有关联IGW的路由表——即使开启公网访问选项,RDS也无法获取公网IP,因此只能被VPC内资源访问;而公网子网有IGW路由,开启公网访问后会分配EIP,支持外部直接连接。


内容的提问来源于stack exchange,提问作者user3684747

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:57:25