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

公有子网EC2如何连接私有子网内的MySQL RDS实例

EC2(公有子网)与私有子网RDS MySQL通信最佳实践

同VPC下的标准配置方案走纯内网通信,不需要给RDS暴露公网,安全性和延迟表现都是最优的,配置步骤如下:

1. 安全组规则配置(核心访问控制)

  • 保持RDS不绑定公网IP、不开启公网访问开关,私有子网资源默认不需要公网暴露能力
  • 为RDS创建独立的专属安全组,入站规则仅放通MySQL服务端口3306,源地址不要设置为0.0.0.0/0,也不要手动填EC2的公网/私网IP,直接指定EC2实例绑定的安全组ID作为源即可。这种配置方式不需要维护IP列表,后续EC2更换IP、扩容多台同安全组的EC2实例,都不需要调整RDS的安全组规则
  • RDS安全组的出站规则保持默认的全放通即可,不需要额外修改
  • EC2所在公有子网的安全组,入站规则按业务需求配置(比如Web服务开80/443、SSH仅放通办公网IP段),出站保持默认全放通即可,安全组是有状态的,EC2主动发起的内网请求响应会自动放行,不需要额外配置入站规则。

2. 路由与网络ACL配置

  • 校验RDS所在私有子网绑定的路由表,不要配置指向互联网网关(IGW)的0.0.0.0/0路由,确保私有子网无公网直通能力
  • 确认两个子网关联的路由表都保留VPC创建时自动生成的本地路由:目标为VPC整体CIDR段,下一跳为local,同VPC跨子网通信全靠这条路由实现,不要手动删除
  • 如果你没有自定义修改过网络ACL,默认全放通的规则已经满足通信需求;如果之前调整过NACL规则,需要补充两条无状态规则:一是入站方向允许EC2所在公有子网CIDR段访问RDS的3306端口,二是出站方向允许RDS向EC2所在子网段返回1024-65535临时端口的响应流量。

3. 连通性校验

  • 连接RDS时不要使用公网端点,直接复制RDS控制台给出的VPC内网端点地址,内网端点会自动解析到RDS的私有IP,全程走VPC内网链路
  • 首次配置完成后,在EC2实例内安装MySQL客户端,执行命令测试连通性:
    mysql -h <你的RDS内网端点地址> -P 3306 -u <数据库用户名> -p
    
    输入密码后能正常进入MySQL命令行即代表配置生效。

常见避坑提示

  • 不要为了省事给私有子网RDS开启公网访问,既会把数据库暴露在公网攻击面下,还会产生额外的公网流量费用
  • 不要将RDS安全组的源设置为EC2的公网IP,EC2如果是动态公网IP,实例重启后IP变更会直接导致数据库连接中断,用安全组作为源是最稳定的配置方式
  • 如果配置完成后仍无法连接,按优先级排查:首先检查RDS安全组入站端口、源配置是否正确,其次检查路由表的local本地路由是否被误删,最后检查NACL规则是否拦截了对应端口的流量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:15:29