AWS的Elastic Load Balancer是单点故障吗?


15

我正在考虑将我们的应用程序升级到Amazon Web Services。该计划是使所有EC2实例跨两个可用性区域进行镜像。由于数据传输成本,我们将停留在单个AWS地区(俄勒冈州)。

多个可用区消除了我们的应用程序和数据库服务器的单点故障,但是ELB呢?如果我只有一个ELB在两个可用区之间分配流量,那么ELB是否也托管在这两个可用区中?

亚马逊如何防止ELB成为SPoF?

Answers:


13

本质上,ELB只是EC2实例的集合。当你创建一个ELB,你指定你想要的负载均衡是在可用性区域。实例来弥补,然后将这些区域创建的负载平衡器。他们在此处避免单点故障的方法是在执行DNS查找时返回多个IP地址。例如:

  • 对website.example.com的DNS查找返回CNAME website-elb-12345.eu-west-1.elb.amazonaws.com
  • 该查找还返回有关website-elb-12345.eu-west-1.elb.amazonaws.com的信息。它指出站点具有IP地址1.2.3.4和IP地址2.3.4.5

由客户端决定使用哪个IP地址建立连接。IP地址不会总是从DNS查找中以相同顺序返回。如果客户端在第一次尝试时无法连接,则可以重试其他IP地址。

ELB的DNS记录上的TTL仅60秒,这意味着如果ELB实例死亡并被替换,则DNS将在所有地方相当快地更新。


那么,既然我将跨多个区域部署应用程序EC2实例,那么当我为该区域创建ELB时,它将自动托管在分布于相同两个区域的EC2实例上吗?
Chris.B 2014年

当你创建ELB,无论是通过API或控制台,你会被要求选择你想要的ELB运行在可用性区域,您只需要选择相同的可用区域,你的情况下,会在。
理查德

3

它实际上可能是SPoF,但我相信仅在同一地区内才是SPoF。

因此,AWS建议使用Route 53运行状况检查,以检测和重新路由最终会出现在不正常的ELB上的流量。

您可以使用Amazon Route 53运行状况检查和DNS故障转移功能来增强在弹性负载均衡器后面运行的应用程序的可用性。如果没有向负载均衡器注册健康的EC2实例,或者负载均衡器本身不正常,则路由53将无法通过负载均衡器运行

资料来源:http : //aws.amazon.com/elasticloadbalancing/


因此,有一种方法可以在单个区域中设置多个ELB。有一个作为主服务器,一个作为备用计算机吗?还是Route 53能够启动新的ELB实例?
Chris.B 2014年

我认为Route 53不能自动设置ELB,您必须查看开发人员指南。
Alex

1

您可以通过创建一个自动缩放组来解决单个AZ SPoF的问题,如果单个ELB不满足X因子,无论是按负载,响应时间等,都会创建一个新的ELB。ELB本质上是运行专有AWS代码的EC2实例。


我认为,ELB自动缩放到在负载等的增加手柄
Chris.B
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.