本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
关于路由控制
路由控制通过使用 Amazon Route 53 中的运行状况检查来重定向流量,这些检查配置了与恢复组中单元格的顶级资源(例如 Elastic Load Balancing 负载均衡器)关联的 DNS 记录。例如,您可以将流量从一个单元格重定向到另一个单元格,方法是将一个路由控制状态更新为 Off
(以停止流向一个单元格的流量),并将另一个路由控制状态更新为 On
(以启动流向另一个单元格的流量)。更改流量流的过程是与路由控制关联的 Route 53 运行状况检查,此后 ARC 会根据相应的路由控制状态对其进行更新以将其设置为健康或不健康。
路由控制支持在任何具有 DNS 端点的 Amazon 服务之间进行故障转移。您可以更新路由控制状态,以便在灾难恢复情况下、检测到应用程序延迟衰退或其它问题时对流量进行灾难恢复。
您还可以为路由控制配置安全规则,以确保使用路由控制重新路由流量不会影响可用性。有关更多信息,请参阅 为路径控制创建安全规则 。
请务必注意,路由控制本身并不是监控端点底层运行状况的运行状况检查。例如,与 Route 53 运行状况检查不同,路由控制不会监控响应时间或 TCP 连接时间。路由控制是一个控制运行状况检查的简单开关机构。通常,您会更改其状态以重定向流量,而这种状态更改会将流量转移到整个应用程序堆栈的特定端点,或者阻止路由到整个应用程序堆栈。例如,在一个简单的场景中,当您将路由控制状态从 On
更改为 Off
时,它会更新 Route 53 运行状况检查,该检查已与 DNS 故障转移记录相关联,以将流量移出端点。
如何使用路由控制
要更新路由控制状态以便重新路由流量,必须连接到 ARC 中的一个集群终端节点。如果您尝试连接的端点不可用,请尝试使用其他集群端点更改状态。在更改路由控制状态的过程中,应准备好轮流尝试每个端点,因为集群端点会在可用和不可用状态之间循环,以便定期维护和更新。
创建路由控制时,您可以配置 DNS 记录,将路由控制运行状况检查与每个应用程序副本前面的 Route 53 DNS 名称相关联。例如,要控制两个负载均衡器(两个区域中各有一个)之间的流量失效转移,您可以创建两个路由控制运行状况检查,并将它们与两个 DNS 记录相关联,例如失效转移路由策略中的别名记录,其中包含各自负载均衡器的域名。
您还可以使用 ARC 路由控制以及 Route 53 运行状况检查和 DNS 记录集,使用带有加权路由策略的 DNS 记录,来设置更复杂的流量故障转移方案。要查看详细示例,请参阅以下 Amazon 博客文章中有关用户流量故障转移的部分:使用 Amazon 应用程序恢复控制器 (ARC) 构建高弹性应用程序,第 2 部分:多区域堆栈
当您为 Amazon Web Services 区域 正在使用的路由控制启动故障转移时,由于流量涉及的步骤,您可能不会看到流量立即流出该区域。该地区现有的、正在进行的连接也可能需要很短的时间才能完成,具体取决于客户端行为和连接重复使用情况。根据您的 DNS 设置和其他因素,现有连接可能只需几分钟即可完成,也可能需要更长时间。有关更多信息,请参阅确保交通转移快速完成。
路由控制的好处
与使用传统运行状况检查重新路由流量相比,ARC 中的路由控制有几个好处。例如:
路由控制为您提供了一种对整个应用程序堆栈进行失效转移的方法。这与基于资源级运行状况检查的 Amazon EC2 实例对堆栈的各个组件进行故障转移形成鲜明对比。
路由控制为您提供了一个安全、简单的手动覆盖机制,您可以用来转移流量以进行维护工作,或者在内部监控器未检测到问题时从故障中恢复。
您可以将路由控制与安全规则结合使用,以防止基于运行状况检查的全自动化机制可能产生的常见副作用,例如失效转移到尚未做好失效转移准备的备用基础设施。
以下是将路由控制纳入故障转移策略的示例,以提高中应用程序的弹性和可用性 Amazon。
您可以 Amazon 通过跨区域运行多个(通常是三个)冗余副本来支持高可用性 Amazon 应用程序。之后,您可以使用 Amazon Route 53 路由控制将流量路由到适当的副本。
例如,您可以将一个应用程序副本设置为活动状态并提供应用程序流量,而另一个则设置为备用副本。当活动副本出现故障时,您可以将用户流量重新路由到备用副本,以恢复应用程序的可用性。您应该根据来自监控和运行状况检查系统的信息来决定是从副本转移还是故障转移到副本。
如果您想更快地恢复,可以选择另一个架构选项,即主动-主动实现。使用这种方法,您的副本可以同时处于活动状态。这意味着,只要将流量重新路由到另一个活动副本,就可以将用户从受损的应用程序副本中移开,从而从故障中恢复。