带 RabbitMQ 的亚马逊 ECS
Amazon ECS w/ RabbitMQ
我正在尝试将本地的 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-组合起来得到rabbitmq + 2个服务,两个服务都可以连接到rabbit服务器。
现在,我可以将 service-a 和 service-b 部署到 ECS 集群,前提是我对 rabbit 服务器的主机名进行了硬编码。这意味着我需要有一个单独的 EC2 实例(或类似的东西)运行连接兔子服务器。我会 真的 希望我的集群有一个 rabbit 服务器并且让我的实例能够连接到它。到目前为止,没有运气。
让 Rabbit 服务器在 ECS 集群之外更好吗?
有什么建议吗?
两个选项:
对,运行ECS集群外的Rabbit服务器。由于它具有与之关联的持久状态,因此很难在节点之间移动或复制,因此在 ECS 中管理它并没有太多好处。
要求 AWS deploy a load balancer in front of RabbitMQ in ECS。您可以为该负载均衡器提供其自己的 DNS 名称(通过 Route 53)或使用其默认名称,但无论哪种方式,您都可以使用该 DNS 名称来引用 RabbitMQ,它会路由实际上是 运行 的主机宁它。
我正在尝试将本地的 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-组合起来得到rabbitmq + 2个服务,两个服务都可以连接到rabbit服务器。
现在,我可以将 service-a 和 service-b 部署到 ECS 集群,前提是我对 rabbit 服务器的主机名进行了硬编码。这意味着我需要有一个单独的 EC2 实例(或类似的东西)运行连接兔子服务器。我会 真的 希望我的集群有一个 rabbit 服务器并且让我的实例能够连接到它。到目前为止,没有运气。
让 Rabbit 服务器在 ECS 集群之外更好吗?
有什么建议吗?
两个选项:
对,运行ECS集群外的Rabbit服务器。由于它具有与之关联的持久状态,因此很难在节点之间移动或复制,因此在 ECS 中管理它并没有太多好处。
要求 AWS deploy a load balancer in front of RabbitMQ in ECS。您可以为该负载均衡器提供其自己的 DNS 名称(通过 Route 53)或使用其默认名称,但无论哪种方式,您都可以使用该 DNS 名称来引用 RabbitMQ,它会路由实际上是 运行 的主机宁它。