每个 AZ 1 个 ELB 和 1 个 ELB 到多个 AZ 的区别

Difference between 1 ELB per AZ and 1 ELB to multiple AZs

我想就以下问题寻求澄清。

考虑这里的 2 个图表

1 个 ELB 到多个 AZ 中的多个 EC2 实例

每个可用区 1 个 ELB

假设所有 EC2 实例都是 运行 同一应用程序的同一版本 - 只是使用自动缩放组进行缩放,这两种架构之间有什么区别?我什么时候会选择一个而不是另一个?

图表实际上描绘的是同一件事!

虽然图表通常将 Elastic Load Balancer 描述为位于 区域 ,但实际情况是它实际上在出现在 VPC 子网中的每个可用区中创建了多个负载均衡服务器通过弹性网络接口 (ENI)。

过程是:

  • 最终用户通过映射到负载均衡器
  • DNS 名称 访问应用程序
  • Elastic Load Balancing 服务将 DNS 名称解析为 VPC 中其中一个 ENI 的 IP 地址。如果可用区出现故障,它只会向功能可用区发送请求。
  • 最终用户的 Web 浏览器然后将 请求 发送到该 IP 地址,该 IP 地址转到其中一个负载平衡器
  • 负载均衡器根据最少打开连接数确定哪个Amazon EC2实例应该接收流量,并将请求转发给它.此外,负载均衡器可以将流量发送到不同 AZ 中的实例以保持请求平衡 ("Cross-zone load balancing")。

第二张图简单地显示了连接到 VPC 的负载均衡器的附加层。传统上,ELB 在区域级别简单地显示为一个图标,但现实更像是第二个图。

有兴趣的请看:How Elastic Load Balancing Works