AWS Elastic Load Balancer和多个可用区域

mbs*_*ikh 10 load-balancing amazon-ec2 amazon-web-services

我想了解ELB如何在多个可用区之间进行负载平衡.举例来说,如果我有4个实例(a1, a2, a3, a4)在区域us-east-1a和单一实例d1us-east-1d的ELB的背后,如何在两个可用性区域之间分配的流量?即,将d1获得近50%的流量或1/5th流量?

Vic*_*ari 19

如果启用ELB 跨区域负载平衡,则d1将获得20%的流量.

这是在没有启用跨区域负载平衡的情况下发生的事情:D1将获得近50%的流量.这就是亚马逊建议从每个AZ向ELB添加相同数量的实例的原因.

以下摘录摘自Elastic Load Balancing概述:

传入流量在为负载均衡器启用的所有可用区域中均衡负载均衡,因此在每个区域中拥有大约相等数量的实例非常重要.例如,如果在可用区us-east-1a中有10个实例,在us-east-1b中有两个实例,则流量仍将在两个可用区之间平均分配.因此,us-east-1b中的两个实例将必须提供与us-east-1a中的十个实例相同的流量.作为最佳实践,我们建议您在每个可用区中保留等效或几乎相等数量的实例.因此,在示例中,您可以分发实例,以便在每个可用区中有六个实例,而不是在us-east-1a中有10个实例,而在us-east-1b中有两个实例.


Evg*_*eny 5

不同可用区之间的负载平衡是通过 DNS 完成的。当客户端上的 DNS 解析器请求 ELB 的 IP 地址时,它会获得两个地址。并选择使用其中一个(通常是第一个)。DNS 服务器通常以随机顺序进行响应,因此第一个 IP 并非始终使用,而是每个 IP 仅在部分时间使用(2 时使用一半,3 时使用三分之一,等等...)。

然后,在这些 IP 地址后面,每个可用区域中都有一个 ELB 服务器,您的实例已连接到该服务器。这就是为什么只有一个实例的区域将获得与另一个区域中的所有实例相同的流量的原因。

当您拥有大量实例时,ELB 可以决定在一个可用区中创建两个这样的服务器但在这种情况下,它会将您的实例拆分为一半(或其他等分) )您的实例。

  • @uszywieloryba 如果是这种情况,请提供更多信息说明原因。 (3认同)