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

ECS Fargate中Docker容器无法连接RDS数据库求助排查

ECS Fargate容器无法连接RDS实例排查求助

过去3小时我一直在尝试让ECS Fargate上的Docker容器连接到RDS实例,但始终失败,不清楚问题出在哪。

我使用Ruby Docker镜像,数据库配置文件config/database.yml内容如下:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5
production:
  <<: *default
  host: <%= ENV['DATABASE_URL'] %>
  username: <%= ENV['DATABASE_USERNAME'] %>
  password: <%= ENV['DATABASE_PASSWORD'] %>
  database: my_project_db

环境变量配置:

DATABASE_URL=myprojectdbinstance.c42n4hggvli1.eu-central-1.rds.amazonaws.com

该值为RDS的端点URL,我的数据库标识符是myprojectdbinstance,初始数据库名称为my_project_db。

运行ECS任务时出现以下错误:

ActiveRecord::NoDatabaseError: We could not find your database: myprojectdbinstance.c42n4hggvli1.eu-central-1.rds.amazonaws.com. Which can be found in the database configuration file located at config/database.yml

PG::ConnectionBad: could not translate host name "myprojectdbinstance.c42n4hggvli1.eu-central-1.rds.amazonaws.com" to address: Name does not resolve

我已经做了这些配置:

  • ECS与RDS处于同一VPC中
  • ECS任务属于projects-alb-sg安全组,RDS已配置接受该安全组的入站流量
  • VPC已启用DNS解析和DNS主机名功能
  • RDS实例设置为公开访问
  • 创建了与ECS任务所在子网一致的DB子网组

我试过各种可能的配置,但问题依然存在,请问我遗漏了什么配置?


更新信息

  1. 已确认VPC的DNS解析功能已启用
  2. 在同VPC内的EC2实例上执行nslookup命令,输出结果如下:
nslookup myprojectdbinstance.c42n4hggvli1.eu-central-1.rds.amazonaws.com
Server:         10.0.0.2
Address:        10.0.0.2#53

Non-authoritative answer:
myprojectdbinstance.c42n4hggvli1.eu-central-1.rds.amazonaws.com   canonical name = ec2-18-193-32-4.eu-central-1.compute.amazonaws.com.
Name:   ec2-18-193-32-4.eu-central-1.compute.amazonaws.com
Address: 10.0.1.233
  1. 数据库安全组已配置允许来自安全组sg-047f1acd163d6f380的访问
  2. ECS任务使用的安全组为sg-047f1acd163d6f380,配置正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:22:20