我有一个在 AWS 上托管的 SaaS 产品,并且我希望在 Rackspace(或任何其他主机)上托管相同的基础设施,以便在 AWS 出现故障时为我的用户提供高可用性(最终实现负载平衡)。
有人有什么建议吗?最好的方法是使用 DNS 负载平衡器?
谢谢大家
答案1
可以使用多种方法来实现这一点。通常采用 DNS 负载平衡和负载平衡器的组合方法。允许您拥有多层冗余,我的简单流程图如下:
用户 -> DNS 响应(多个 IP,确保您从相应的云提供商获得响应) -> 负载均衡器(例如 ELB 或 HAproxy,确保您的云服务器已启动) -> 云服务器
我以前也使用过的解决方案是使用 CDN 来处理 DNS 响应并动态管理跨多个数据中心或云提供商的流量。Akamai 使用全局流量管理来实现这一点:http://www.akamai.com/html/solutions/gtm.html
编辑:我忘了提到,DNS 负载平衡可以根据上游服务器缓存 DNS 响应的方式提供一些有趣的行为,有时 ISP(咳嗽康卡斯特、美国电话电报公司咳嗽,它们已经变得更好了)并且其他客户端 DNS 服务器不遵循您定义的 TTL(我链接的博客提到了这一点,但我再怎么强调也不为过)。通常这不是一个大问题,但如果您真的遇到问题,则需要考虑这一点。
答案2
使用 AWS 本身,您可以实现高可用性,AWS 中有区域 (Regions) 和可用区 (Zone),因此,如果您将产品部署到不同的区域,则可以在地理上传播您的产品,并且在区域中您有不同的区域,区域与不同的数据中心一样好。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
您可以通过 Rackspace 在 AWS 中保留您的环境副本,DNSMADEEASY 可以帮助您进行故障转移。
http://www.dnsmadeeasy.com/blog/dns-failover-one-trip-shouldnt-take-you-down/