

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 简单 Amazon Route 53 配置中的运行状况检查的工作原理
<a name="dns-failover-simple-configs"></a>

当有两个或更多资源执行相同功能 (例如用于 example.com 的两个或更多 Web 服务器) 时，可使用下列运行状况检查功能，将流量仅路由到运行状况良好的资源：

**检查 EC2 实例和其他资源的运行状况 (非别名记录)**  
如果要将流量路由到无法为其创建别名记录的资源 (如 EC2 实例)，可为每个资源创建记录和运行状况检查。然后，将每个运行状况检查与适用的记录关联。运行状况检查会定期检查对应资源的运行状况，而且 Route 53 仅将流量路由到运行状况检查报告为运行状况良好的资源。

**评估 AWS 资源的运行状况（别名记录）**  
如果您使用[别名记录](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-choosing-alias-non-alias.html)将流量路由到选定 AWS 资源（例如 ELB 负载均衡器），则可以配置 Route 53 来评估资源的运行状况，并仅将流量路由到运行状况良好的资源。在配置别名记录以评估一个资源的运行状况时，不需要为该资源创建运行状况检查。

下面将简单介绍一下，在简单配置中如何配置 Route 53 来检查资源的运行状况：

1. 确定希望 Route 53 监控其运行状况的资源。例如，您可能要监控所有响应对 example.com 的请求的 HTTP 服务器。

1. 对于不能为其创建别名记录的资源，如 EC2 实例或您自己的数据中心中运行的服务器，为其创建运行状况检查。您可以指定如何向资源发送健康检查请求：使用哪个协议（HTTP、HTTPS 或 TCP）、使用哪个 IP 地址和端口，以及用于运行 HTTP/HTTPS 状况检查的域名和路径。
**注意**  
如果您正在使用的任何资源是可以为其创建别名记录的资源，如 ELB 负载均衡器，不要为这些资源创建运行状况检查。

   常见配置是为每个资源创建一个运行状况检查，并对该运行状况检查端点使用与资源相同的 IP 地址。运行状况检查将请求发送到指定的 IP 地址。
**注意**  
Route 53 不能检查 IP 地址为本地、私有、不可路由或多播范围的资源的运行状况。有关无法为其创建运行状况检查的 IP 地址的更多信息，请参阅 [RFC 5735 “特殊用途 IPv4 地址” 和 RFC 6598，“共享地址](https://datatracker.ietf.org/doc/html/rfc5735)[空间的 Iana 保留前缀 IPv4 ](https://datatracker.ietf.org/doc/html/rfc6598)”。

   有关创建运行状况检查的更多信息，请参阅[创建、更新和删除运行状况检查](health-checks-creating-deleting.md)。

1. 您可能需要配置路由器和防火墙规则，以使 Route 53 可向您在运行状况检查中指定的端点发送常规请求。有关更多信息，请参阅 [为 Amazon Route 53 运行状况检查配置路由器和防火墙规则为运行状况检查配置路由器和防火墙规则](dns-failover-router-firewall-rules.md)。

1. 您可以为资源创建一组记录，例如一组加权记录。您可以组合使用别名和非别名记录，但它们都必须具有相同的 **Name** (名称)、**Type** (类型) 和 **Routing Policy** (路由策略)。

   您如何配置 Route 53 来检查资源的运行状况取决于您是要创建别名记录还是非别名记录：
   + **别名记录** — 为 **Evaluate Target Health**（评估目标运行状况）指定 — **Yes**（是）。
   + **非别名记录** — 将您在第 2 步中创建的运行状况检查与对应记录关联。

   完成后，您的配置将类似于以下图表，其中仅包含非别名记录：  
![\[三个加权记录和对应的运行状况检查。\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/hc-weighted.png)

   有关使用 Route 53 控制台创建记录的更多信息，请参阅 [通过使用 Amazon Route 53 控制台创建记录](resource-record-sets-creating.md)。

1. 如果您创建了运行状况检查，Route 53 会定期向端点发送运行状况检查请求；它在接收 DNS 查询时不执行运行状况检查。Route 53 会根据响应确定端点是否运行良好，并使用该信息来确定如何响应查询。有关更多信息，请参阅 [Amazon Route 53 如何确定运行状况检查是否正常Route 53 如何确定运行状况检查是否正常](dns-failover-determining-health-of-endpoints.md)。

   Route 53 不会检查记录中所指定资源的运行状况，如在 example.com 的 A 记录中指定的 IP 地址。当您将运行状况检查与记录关联时，Route 53 将开始检查您在运行状况检查中所指定端点的运行状况。您还可以将 Route 53 配置为监控其他运行状况检查的运行状况或监控CloudWatch 警报的数据流。有关更多信息，请参阅 [Amazon Route 53 运行状况检查类型运行状况检查的类型](health-checks-types.md)。

当 Route 53 收到对 example.com 的查询时，将发生以下情况：

1. Route 53 根据路由策略选择记录。在这种情况下，它会根据权重来选择记录。

1. 它通过检查选定记录的运行状况检查的状态来确定该记录的当前运行状况。

1. 如果所选记录运行状况不佳，则 Route 53 会选择不同的记录。此时，将不考虑运行状况不佳的记录。

   有关更多信息，请参阅 [Amazon Route 53 在已配置运行状况检查时如何选择记录Route 53 在已配置运行状况检查时如何选择记录](health-checks-how-route-53-chooses-records.md)。

1. 当 Route 53 发现运行状况良好的记录时，它会使用适用值 (如 A 记录中的 IP 地址) 来响应查询。

以下示例显示了一组加权记录，其中第三个记录的运行状况不佳。最初，Route 53 会根据所有三个记录的权重选择一个记录。如果第一次碰巧选择了运行状况不佳的记录，Route 53 会选择另一个记录，但这次将在计算中忽略第三个记录的权重：
+ 当 Route 53 最初从全部三个记录中进行选择时，在大约 20% 的时间内 (10/(10\$120\$120))，它会使用第一个记录来响应请求。
+ 当 Route 53 确定第三个记录运行状况不佳时，在大约 33% 的时间内 (10/(10\$120))，它将使用第一个记录来响应请求。

![\[三个加权记录和对应的运行状况检查。第三个运行状况检查运行状况不良，因此 Route 53 会认为关联记录的运行状况不良。\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/hc-weighted-failed-hc.png)


如果您在一组记录的一个或多个记录中省略运行状况检查，则 Route 53 无法确定对应资源的运行状况。Route 53 将这些记录视为运行良好。

![\[三个加权的记录，只有两个有运行状况检查。Route 53 始终认为第三个记录运行状况良好。\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/hc-weighted-missing-health-check.png)
