【问题标题】:AWS ECS - Can't connect to RabbitMQ EC2 instance from ECS container instance on the same subnetAWS ECS - 无法从同一子网上的 ECS 容器实例连接到 RabbitMQ EC2 实例
【发布时间】:2019-05-26 09:11:12
【问题描述】:

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

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

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

【问题讨论】:

  • 您是否尝试连接到 127.0.0.1?你应该使用rabbitmq主机ip地址。

标签: amazon-web-services docker amazon-ec2 rabbitmq amazon-ecs


【解决方案1】:

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

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

【讨论】:

  • 在 Docker 上下文中,127.0.0.1 通常解析为 此容器,这与整个机器不同。
  • @DavidMaze 是的物理机/虚拟机/容器,127.0.0.1 将解析为“本地”环境,这在所问问题的上下文中肯定是不正确的。
  • @MarkB 感谢您的回答!确实ipaddr 不正确,我的环境变量中有错字。
猜你喜欢
  • 1970-01-01
  • 2019-04-16
  • 2020-02-02
  • 2021-08-10
  • 2016-09-22
  • 2023-03-30
  • 2017-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多