Amazon Route 53
开发人员指南 (API 版本 2013-04-01)

Amazon Route 53 如何避免故障转移问题

Route 53 实施的故障转移算法不仅用于将流量路由到正常运行的终端节点,还用于避免使灾难情况因错误配置的运行状况检查和应用程序、终端节点超载和分区故障而变得更严重。

Amazon Route 53 如何避免级联故障

作为抵御级联故障的第一道防线,每个请求路由算法 (如加权和故障转移) 都有在万不得已的情况下采用的模式。在此特殊模式下,当所有记录都被视为运行状况不佳时,Route 53 算法将重新认为所有记录均运行良好。

例如,如果某个应用程序在多个主机上的所有实例都拒绝运行状况检查请求,Route 53 DNS 服务器无论如何都会选择一个回复,而不是不返回任何 DNS 回复或返回 NXDOMAIN (不存在的域) 响应。应用程序可以响应用户,但仍无法通过运行状况检查,因此这可针对配置错误提供一些保护。

同样,如果应用程序超载并且三个终端节点中的一个未能通过运行状况检查,使其无法进行 Route 53 DNS 响应,Route 53 将会在其余两个终端节点之间分配响应。如果其余的终端节点无法处理额外负载并且失败,Route 53 将恢复为向全部三个终端节点分发请求。

Amazon Route 53 如何处理 Internet 分区

尽管并不常见,但有时确实存在重要的 Internet 分区,这意味着大型地理区域之间无法通过 Internet 进行通信。在这些分区中,Route 53 位置可能会就终端节点的运行状况得出不同的结论,并且可能与报告给 CloudWatch 的状态不同。每个 AWS 区域中的 Route 53 运行状况检查程序会不断向所有 Route 53 位置发送运行状况检查状态。在 Internet 分区中,每个 Route 53 位置可能只能访问其中的部分状态,通常来自与其距离最近的区域。

例如,在会影响与南美洲之间双向连接的 Internet 分区中,Route 53 南美洲(圣保罗)位置中的 Route 53 DNS 服务器可能能够正常访问南美洲(圣保罗)AWS 区域中的运行状况检查终端节点,但却无法访问其他终端节点。同时,美国东部(俄亥俄州)中的 Route 53 可能无法访问南美洲(圣保罗)区域中的运行状况检查终端节点,并得出相应的记录运行状况不佳的结论。

对于此类分区,Route 53 位置更容易根据终端节点的本地可见性得出有关终端节点运行状况的不同结论。因此,当只有一部分可访问的运行状况检查程序认为终端节点运行正常时,每个 Route 53 位置都认为该终端节点运行正常。