AWS Global Accelerator通过持续的健康监控和智能的交通路由执行即时故障转移,以维持在多个AWS区域或端点上部署的应用程序的高可用性和低延迟。
即时故障转移如何在全局加速器中工作的关键方面:
- 健康检查:使用TCP,HTTP或HTTPS健康检查,全球加速器不断监视所有配置的应用程序终点的健康。如果终点变得不健康,则立即将其标记为[3] [5]。
- 即时流量重定向:检测到不健康的端点后,全局加速器立即停止将新连接路由到该端点,并将流量重定向到下一个最佳健康端点,该端点可能位于同一或另一个区域。该故障转移发生在检测故障[2] [9]大约30秒内。
- 路由逻辑:基于网络延迟和端点健康,服务将客户端流量路由到最接近的健康端点。如果没有具有正交通重量的健康端点,则全局加速器将将流量路由到最接近的端点组中的随机端点,从而有效地 *失败 *以保持连接性[2]。
- 连接处理:全局加速器终止了AWS边缘位置的客户端TCP连接,并几乎同时建立了与健康端点的新的TCP连接。但是,现有与不健康端点的活动连接不会立即断开。他们继续直到关闭或超时,然后将新的连接路由到健康的终点[2] [3]。
- 流量拨号和权重:您可以在端点组上配置流量重量和流量拨号以控制流量分布。故障转移尊重这些设置,试图将流量远离零重量端点。如果所有健康端点的重量为零,则故障转移机制均依靠与最近端点组的路由,无论重量如何[2]。
- 全球网络主干:通过将流量通过AWS全球网络进行路由,全球加速器确保了低延迟和无拥堵路径,从而提高了故障转移的速度和可靠性[2]。
- 静态IP地址:全局加速器提供两个静态IPv4地址,可作为客户端流量的固定入口点。即使发生故障转移,这些IP仍然保持恒定,消除了DNS缓存延迟并实现了无客户端更改的近乎静止的故障转移[4] [7]。
- 故障转移速度:尽管以“瞬间”为销售,但故障转移通常在一分钟内完成,大约需要30秒来检测并将新连接重定向到健康的终点。这比基于DNS的故障转移机制更快,该机制可以通过DNS缓存[9]来减慢。
总而言之,AWS全局加速器通过不断监视端点健康,通过静态IP地址将新客户连接到最近的健康端点,从而实现即时故障转移,并利用AWS全球网络以获得最佳性能。这种设计可最大程度地减少停机时间,并在不需要客户端DNS更新或手动干预的情况下提供整个区域或可用性区域的无缝故障转移[2] [3] [5] [7] [9]。
引用:
[1] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoints-endpoint-weights.unhealthy-endhealthy-endpoints.html
[2] https://docs.aws.amazon.com/global-accelerator/latest/dg/introduction-how-it-works.html
[3] https://tutorialsdojo.com/aws-global-accelerator/
[4] https://aws.amazon.com/blogs/networking-and-content-delivery/maximisision-application-sapplication-risiligation-with-aws-aws-global-accelerator/
[5] https://cloudvisor.co/aws-guides/aws-global-accelerator/
[6] https://aws.amazon.com/blogs/networking-and-content-delivery/creating-disaster-recovery-mechanisms-using-using-amazon-route-53/
[7] https://aws.amazon.com/global-accelerator/features/
[8] https://stackoverflow.com/questions/62638339/how-to-to-to-improve-failover-speed-for-for-aws-global-accelerator-or-accelerator-or-route53-latency rout
[9] https://aws.amazon.com/global-accelerator/faqs/