我最近开始研究和尝试AWS,并对可以使用该平台实现的不同高可用性架构特别感兴趣。具体来说,我正在寻找一种可靠的、成本低廉的解决方案,可以使用最少量的服务器进行实现。
到目前为止,我对主要的HA问题:负载均衡、冗余、自动恢复、可扩展性等解决方案都感到满意...
我唯一困扰的是故障转移的解决方案。
使用ELB可能看起来很棒,但实际上ELB在底层使用DNS负载平衡。请参阅AWS Elastic Load Balancer是否存在单点故障?。此外,从Netflix博客文章中了解到:《Netflix从AWS故障中学到的经验》
除了ELB之外,似乎大多数AWS HA架构都依赖于使用Route 53进行DNS故障转移。
最后,浮动IP /弹性IP(EIP)策略在很少量的文章中出现过,例如:利用多个IP地址进行虚拟IP地址故障转移,但我很难确定这是否是生产系统的可行解决方案。此外,我遇到的所有示例都是使用一组主动-被动实例来实现此目的。看起来每个活动实例都需要一个被动实例来实现这个目标有些浪费。
鉴于此,我想问你如何更快、更可靠地执行故障转移?
具体来说,请讨论以下两个设置的不使用DNS的故障转移方法:
到目前为止,我对主要的HA问题:负载均衡、冗余、自动恢复、可扩展性等解决方案都感到满意...
我唯一困扰的是故障转移的解决方案。
使用ELB可能看起来很棒,但实际上ELB在底层使用DNS负载平衡。请参阅AWS Elastic Load Balancer是否存在单点故障?。此外,从Netflix博客文章中了解到:《Netflix从AWS故障中学到的经验》
现在,我已经了解到DNS故障转移不是理想的解决方案,正如其他人指出的那样,主要是因为DNS缓存不可预测。例如:请参阅为什么不建议使用DNS故障转移?。这是因为ELB是一个两层负载平衡方案。第一层由基本的基于DNS的轮询负载平衡组成。这将客户端定位到云中ELB终端点,该终端点位于您的ELB configured要使用的区域之一。
除了ELB之外,似乎大多数AWS HA架构都依赖于使用Route 53进行DNS故障转移。
最后,浮动IP /弹性IP(EIP)策略在很少量的文章中出现过,例如:利用多个IP地址进行虚拟IP地址故障转移,但我很难确定这是否是生产系统的可行解决方案。此外,我遇到的所有示例都是使用一组主动-被动实例来实现此目的。看起来每个活动实例都需要一个被动实例来实现这个目标有些浪费。
鉴于此,我想问你如何更快、更可靠地执行故障转移?
具体来说,请讨论以下两个设置的不使用DNS的故障转移方法:
2个位于不同AZ的活动-活动EC2实例。活动-活动,因为这是一个预算设置,我们负担不起有一台实例闲置。
在A区域有1个ELB和2个EC2实例,在B区域也有1个ELB和2个EC2实例。同样,两个区域都处于活动状态并提供流量服务。如何从1个ELB切换到另一个ELB进行故障转移?