【问题标题】:Amazon ECS w/ RabbitMQ带有 RabbitMQ 的 Amazon ECS
【发布时间】:2019-01-04 17:37:58
【问题描述】:

我正在尝试将本地的 docker-compose 设置转换为带有任务的 ECS 集群。我的 docker-compose 设置如下所示:

version: '3'

services:
  rabbit-mq-service:
    image: rabbitmq:3.6-management
    ports:
      - "15672:15672"
      - "5672:5672"
    environment:
      RABBITMQ_DEFAULT_USER: ***
      RABBITMQ_DEFAULT_PASS: ***
  service-a:
    image: service-a:latest
    depends_on:
      - rabbit-mq-service
    restart: on-failure
    command: --spring.profiles.active=docker --spring.rabbitmq.host=rabbit-mq-service
  service-b:
    image: service-b:latest
    depends_on:
      - rabbit-mq-service
    restart: on-failure
    command: --spring.profiles.active=docker --spring.rabbitmq.host=rabbit-mq-service

这是非常简单的东西,它在 Docker 中运行良好。我可以运行 docker-compose up 得到rabbitmq + 2个服务,两个服务都可以连接到rabbit服务器。

现在,只要我硬编码 rabbit 服务器的主机名,我就可以将 service-a 和 service-b 部署到 ECS 集群。这意味着我需要有一个单独的 EC2 实例(或类似的东西)运行兔子服务器。我真的希望我的集群有一个兔子服务器,并让我的实例能够连接到它。到目前为止,没有运气。

将 Rabbit 服务器放在 ECS 集群之外是不是更好

有什么建议吗?

【问题讨论】:

    标签: docker rabbitmq amazon-ecs


    【解决方案1】:

    两种选择:

    1. 是的,在 ECS 集群外运行 Rabbit 服务器。由于它具有与之关联的持久状态,因此很难在节点之间移动或复制,因此在 ECS 中管理它并没有太多好处。

    2. 向 AWS 询问 deploy a load balancer in front of RabbitMQ in ECS。您可以为该负载均衡器提供其自己的 DNS 名称(通过 Route 53)或使用其默认名称,但无论哪种方式,您都可以使用该 DNS 名称来引用 RabbitMQ,它将路由实际运行它的任何主机。

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 2016-04-04
      • 2019-12-10
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多