适用于多种服务的 AWS 负载均衡器

Sus*_*hil 2 containers load-balancing amazon-ecs

我的应用程序中运行着 12 个容器化 Web 服务(12 个不同的容器)。我想将它们部署到 AWS。所有 12 个容器的大小都很大,预计可以满足大量需求,因此我不会将所有容器部署在一个容器上。此外,我还希望拥有多个服务 #4、5、6 的容器,因为预计这 3 个服务的流量会特别多。如何使用 AWS 负载均衡器?在这种情况下我该如何进行负载平衡?一种简单的解决方案可能是将所有 12 个容器部署在一个 EC2 中,但将服务#4,5 和 6 的附加容器部署在第二个 EC2 实例上,然后跨 2 个可用区复制相同的设置以确保可用性。但我又不想将所有 12 项服务放在一个 EC2 实例上,因此这个简单的解决方案看起来不是一个可行的解决方案。有人可以分享一下当服务数量如此之多时如何在特定容器的不同级别实现负载平衡的想法吗?

很多天来,我一直在努力寻找这个问题的答案,但找不到指导。

Adi*_*iii 5

您可以使用Application Load Balancer,无论是在 EC2 容器实例上还是在多个实例上运行都没有关系。

在这种情况下我该如何进行负载平衡?

您可以向 ALB 注册 ECS 服务,以便负载均衡器将流量路由到容器服务,并且不会查找 EC2 实例,因此您可以在许多 EC2 实例上运行服务副本。一台负载均衡器可以注册多个ECS服务。

当服务数量如此之多时,如何针对特定容器实现不同级别的负载均衡?

  • 应用程序负载均衡器允许容器使用动态主机端口映射(以便每个容器实例允许来自同一服务的多个任务)。

  • Application Load Balancer 支持基于路径的路由和优先级规则(以便多个服务可以在单个 Application Load Balancer 上使用相同的侦听器端口)。

服务负载平衡

现在一个负载均衡器如何将流量路由到每项服务,可以使用两种方法来完成

  • 主机基础路由
  • 基于路径的路由

每个服务都可以接收主机基础流量或路径基础流量。

例如,

api.examle.com将把流量路由到service A

auth.example.com将把流量路由到service B

您可以在这里进一步详细了解

在此输入图像描述