跟随场景:
有一项服务 24/7 运行,停机时间非常昂贵。该服务部署在 Amazon EC2 上。我知道将应用程序部署在两个不同的可用区甚至两个不同的区域以防止单点故障的重要性。但...
我的问题是是否有任何其他配置问题可能会影响应用程序的冗余。我的意思也是错误的配置(例如,DNS 的错误配置会在故障转移的情况下使其失败)。
只是为了确保我清楚 - 我正在尝试创建一个应该测试的验证列表,以确保部署在 EC2 上的应用程序的冗余。
谢谢你们!
有一项服务 24/7 运行,停机时间非常昂贵。该服务部署在 Amazon EC2 上。我知道将应用程序部署在两个不同的可用区甚至两个不同的区域以防止单点故障的重要性。但...
我的问题是是否有任何其他配置问题可能会影响应用程序的冗余。我的意思也是错误的配置(例如,DNS 的错误配置会在故障转移的情况下使其失败)。
只是为了确保我清楚 - 我正在尝试创建一个应该测试的验证列表,以确保部署在 EC2 上的应用程序的冗余。
谢谢你们!
就像警告一样,仅仅因为您将服务放在两个可用区中并不意味着您具有容错能力。
例如,我的一项设置是在负载均衡器上安装 4 台服务器,并将 us-east-1a us-east-1b 作为两个区域。几个月前亚马逊的中断导致我的软件出现一些中断,因为负载均衡器无法正常工作。他们仍在转发请求,但我在其中一个区域中的两个死机实例也仍在接收请求。负载均衡器逻辑的一部分是删除死实例,但由于负载均衡器队列积压,这些实例从未被删除。在我的设置中,每个区域有两个负载均衡器,因此对一个负载均衡器的所有请求都超时,因为没有实例可以响应请求。对我来说幸运的是,浏览器使用第二个负载均衡器重试了请求,所以我的提要仍在加载,但速度非常慢。
我的建议是确保如果您选择在两个区域上仅使用两个可用区,则确保您的系统不依赖于另一个可用区的任何部分,甚至不依赖于负载平衡器。对我来说,在不同的区域启动两个完全独立的系统是不值得的,所以我以后无法再次避免这个问题。但是,如果您的软件非常关键,以至于失去服务 1 小时会支付运行额外硬件的成本,那么额外的服务器绝对值得正确设置。
我还建议支付 AWS 支持费用并与他们的工程师合作,以确保您的设计没有任何高可用性缺陷。
回顾我讨论的问题:http: //aws.amazon.com/message/67457/