Amazon Route 53 常见问题

Amazon Route 53 常见问题

问:什么是 DNS 故障转移?

DNS 故障转移包含两个组件:运行状况检查和故障转移。运行状况检查是通过互联网向应用程序发送的自动请求,用于验证应用程序是否可访问、可用和正常运行。您可以将运行状况检查配置为类似于用户发出的典型请求,例如从特定 URL 请求网页。使用 DNS 故障转移,Route 53 只返回运行正常且可从外部访问的资源的响应,这样您的最终用户就可以避开应用程序中出现故障或运行不正常的部分。

问:如何开始使用 DNS 故障转移?

有关入门的详细信息,请访问 Amazon Route 53 开发人员指南。您也可以在 Route 53 控制台中配置 DNS 故障转移。

问:将 Elastic Load Balancer (ELB) 用作终端节点时是否支持 DNS 故障转移?

是的,您可以为 Elastic Load Balancer (ELB) 配置 DNS 故障转移。要为 ELB 终端节点启用 DNS 故障转移,请创建一个指向 ELB 的别名记录,并将“评估目标运行状况”参数设置为 true。Route 53 自动为 ELB 创建和管理运行状况检查。您不需要为 ELB 创建自己的 Route 53 运行状况检查。您也不需要将 ELB 的资源记录集与您自己的运行状况检查相关联,因为 Route 53 会自动将其与 Route 53 代表您管理的运行状况检查相关联。ELB 运行状况检查还将继承该 ELB 背后的后端实例的运行状况。

问:是否可以将备份站点配置为仅在运行状况检查失败时使用?

是的,您可以使用 DNS 故障转移来维护备份站点(例如,在 Amazon S3 网站存储桶上运行的静态站点),并在主站点无法访问时故障转移到该站点。

问:我可以将哪些 DNS 记录类型与 Route 53 运行状况检查关联?

您可以关联 Route 53 支持的任何记录类型(SOA 和 NS 记录除外)。

问:如果我不知道终端节点的 IP 地址,可以对其进行运行状况检查吗?

是。您可以通过 Amazon Route 53 控制台为 Elastic Load Balancer 配置 DNS 故障转移,而无需创建自己的运行状况检查。对于这些终端节点类型,Route 53 会自动代表您创建和管理运行状况检查;当您创建指向 ELB 的别名记录并在别名记录上启用“评估目标运行状况”参数时,将使用这些检查。

对于所有其他终端节点,在为终端节点创建运行状况检查时,可以指定该终端节点的 DNS 名称(例如 www.example.com)或 IP 地址。

问:我的一个终端节点不在亚马逊云科技。我可以在此终端节点上设置 DNS 故障转移吗?

是。就像您可以创建指向亚马逊云科技外部地址的 Route 53 资源记录一样,您能为在亚马逊云科技外部运行的部分应用程序设置运行状况检查,还能将故障转移到您选择的任何终端节点,而与其位置无关。例如,您可能有一个旧应用程序在亚马逊云科技外部的数据中心中运行,而该应用程序的备份实例在亚马逊云科技中运行。您能为在亚马逊云科技外部运行的旧应用程序设置运行状况检查,如果该应用程序未通过运行状况检查,则可以自动将故障转移到亚马逊云科技的备份实例。

问:如果发生故障转移并且我还有多个运行正常的终端节点,那么在确定将发生故障的终端节点的流量发送到何处时,Route 53 是否会考虑运行正常的终端节点上的负载?

不会,Route 53 不会根据终端节点的负载或可用流量做出路由决策。您将需要确保其他终端节点上有可用的容量,或者能够在这些终端节点上进行扩展,以便处理流向发生故障的终端节点的流量。

问:终端节点连续多少次运行状况检查失败才能被视为“故障”?

默认阈值为三次运行状况检查:当终端节点连续三次运行状况检查均未通过时,Route 53 会将其判定为“故障”。然而,Route 53 将继续对该终端节点执行运行状况检查,并在其通过三次连续检测后恢复向其发送流量。您可以将此阈值更改为 1 到 10 次检测之间的任何值。

问:发生故障的终端节点重新恢复正常运行时,如何恢复 DNS 故障转移?

发生故障的终端节点通过您在创建运行状况检查时指定的连续次数的运行状况检查(默认阈值是三次)后,Route 53 将自动恢复其 DNS 记录,并且恢复向其发送流量,而不需要您执行任何操作。

问:运行状况检查之间的间隔是多少?

默认情况下,运行状况检查间隔为 30 秒。您也可以选择更短间隔,即两次检测相隔 10 秒。

通过将检查次数增加三倍,更短间隔的运行状况检查使 Route 53 能够更快地确认发生故障的终端节点,从而缩短 DNS 故障转移所需的时间,重定向流量以应对终端节点的故障。

更短间隔的运行状况检查还会向您的终端节点生成三倍数量的请求,如果终端节点用于 Web 流量的容量有限,那么可能需要考虑此问题。请访问 Route 53 定价页面,了解有关更短间隔的运行状况检查以及其他可选运行状况检查功能的定价的详细信息。

问:预计运行状况检查在我的终端节点(例如,Web 服务器)上生成多少负载?

每次运行状况检查均在中国的两个站点进行。每个站点都会以您选择的间隔独立检查终端节点:默认间隔为 30 秒,您也可以选择更短间隔 10 秒。基于当前默认的运行状况检查站点数,对于标准间隔的运行状况检查,预计终端节点平均每 2-3 秒接收一个请求;对于更短间隔的运行状况检查,预计终端节点每秒接收一个或多个请求。

问:Route 53 运行状况检查是否遵循 HTTP 重定向?

不,Route 53 运行状况检查认为 HTTP 3xx 代码是成功的响应,因此它们不遵循重定向。这可能会导致字符串匹配运行状况检查出现意外结果。运行状况检查在重定向的正文中搜索指定的字符串。由于运行状况检查不会遵循重定向,因此它永远不会向重定向指向的站点发送请求,也永远不会从该站点获得响应。对于字符串匹配的运行状况检查,我们建议您避免将运行状况检查指向返回 HTTP 重定向的站点。

问:故障转移发生时的事件顺序是什么?

简而言之,如果运行状况检查失败并发生故障转移,则会发生以下事件: Route 53 对您的应用程序进行运行状况检查。在此示例中,您的应用程序连续三次未通过运行状况检查,从而触发了以下事件。

Route 53 禁用发生故障的终端节点的资源记录,并且不再提供这些记录。这是故障转移步骤,它导致流量开始路由到运行正常的终端节点,而不是发生故障的终端节点。

问:我是否需要调整记录的 TTL 才能使用 DNS 故障转移?

DNS 解析程序缓存响应的时间由与每个记录相关联的生存时间 (TTL) 的值设置。我们建议在使用 DNS 故障转移时将 TTL 设置为 60 秒或更短,以尽量减少不再将流量路由到发生故障的终端节点所需的时间。要为 ELB 配置 DNS 故障转移,需要使用固定 TTL 为 60 秒的别名记录;对于这些终端节点类型,无需调整 TTL 即可使用 DNS 故障转移。

问:如果我所有的终端节点都运行不正常怎么办?

Route 53 只能故障转移到运行正常的终端节点。如果资源记录集内没有其他运行正常的终端节点,则 Route 53 将继续运行,就好像所有运行状况检查都已通过一样。

问:是否可以在不使用基于延迟的路由 (LBR) 的情况下使用 DNS 故障转移?

是。您可以在不使用 LBR 的情况下配置 DNS 故障转移。特别是,您可以使用 DNS 故障转移配置简单的故障转移方案,其中由 Route 53 监控您的主要网站,并在您的主要站点不可用时故障转移到备份站点。

问:是否可以在只能通过 HTTPS 访问的站点上配置运行状况检查?

是。Route 53 支持通过 HTTPS、HTTP 或 TCP 进行运行状况检查。

问:HTTPS 运行状况检查是否可以验证终端节点的 SSL 证书?

不可以,HTTPS 运行状况检查会测试是否可以通过 SSL 与终端节点连接,以及终端节点是否返回有效的 HTTP 响应代码。但是,它们不会验证终端节点返回的 SSL 证书。

问:HTTPS 运行状况检查是否支持服务器名称指示 (SNI)?

是的,HTTPS 运行状况检查支持 SNI。

问:如何使用运行状况检查来验证我的 Web 服务器是否返回了正确的内容?

您可以通过选择“启用字符串匹配”选项,使用 Route 53 运行状况检查来检查服务器响应中是否存在指定的字符串。此选项可用于检查 Web 服务器,以验证它提供的 HTML 是否包含所需的字符串。您也可以创建一个专用的状态页面,使用它从内部或操作角度检查服务器的运行状况。

问:我如何查看自己创建的运行状况检查的状态?

您可以通过 Amazon Route 53 控制台和 Route 53 API 查看运行状况检查的当前状态以及有关失败原因的详细信息。

此外,每个运行状况检查的结果都将作为 Amazon CloudWatch 指标发布,其中显示终端节点的运行状况,以及(可选)终端节点响应的延迟。您可以在 Amazon Route 53 控制台的“运行状况检查”选项卡中查看 Amazon CloudWatch 指标示意图,以便了解运行状况检查的当前和历史状态。您还可以在指标中创建 Amazon CloudWatch 警报,以便在运行状况检查的状态更改时发送通知。

您的所有 Amazon Route 53 运行状况检查的 Amazon CloudWatch 指标也会显示在 Amazon CloudWatch 控制台中。每个 Amazon CloudWatch 指标都包含运行状况检查 ID(例如 01beb6a3-e1c2-4a2b-a0b7-7031e9060a6a),您可以使用该 ID 来确定指标正在跟踪的运行状况检查。

问:如何使用 Amazon Route 53 评估应用程序终端节点的性能?

Amazon Route 53 运行状况检查包括可选的延迟评估功能,该功能提供有关终端节点响应请求所花时间的数据。启用延迟评估功能后,Amazon Route 53 运行状况检查将生成其他 Amazon CloudWatch 指标,其中显示 Amazon Route 53 的运行状况检查器建立连接并开始接收数据所需的时间。Amazon Route 53 为执行 Amazon Route 53 运行状况检查的每个亚马逊云科技区域单独提供了一组延迟指标。

问:我如何获知我的一个终端节点开始无法通过其运行状况检查?

由于每个 Route 53 运行状况检查都将其结果发布为 CloudWatch 指标,因此您可以配置所有的 CloudWatch 通知和自动操作。如果运行状况检查值更改后不是您指定的阈值,则可以触发这些通知和自动操作。首先,在 Route 53 或 CloudWatch 控制台中,在运行状况检查指标中配置 CloudWatch 警报。然后添加通知操作,并指定要将通知发布到的电子邮件或 SNS 主题。

问:我为运行状况检查创建了警报,但是我需要为警报的 SNS 主题重新发送确认电子邮件。如何重新发送该电子邮件?

可以从 SNS 控制台重新发送确认电子邮件。要查找与警报相关的 SNS 主题的名称,请在 Route 53 控制台中单击警报名称,然后在标有“发送通知至”的框中会看到主题名称。

在 SNS 控制台中,展开主题列表,然后从您的警报中选择主题。打开“创建订阅”框,选择与协议对应的电子邮件,然后输入所需的电子邮件地址。单击“订阅”将重新发送确认电子邮件。

问:我正在通过将 Elastic Load Balancers (ELB) 用作终端节点进行 DNS 故障转移。如何查看这些终端节点的状态?

要使用 ELB 终端节点设置 DNS 故障转移,建议将别名记录与“评估目标运行状况”选项一起使用。由于使用此选项时不会为 ELB 终端节点创建自己的运行状况检查,因此 Route 53 不会为这些终端节点生成特定的 CloudWatch 指标。

您可以通过两种方式获取有关负载均衡器运行状况的指标。首先,Elastic Load Balancing 发布指标,这些指标指示负载均衡器的运行状况及其背后运行正常的实例数。有关 CloudWatch 指标或为 ELB 指标设置 Cloudwatch 警报的详细信息,请参阅 ELB 开发人员指南。其次,您可以针对 ELB 提供的 CNAME 创建自己的运行状况检查。您将不会对 DNS 故障转移本身使用此运行状况检查(因为“评估目标运行状况”选项为您提供了 DNS 故障转移),但是您可以查看此运行状况检查的 CloudWatch 指标,并创建警报以在运行状况检查失败时得到通知。

问:将 CloudWatch 指标用于 Route 53 运行状况检查所需的成本是多少?

可免费获得 Route 53 运行状况检查的 CloudWatch 指标。

问:是否可以基于内部运行状况指标(例如 CPU 负载、网络或内存)配置 DNS 故障转移?

是。通过 Amazon Route 53 基于指标的运行状况检查,您可以基于 Amazon CloudWatch 中提供的任何指标(包括亚马逊云科技提供的指标和您自己的应用程序中的自定义指标)执行 DNS 故障转移。在 Amazon Route 53 中创建基于指标的运行状况检查时,只要其关联的 Amazon CloudWatch 指标进入警报状态,运行状况检查就会运行不正常。

要为标准 Amazon Route 53 运行状况检查无法访问的终端节点(例如仅具有私有 IP 地址的 Virtual Private Cloud (VPC) 中的实例)启用 DNS 故障转移,基于指标的运行状况检查很有用。使用 Amazon Route 53 经过计算的运行状况检查功能,您还可以将基于指标的运行状况检查的结果与标准的 Amazon Route 53 运行状况检查的结果相结合,以此完成更复杂的故障转移方案。标准的 Amazon Route 53 运行状况检查可以向来自中国区域的检查器网络的终端节点发出请求。例如,如果无法访问面向公众的网页,或者内部指标(例如 CPU 负载、网络输入/输出或磁盘读取)表明服务器本身运行不正常,则可以创建从终端节点故障转移的配置。

问:如果我将域名指定为我的运行状况检查目标,那么 Amazon Route 53 是否会通过 IPv4 或 IPv6 进行检查?

如果您将域名指定为 Amazon Route 53 运行状况检查的终端节点,则 Amazon Route 53 将查找该域名的 IPv4 地址,并连接到使用 IPv4 的终端节点。Amazon Route 53 不会尝试查找由域名指定的终端节点的 IPv6 地址。如果要通过 IPv6 而不是 IPv4 执行运行状况检查,请选择“IP 地址”而不是“域名”作为终端节点类型,然后在“IP 地址”字段中输入 IPv6 地址。

相关文章