【发布时间】:2016-01-04 04:39:04
【问题描述】:
我最近开始阅读和使用 AWS。我对使用该平台可以实现的不同高可用性架构特别感兴趣。具体来说,我正在寻找一个可靠的穷人解决方案,可以使用最少数量的服务器来实施。
到目前为止,我对主要 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?。
在我看来,除了 ELB 之外,大多数 AWS HA 架构都依赖于使用路由 53 的 DNS 故障转移。
最后,浮动 IP/弹性 IP (EIP) 策略出现在极少数文章中,例如 Leveraging Multiple IP Addresses for Virtual IP Address Fail-over,我很难确定这是否是生产系统的可行解决方案.此外,我遇到的所有示例都使用一组主动-被动实例实现了这一点。让每个主动者都拥有一个被动来实现这一点似乎是一种浪费。
有鉴于此,我想问一下,什么是更快更可靠的故障转移方式?
更具体地说,请讨论如何不使用 DNS 为以下 2 种设置执行故障转移:
2 个主动-主动 EC2 实例位于不同的 AZ。主动-主动,因为这是一个预算设置,我们不能让一个实例坐在那里。
区域 A 中具有 2 个 EC2 实例的 1 个 ELB,区域 B 中具有 2 个 EC2 实例的 1 个 ELB。同样,这两个区域都处于活动状态并为流量提供服务。您如何处理从 1 个 ELB 到另一个 ELB 的故障转移?
【问题讨论】:
标签: amazon-web-services high-availability failover amazon-elb amazon-route53