ELB是否会提高AWS架构的可用性?

Dav*_*vid 1 high-availability amazon-web-services

我正在通过一次AWS认证的实践考试。问题之一如下:

 The web tier for an a pplication is running on 6 EC2 instances spread
 across 2 AZs behind a classic ELB.  The data tier is a MySQL database
 running on an EC2 instance.  What changes will increase the
 availability of the application? (select TWO)

 A: Turn on CloudTrail in the AWs account
 B: Migrate the MySQL database to a Multi-AZ RDS MySQL database instance
 C: Turn on cross-zone load balancing on the ELB
 D: Launch the web tier EC2 instances in an Auto Scaling Group
 E: Increase the instance size of the web tier EC2 instance
Run Code Online (Sandbox Code Playgroud)

正确答案是B和D。我的问题是,为什么C不是正确答案?讲师(一名Amazon员工)对C进行了掩饰,解释说“启用跨区域负载平衡将对可用性几乎没有影响”。但是按照我的观察方式,如果ELB无法将流量发送到两个可用区,那么我们实际上是在将6实例系统变成3实例系统(假设每个AZ中有3个实例)。永远不会将单个可用区系统视为高度可用的体系结构,因为如果一个可用区发生故障,则整个系统将不可用。

Mic*_*bot 5

启用跨区域负载平衡不会影响可用性,因为ELB可以将流量发送到所有已配置的AZ,而无需启用该功能。 那不是跨区域平衡的意思。

在两个可用区中配置的ELB始终至少具有两个平衡器节点,每个AZ中一个。您无法直接看到它,但是如果您在EC2控制台的“网络接口”下查看,您会发现连接到平衡器节点的弹性网络接口(ENI)。每个节点都有一个ENI。该服务根据负载确定平衡器有多少个节点。这是自动管理的,不会根据节点数向您收费。

跨区域负载平衡控制每个节点可以做什么。“启用”表示区域A中的平衡器节点可以将流量发送到区域A或B中的实例,而不仅仅是区域A中的实例,并且流量也发送到区域B中的平衡器节点。

这不会提高可用性,因为如果丢失了可用性区域,那么该区域中的平衡器节点也会丢失,因此它可能会将流量发送到另一个区域中的实例这一事实并不重要。

跨区域负载平衡有助于确保工作负载在平衡器后面的所有实例中尽可能均匀地分布,这在您具有不对称性时会有所帮助-例如,一个AZ中的3个应用程序实例,而另一个AZ中的2个应用程序实例(在这种情况下) ,则具有2的区域所看到的每个实例的流量将比具有3)的区域所看到的成比例的流量-或其他情况下实例未看到均衡的工作负载,在平衡器后面的实例数量较少或较小时,这种可能性更大如果由于某些请求相对于其他请求的复杂性而导致请求处理时间的差异很大。