10

我想了解 ELB 如何在多个可用区之间进行负载平衡。例如,如果我a1, a2, a3, a4在 zone 中有 4 个实例 ( ),在ELB后面有us-east-1a一个实例,那么两个可用区之间的流量是如何分配的?即,将获得近 50% 的所有流量或流量?d1us-east-1dd11/5th

4

2 回答 2

19

如果启用 ELB Cross-Zone Load Balancing,d1 将获得 20% 的流量。

以下是未启用跨区域负载平衡的情况:D1 将获得近 50% 的流量。这就是为什么 Amazon 建议将相同数量的实例从每个 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 中拥有 2 个实例,不如在每个可用区中分配您的实例,以便您拥有 6 个实例。

于 2012-07-11T11:41:08.347 回答
3

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

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

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

于 2012-10-06T17:54:17.333 回答