如何让ECS服务器不通过公网端点直接连接AWS RDS?
让ECS通过VPC内网连接AWS RDS的方案
你的猜测是正确的——当前使用的是RDS的公网端点,ECS请求确实走公网访问,这会增加网络延迟,还可能产生额外的公网流量成本。以下是实现内网直连的具体步骤:
- 确认VPC归属一致性:首先确保你的ECS集群和RDS实例处于同一个AWS VPC内,这是内网连接的前提。如果两者在不同VPC,需要先通过VPC对等连接打通网络,不过优先建议将资源部署在同一VPC。
- 启用/获取RDS内网端点:
- 登录AWS控制台进入RDS服务,找到目标RDS实例。
- 进入「连接与安全性」标签页,查看现有端点:如果只有公网端点,点击「修改」按钮。
- 在「连接」配置区域,勾选「VPC」选项(选择与ECS相同的VPC),若不需要公网访问可取消「公网可访问」的勾选(如果仍需本地连接,保留该选项即可,同一VPC内的请求会自动解析内网IP)。
- 保存修改,等待RDS实例完成配置更新(可能需要重启)。
- 更新完成后,在「连接与安全性」中会生成内网端点(格式类似
mydb-instance.xxxxxx.us-east-1.rds.amazonaws.com)。
- 配置ECS使用内网端点:将ECS任务/应用的数据库连接地址替换为上述内网端点,同时确保:
- ECS任务所在的VPC安全组,允许出站访问RDS实例的安全组(开放对应数据库端口,比如MySQL的3306、PostgreSQL的5432)。
- RDS实例的安全组,允许来自ECS安全组的入站请求(同端口)。
- 验证连接有效性:在运行中的ECS容器内执行
nslookup <内网端点>,确认解析结果为内网IP(如172.x.x.x),再测试数据库连接,验证性能提升。
如果需要同时保留本地对公网RDS的访问,无需关闭「公网可访问」——同一VPC内的ECS会自动优先解析内网IP,外部访问仍走公网,两者互不冲突。
内容的提问来源于stack exchange,提问作者Matheus
相关产品推荐
相关产品推荐

