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

跨VPC配置AWS Fargate安全连接RDS的问题排查

问题分析与解决方案

你的核心问题其实分为两个关键部分:跨VPC的RDS私有DNS解析异常,以及安全组的合规访问控制配置。咱们一步步拆解解决:

1. 修复DNS解析到私有IP的问题

你已经建立了VPC对等连接,但ECS仍解析到RDS公网IP,这是因为默认情况下,VPC对等连接未开启跨VPC的私有DNS解析能力。需要补充以下配置:

  • 打开VPC控制台,找到你的VPC对等连接,进入选项标签页:
    • 启用「允许VPC-1解析VPC-2的私有DNS主机名」
    • 同时确保VPC-2侧也启用了「允许VPC-1解析本VPC的私有DNS主机名」
  • 确认RDS终端节点:RDS默认终端节点在同VPC内会自动解析私有IP,但跨VPC必须依赖对等连接的DNS解析支持,开启上述选项后,VPC-1内的ECS就能通过RDS默认域名解析到它的私有IP了。

2. 配置正确的安全组与路由规则

放弃用NAT网关IP做安全组规则的方案——VPC对等连接的核心价值就是让两个VPC的私有网络直接通信,完全不需要走公网或NAT:

  • 路由表配置:
    • 在VPC-1的路由表中,添加路由:目标为VPC-2的私有CIDR(比如192.168.0.0/16),下一跳选择你的VPC对等连接ID
    • 在VPC-2的路由表中,添加路由:目标为VPC-1的私有CIDR,下一跳同样选择对等连接ID
  • RDS安全组配置:
    • 编辑RDS的安全组,添加入站规则:协议选择数据库对应协议(如TCP),端口填你的数据库端口(如3306、5432),来源设置为VPC-1的私有CIDR范围(而非0.0.0.0/0或NAT IP)
  • ECS任务安全组:确保ECS任务使用的安全组允许出站到RDS的数据库端口(目标可设为VPC-2的CIDR或RDS安全组)

3. 补充:之前NAT网关方案失败的原因(可选)

你之前尝试让ECS出站流量走NAT导致部署失败,大概率是因为Fargate任务需要拉取容器镜像(比如从ECR、Docker Hub),但NAT网关的安全组或路由未允许这些出站请求。不过这个方案本身没必要,对等连接的私有通信更安全高效,优先用上面的方案即可。

替代方案:AWS PrivateLink(若对等连接不适用)

如果因为跨账户、跨区域等原因无法使用VPC对等连接,可以考虑用AWS PrivateLink创建RDS的接口端点:

  • 在VPC-2中创建RDS的Interface VPC Endpoint,然后在VPC-1中通过端点服务的私有域名访问RDS,流量完全在AWS私有网络内,无需对等连接,同时安全组可限制仅允许VPC-1的CIDR访问端点。

内容的提问来源于stack exchange,提问作者michal.slocinski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:34:46