AWS ECS - 无法从同一子网上的 ECS 容器实例连接到 RabbitMQ EC2 实例

AWS ECS - Can't connect to RabbitMQ EC2 instance from ECS container instance on the same subnet

我正在构建一个应用程序,我将在 ECS container instance 上有多个 Docker services 运行 通过 RabbitMQ 相互通信,后者在单独的 EC2 instance 上运行] 在同一个 VPC 和同一个子网中。 RabbitMQ 安全组配置为允许来自该子网的所有流量。

但是,当我启动 service 并尝试连接到 RabbitMQ 时,我收到一条错误消息 ECONNREFUSED 127.0.0.1:5672。这是我正在使用 t 连接 amqp://username:password@ipaddr:5672/?heartbeat=60 的 url。 Docker 的网络模式是 default/Bridge.

我正在通过环境变量设置连接 url,我 ssh 进入 ECS 容器实例,然后 docker exec -it cntainerID /bin/bash 并且能够验证环境变量已设置。

127.0.0.1 不是 EC2 RabbitMQ 服务器的 IP 地址。该地址将始终指向代码 运行 所在的任何机器,它被称为 "localhost"。

您需要使用 EC2 服务器 运行 RabbitMQ 的 私有 IP