在不同的跨区域负载平衡配置下,ELB DNS 和流量是如何运行的?

1 分钟阅读
0

我为两个可用区配置了弹性负载均衡器(ELB),但它在 DNS 中仅显示一个 IP 地址。

简短描述

借助应用程序负载均衡器,跨区域负载均衡始终在负载均衡器级别处于启用状态。跨区域负载均衡无法关闭,但可在目标组级别进行更改。

但对于网络负载均衡器和网关负载均衡器而言,跨区域负载平衡在默认情况下处于关闭状态。

当关闭了跨区域负载平衡时,可用区在每个目标组中必须至少有一个运行状况良好的目标。启用跨区域负载平衡时,任何可用区的每个目标组中都必须至少有一个运行状况良好的目标。每种条件都能保持可用区正常运行,并将相应的弹性负载均衡器节点 IP 地址添加到弹性负载均衡器 DNS。

解决方法

当关闭跨区域负载均衡时

以下是两个可用区(AZ1 和 AZ2)之间关闭跨区域负载均衡的示例。

可用区 1(AZ1)有两个目标组 A 和 B,每个目标组都有自己的目标 A1 和 B1。目标 A1 不正常,而目标 B1 正常。由于目标 A1 不正常,因此 AZ1 也不正常。

可用区 2(AZ2)还有两个目标组 A 和 B,每个目标组都有自己的目标 A2 和 B2。目标 A2 和 B2 都很正常。由于两个目标组中的每个目标都处于正常状态,因此 AZ2 处于正常状态。

弹性负载均衡器将 AZ2 的 IP 地址包含在弹性负载均衡器的 DNS 中,因为 AZ2 是唯一正常的可用区。因此,当解析弹性负载均衡器的域时,AZ2 的 IP 地址是唯一出现的地址。

然后,流量通过 AZ2 中的弹性负载均衡器节点,而被路由到相应目标组中的正常目标。如果目标组中有多个运行状况良好的目标,则根据负载均衡器的路由算法选择一个目标。

如果两个可用区都运行状况不佳,则弹性负载均衡器无法开启。然后,将每个弹性负载均衡器 IP 地址添加到负载均衡器的 DNS。

当启用跨区域负载均衡时

以下是使用相同可用区(AZ1 和 AZ2)启用跨区域负载均衡的示例:

在 AZ1 中,目标 A1 不正常,而目标 B1 正常。在 AZ2 中,目标 A2 和 B2 都处于正常状态。由于每个可用区至少有一个正常目标,因此对于弹性负载均衡器主机名,弹性负载均衡器在 DNS 中包含两个 IP 地址。

然后,流量被路由到任何弹性负载均衡器节点,并转发到相应目标组中的目标。如果目标组中有多个运行状况良好的目标,则根据负载均衡器的路由算法选择目标。

如果 AZ1 中的目标 B1 不正常且 AZ2 中的目标 B2 也不正常,则两个可用区都不正常。由于两个可用区都不正常,因此弹性负载均衡器无法打开。然后,将每个弹性负载均衡器 IP 地址添加到负载均衡器的 DNS。因此,当您解析域时,系统会显示两个可用区域的 IP 地址。

相关信息

应用程序负载均衡器现在支持关闭每个目标组的跨区域负载均衡

AWS 官方
AWS 官方已更新 1 年前