我最近开始阅读并玩弄AWS。我对可以使用该平台实现的不同高可用性体系结构特别感兴趣。具体来说,我正在寻找可靠的穷人的解决方案,可以使用服务器的最低金额实施。AWS替代DNS故障转移?
到目前为止,我很满意为主要HA关切的办法:负载均衡,冗余,自动恢复,可扩展性...
唯一的症结点我是故障解决方案。
使用ELB可能看起来不错,但是ELB实际上使用DNS平衡。见Is AWS's Elastic Load Balancer a single point of failure?。同样来自Netflix的博客文章:Lessons Netflix Learned from the AWS Outage
这是因为ELB是双层负载均衡方案。第一层由基于DNS的循环负载平衡组成。这会将客户端获取到ELB配置为使用的其中一个区域中的云中的ELB端点。
现在,我已经了解到DNS故障转移不是一个理想的解决方案,正如其他人指出的,主要是因为DNS缓存不可预知。参见例如:Why is DNS failover not recommended?。
除了ELBs,在我看来,大多数AWS HA架构中使用路由53
最后,浮动IP /弹性IP(EIP)战略在极少数的弹起依赖于DNS故障转移文章,例如Leveraging Multiple IP Addresses for Virtual IP Address Fail-over,我很难弄清楚这是否是生产系统的可行解决方案。另外,我遇到的所有示例都使用一组主动 - 被动实例来实现此功能。对于每一个积极的人来说,实现这一目标似乎是一种浪费。
鉴于此,我想问问什么是更快更可靠的故障切换方式?
更具体地,请讨论如何在不使用DNS以下2对设置进行失效切换:
2主动 - 主动EC2实例在单独的AZS。主动 - 主动,因为这是一个预算安排,我们是否无法负担一个实例。
1 ELB在区域A中有2个EC2实例,1个ELB在区域B中有2个EC2实例。同样,两个区域都是活动的并提供流量。你如何处理从1个ELB到另一个的故障转移?
我应该了解,根据您的体验,DNS缓存问题从来不是一个足以重新考虑使用ELB的重要因素? –
我喜欢这两个应用程序都处于活动状态时主动/被动HAProxy的想法。如果完美的故障转移是目标,那么这种设置不会被ELB所青睐吗? –
回复:DNS缓存,这是正确的。 –