我正在尝试设计一个高度可用的API。为了提高可靠性,我想将API部署到多个区域,但是要有一个URL,这样客户端就不必使用多个URL。我不关心地理路线。
我希望将APIGateway部署到具有单个端点的多个区域。我的要求是快速故障转移和可用性。
我可以想到的两种方法是使用Route53将单个端点映射到具有故障转移的区域APIGateway DNS名称。
另一种选择是使用AWS全球加速器 anycast服务,其中ALBs指向API。考虑到DNS实体可以由浏览器缓存,客户机等是否是更好的选择?
发布于 2022-01-10 22:52:30
API部署通常是按请求付费的,因此部署到多个区域不需要任何额外费用。如果您的后端是lambda,这也是每次使用都要付费的,但是如果后端是EC2或类似的,那么拥有多个区域可能会更昂贵。
我最初的设计不会包括多个区域,除非您已经经历过单个区域的多个故障,或者您需要非常高的可靠性--四五个九。人为错误比AWS中断更有可能破坏您的系统。
API网关是冗余和可靠的,虽然AWS确实失败了,但它并不是所有的经常,当它做了这么多的网站被关闭,你是一个好公司。不过,如果你有严格的SLA,那就不太理想了。
如果我确实需要高可用性/多个区域,我会将网关和工作负载部署到多个区域,然后首先使用Route53 53为这些API提供一个URL。使用R53,您可以使用任何您喜欢的地理位置、延迟或故障转移路由。如果后端成本很高,您可以查看带有故障转移路由的冷部署或先导光部署模型,如果性能或可用性更重要,则可以部署到每个区域并使用基于地理/延迟的路由。
https://serverfault.com/questions/1089350
复制相似问题