

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

# 创建 Amazon Route 53 运行状况检查
<a name="dns-failover"></a>

Amazon Route 53 运行状况检查监控 Web 应用程序、Web 服务器以及其它资源的运行状况和性能。您创建的每种运行状况检查都可以监控以下任一内容：
+ 指定资源（如 Web 服务器）的运行状况。
+ 其它运行状况检查的状态。
+ Amazon CloudWatch 警报的状态。
+ 此外，借助 Amazon 应用程序恢复控制器 (ARC)，您可以使用 DNS 故障转移记录设置路由控制运行状况检查，以管理应用程序的流量故障转移。要了解更多信息，请参阅 [Amazon 应用程序恢复控制器 (ARC) 开发人员指南](https://docs.aws.amazon.com/r53recovery/latest/dg/what-is-route-53-recovery.html)。

有关运行状况检查类型的概览，请参阅 [Amazon Route 53 运行状况检查类型运行状况检查的类型](health-checks-types.md)。有关创建运行状况检查的信息，请参阅[创建和更新运行状况检查](health-checks-creating.md)。

在创建运行状况检查后，您可以获取运行状况检查的状态、在状态更改时获取通知，还可以配置 DNS 故障转移：

**获取运行状况检查状态和通知**  
可在 Route 53 控制台中查看运行状况检查的当前和最近状态。您也可以通过 Route 53 API 中的一个 AWS SDKs、 AWS Command Line Interface AWS Tools for Windows PowerShell、或 Route 53 API 以编程方式处理运行状况检查。  
如果您想在运行状况检查的状态发生变化时收到通知，可以为每项运行状况检查配置一个 Amazon CloudWatch 警报。  
有关查看运行状况检查状态和接收通知的信息，请参阅[监控运行状况检查状态和获取通知](health-checks-monitor-view-status.md)。

**配置 DNS 故障转移**  
如果您有多个执行相同功能的资源，则可配置 DNS 故障转移，以使 Route 53 将流量从运行状况不佳的资源路由到运行状况良好的资源。例如，如果您有两台 Web 服务器，其中一台 Web 服务器运行状况不佳，则 Route 53 可将流量路由到另一台 Web 服务器。有关更多信息，请参阅 [配置 DNS 故障转移](dns-failover-configuring.md)。

**Topics**
+ [Amazon Route 53 运行状况检查类型](health-checks-types.md)
+ [Amazon Route 53 如何确定运行状况检查是否正常](dns-failover-determining-health-of-endpoints.md)
+ [创建、更新和删除运行状况检查](health-checks-creating-deleting.md)
+ [配置 DNS 故障转移](dns-failover-configuring.md)
+ [为运行状况检查命名和添加标签](health-checks-tagging.md)
+ [将运行状况检查程序与早于 2012-12-12 的 Amazon Route 53 API 版本结合使用](dns-failover-using-old-apis.md)

# Amazon Route 53 运行状况检查类型
<a name="health-checks-types"></a>

您可以创建以下类型的 Amazon Route 53 运行状况检查：

**监控端点的运行状况检查**  
您可以配置运行状况检查来监控通过 IP 地址或域名指定的端点。Route 53 按照您指定的固定间隔，通过互联网向您的应用程序、服务器或其它资源自动提交请求，以验证其是否可到达、是否可用及功能是否正常。您也可以通过配置运行状况检查来发出与用户发出的请求类似的请求，如从特定 URL 请求网页。

**监控其他运行状况检查的运行状况检查 (已计算的运行状况检查)**  
您可以创建运行状况检查，以监控 Route 53 是将其它运行状况检查视为运行状况良好还是不佳。在下面的情况下，这种运行状况检查可能很有用：您有多个执行相同功能的资源 (如多台 Web 服务器)，您主要关注的是运行状况良好的资源数是否达到最少数目。您可以为每个资源创建运行状况检查，而不为这些运行状况检查配置通知。然后，您可以创建一个运行状况检查，来监控其他运行状况检查的状态，并且仅在可用的 Web 资源数低于指定阈值时通知您。

**用于监控 CloudWatch 警报的 Health 检查**  
您可以创建 CloudWatch 警报来监控 CloudWatch 指标的状态，例如 Amazon DynamoDB 数据库的受限读取事件数量或被认为运行正常的 Elastic Load Balancing 主机的数量。创建警报后，您可以创建运行状况检查，用于 CloudWatch 监控警报的相同数据流。  
为了提高弹性和可用性，Route 53 不会等待 CloudWatch警报进入`ALARM`状态。根据数据流和 CloudWatch 警报中的标准，运行状况检查的状态会从健康变为不健康。  
Route 53 支持具有以下功能的 CloudWatch 警报：  
+ 标准精度指标。不支持高精度指标。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[高分辨率指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html#high-resolution-metrics)。
+ 统计数据：平均值、最小值、最大值、总和和 SampleCount。不支持扩展统计数据。
+ Route 53 不支持“M (N)”告警。有关更多信息，请参阅 *Amazon CloudWatch 指南*中的[评估警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)。
+ 运行状况检查只能监控与运行状况检查同一个 AWS 账户中存在的 CloudWatch 警报。
+ Route 53 不支持使用[指标数学](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)查询多个 CloudWatch 指标的警报。

**Amazon 应用程序恢复控制器（ARC）中的路由控制**  
ARC 中的运行状况检查与路由控制关联，路由控制是简单的开关切换。您可以使用故障转移 DNS 记录配置每个路由控制运行状况检查。然后，您只需在 ARC 中更新路由控制即可重新路由流量并对应用程序进行故障切换，例如跨可用区或区域进行 AWS故障转移。有关更多信息，请参阅《ARC 开发人员指南》中的 [ARC 中的路由控制](https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.html)。

# Amazon Route 53 如何确定运行状况检查是否正常
<a name="dns-failover-determining-health-of-endpoints"></a>

Amazon Route 53 用来确定运行状况检查是否正常的方法取决于运行状况检查的类型。

## Route 53 如何确定监控端点的运行状况检查的状态
<a name="dns-failover-determining-health-of-endpoints-monitor-endpoint"></a>

Route 53 在世界各地都具有运行状况检查程序。当您创建监控端点的运行状况检查时，运行状况检查程序将开始向您指定的端点发送请求，以确定该端点是否运行良好。您可以选择 Route 53 要使用的位置，也可以指定检查之间的时间间隔：每 10 秒或每 30 秒。请注意，不同数据中心的 Route 53 运行状况检查程序不会彼此协作，因此无论您选择多久的时间间隔，都会遇到有时每秒收到多个请求、然后接下来的几秒根本没有任何运行状况检查请求的情况。

每个运行状况检查程序基于以下两个值评估端点的运行状况：
+ 响应时间。资源可能出于各种原因而响应缓慢或无法响应运行状况检查请求。例如，资源因维护而关闭，受到分布式拒绝服务 (DDoS) 攻击，或者网络已关闭。
+ 端点是否响应您指定的一系列连续运行状况检查 (失败阈值)

Route 53 将聚合运行状况检查程序中的数据并确定端点是否运行正常：
+ 如果超过 18% 的运行状况检查程序报告端点运行状况良好，则 Route 53 将认为它运行状况良好。
+ 如果 18% 或更少的运行状况检查程序报告端点运行状况良好，则 Route 53 将认为它运行状况不佳。

选择 18% 的值是为了确保位于多个区域的运行状况检查程序认为端点运行状况良好。这可以防止端点仅因为网络条件问题导致与部分运行状况检查位置隔离而被视为运行状况不佳。在未来的版本中，这个值可能会更改。

单个运行状况检查程序用于确定端点运行状况是否正常的响应时间取决于运行状况检查的类型：
+ **HTTP 和 HTTPS 运行状况检查** — Route 53 必须能够在四秒内与端点建立 TCP 连接。此外，该端点必须在连接后的两秒内用 2xx 或 3xx 的 HTTP 状态代码来响应。
**注意**  
HTTPS 运行状况检查不验证 SSL/TLS 证书，因此如果证书无效或已过期，检查也不会失败。
+ **TCP 运行状况检查** — Route 53 必须能够在十秒内与端点建立 TCP 连接。
+ **使用字符串匹配的 HTTP 和 HTTPS 运行状况检查** — 与 HTTP 和 HTTPS 运行状况检查一样，Route 53 必须能够在四秒内与端点建立 TCP 连接，并且端点必须在连接后的两秒内使用 HTTP 状态代码 2xx 或 3xx 来响应。

  Route 53 运行状况检查程序在收到 HTTP 状态代码之后，它必须在接下来的两秒内收到来自端点的响应正文。Route 53 将在响应正文中搜索您指定的字符串。该字符串必须完全显示在响应正文的前 5120 个字节中，否则端点将无法通过运行状况检查。如果您使用的是 Route 53 控制台，则需在 **Search String**（搜索字符串）字段中指定字符串。如果您使用的是 Route 53 API，则需在创建运行状况检查时在 `SearchString` 元素中指定字符串。

对于监控终端节点的运行状况检查（TCP 运行状况检查除外），如果来自终端节点的响应包含任何标头，则标头必须采用超文本传输协议 (HTTP/1.1)：消息语法和路由，[第 3.2 节 “标头](https://tools.ietf.org/html/rfc7230#section-3.2)字段” 中 RFC7230定义的格式。

Route 53 在没有足够的数据来确定实际状态、运行正常或不正常时，将新的运行状况检查视为正常。如果您选择了反转运行状况检查状态的选项，则 Route 53 在有足够的数据之前将运行状况检查视为*不正常*。

## Route 53 如何确定监控其它运行状况检查的运行状况检查的状态
<a name="dns-failover-determining-health-of-endpoints-calculated"></a>

运行状况检查可以监控其他运行状况检查的状态；此类型的运行状况检查称为*已计算的运行状况检查*。进行监控的运行状况检查是*父运行状况检查*，受监控的运行状况检查是*子运行状况检查*。一个父运行状况检查可以监控最多 255 个子运行状况检查的运行状况。以下是监控的工作原理：
+ Route 53 将视为运行状况良好的子运行状况检查的数量相加。
+ Route 53 将该数字与运行状况必须正常、否则即认为父运行状况检查的状态不良的子运行状况检查数量进行比较。

有关更多信息，请参阅[您在创建或更新运行状况检查时指定的值](health-checks-creating-values.md)中的[监控其他运行状况检查（已计算的运行状况检查）](health-checks-creating-values.md#health-checks-creating-values-calculated)。

Route 53 在没有足够的数据来确定实际状态、运行正常或不正常时，将新的运行状况检查视为正常。如果您选择了反转运行状况检查状态的选项，则 Route 53 在有足够的数据之前将运行状况检查视为*不正常*。

## Route 53 如何确定监控 CloudWatch 警报的运行状况检查的状态
<a name="dns-failover-determining-health-of-endpoints-cloudwatch"></a>

当您创建基于 CloudWatch 警报的运行状况检查时，Route 53 会监控相应警报的数据流，而不是监控警报状态。如果数据流指示告警的状态为 **OK (正常)**，则认为该运行状况检查正常。如果数据流指示状态为 **Alarm (告警)**，则认为该运行状况检查不正常。如果数据流未提供足够的信息来确定告警的状态，则运行状况检查状态将取决于 **Health check status (运行状况检查状态)** 的设置：运行状况良好、运行状况不佳或上一个已知状态。（在 Route 53 API 中，此设置为 `InsufficientDataHealthStatus`。）

Route 53 不支持跨账户 CloudWatch 警报。

**注意**  
由于 Route 53 运行状况检查监控 CloudWatch 数据流而不是CloudWatch 警报状态，因此您无法使用 CloudWatch [SetAlarmState](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_SetAlarmState.html)API 操作强制更改运行状况检查的状态。

Route 53 在没有足够的数据来确定实际状态、运行正常或不正常时，将新的运行状况检查视为正常。如果您选择了反转运行状况检查状态的选项，则 Route 53 在有足够的数据之前将运行状况检查视为*不正常*。

# 创建、更新和删除运行状况检查
<a name="health-checks-creating-deleting"></a>

**重要**  
如果您要更新或删除与记录关联的运行状况检查，请先查看[在配置了 DNS 故障转移的情况下更新或删除运行状况检查](health-checks-updating-deleting-tasks.md)中的任务，然后再继续。

本节涵盖以下有关管理 Route 53 运行状况检查的主题：

1. **创建和更新运行状况检查：**
   + 了解如何使用 Route 53 控制台创建和更新运行状况检查。
   + 了解创建或更新运行状况检查时需要指定的值，例如端点监控、协议、IP 地址、域名和高级配置选项。

1. **创建运行状况检查时的显示值：**
   + 根据您在创建运行状况检查时输入的内容，了解 Route 53 控制台显示的值，例如完整的 URL 或 IP 地址和端口。

1. **更新 CloudWatch 警报更改的运行状况检查：**
   + 了解如何在更改相关 CloudWatch 警报的设置时更新运行状况检查。

1. **删除运行状况检查：**
   + 按照步骤使用 Route 53 控制台删除运行状况检查。

1. **在配置了 DNS 故障转移的情况下更新或删除运行状况检查：**
   + 了解更新或删除与 DNS 记录关联的运行状况检查时需要执行的建议任务，以确保路由和故障转移配置正确。

1. **配置路由器和防火墙规则：**
   + 了解如何配置路由器和防火墙规则以允许来自 Route 53 运行状况检查程序的入站流量，从而确保运行状况检查取得成功。

通过遵循本节提供的信息，就可以有效地创建、更新和删除 Route 53 运行状况检查，管理运行状况检查配置，并确保恰当集成 DNS 故障转移和路由策略。

**Topics**
+ [创建和更新运行状况检查](health-checks-creating.md)
+ [您在创建或更新运行状况检查时指定的值](health-checks-creating-values.md)
+ [创建运行状况检查时 Amazon Route 53 显示的值](health-checks-creating-values-displayed.md)
+ [更改 CloudWatch 警报设置时更新运行状况检查（仅监控 CloudWatch 警报的运行状况检查）](health-checks-updating-cloudwatch-alarm-settings.md)
+ [禁用或启用运行状况检查](health-checks-disable.md)
+ [反转运行状况检查](health-checks-invert.md)
+ [删除运行状况检查](health-checks-deleting.md)
+ [在配置了 DNS 故障转移的情况下更新或删除运行状况检查](health-checks-updating-deleting-tasks.md)
+ [为 Amazon Route 53 运行状况检查配置路由器和防火墙规则](dns-failover-router-firewall-rules.md)

# 创建和更新运行状况检查
<a name="health-checks-creating"></a>

以下过程介绍如何使用 Route 53 控制台创建和更新运行状况检查。

**注意**  
我们正在更新 Route 53 的运行状况检查控制台。在过渡期间，您可以继续使用旧控制台。

选择您正在使用的控制台的选项卡。
+ [新控制台](#health-checks-creating-new)
+ [旧控制台](#health-checks-creating-old)

------
#### [ New console ]<a name="health-checks-creating-proc"></a>

**创建或更新运行状况检查**

1. 如果要更新已经与记录关联的运行状况检查，请执行[在配置了 DNS 故障转移的情况下更新或删除运行状况检查](health-checks-updating-deleting-tasks.md)中推荐的任务。

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择 **Health Checks (运行状况检查)**。

1. 如果要更新现有的运行状况检查，请选择该运行状况检查的链接 ID，然后选择**编辑**。

   如果要创建运行状况检查，请选择**创建运行状况检查**。

1. 输入适用的值。请注意，有些值在创建运行状况检查后无法更改。有关更多信息，请参阅 [您在创建或更新运行状况检查时指定的值](health-checks-creating-values.md)。

1. 选择**创建运行状况检查**。
**注意**  
Route 53 在没有足够的数据来确定实际状态、运行正常或不正常时，将新的运行状况检查视为正常。

1. 将运行状况检查与一个或多个 Route 53 记录关联。有关创建和更新记录的信息，请参阅[使用记录](rrsets-working-with.md)。

------
#### [ Old console ]<a name="health-checks-creating-console-proc"></a>

**创建或更新运行状况检查**

1. 如果要更新已经与记录关联的运行状况检查，请执行[在配置了 DNS 故障转移的情况下更新或删除运行状况检查](health-checks-updating-deleting-tasks.md)中推荐的任务。

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择 **Health Checks (运行状况检查)**。

1. 如果要更新现有的运行状况检查，请选择该运行状况检查，然后选择 **Edit Health Check**。

   如果要创建运行状况检查，请选择 **Create Health Check**。有关每种设置的更多信息，请将鼠标指针移到标签上以查看其工具提示。

1. 输入适用的值。请注意，有些值在创建运行状况检查后无法更改。有关更多信息，请参阅 [您在创建或更新运行状况检查时指定的值](health-checks-creating-values.md)。

1. 选择 **Create Health Check**。
**注意**  
Route 53 在没有足够的数据来确定实际状态、运行正常或不正常时，将新的运行状况检查视为正常。如果您选择了反转运行状况检查状态的选项，则 Route 53 在有足够的数据之前将运行状况检查视为*不正常*。

1. 将运行状况检查与一个或多个 Route 53 记录关联。有关创建和更新记录的信息，请参阅[使用记录](rrsets-working-with.md)。

------

# 您在创建或更新运行状况检查时指定的值
<a name="health-checks-creating-values"></a>

在创建或更新运行状况检查时，您会指定适用的值。请注意，有些值在创建运行状况检查后无法更改。

**Topics**
+ [监控端点](#health-checks-creating-values-endpoint)
+ [监控其他运行状况检查（已计算的运行状况检查）](#health-checks-creating-values-calculated)
+ [监控 CloudWatch 警报](#health-checks-creating-values-cloudwatch)
+ [高级配置（仅限“监控端点”）](#health-checks-creating-values-advanced)
+ [在运行状况检查失败时收到通知](#health-checks-creating-values-alarm)

**Name**  
可选，但建议设置：要为运行状况检查分配的名称。如果您为 **Name**（名称）指定值，Route 53 将为运行状况检查添加标签、将值 **Name**（名称）分配给该标签键，并将您指定的值分配给标签值。**Name**（名称）标签的值将显示在 Route 53 控制台的运行状况检查列表中，以便于您轻松区分各个运行状况检查。  
有关为运行状况检查添加标签的更多信息，请参阅[为运行状况检查命名和添加标签](health-checks-tagging.md)。

**What to monitor**  
您希望此运行状况检查监控端点还是监控其它运行状况检查的状态：  
+ **Endpoint**（端点）— Route 53 监控您指定的端点的运行状况。可通过提供域名或 IP 地址和端口来指定端点。
**注意**  
如果您指定非AWS 终端节点，则需支付额外费用。有关更多信息，包括 AWS 端点的定义，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)页上的“运行状况检查”。
+ **Status of other health checks (calculated health check)**（其它运行状况检查（已计算的运行状况检查）的状态）— Route 53 根据您指定的其它运行状况检查的状态来确定此运行状况检查是否运行良好。您还可以指定需要有多少个运行状况检查运行良好，才会将此运行状况检查视为运行良好。
+ ** CloudWatch 警报数据流的状态** — Route 53 通过监控 CloudWatch 警报的数据流来确定此运行状况检查是否正常。

## 监控端点
<a name="health-checks-creating-values-endpoint"></a>

**注意**  
我们正在更新 Route 53 的运行状况检查控制台。在过渡期间，您可以继续使用旧控制台。

选择您正在使用的控制台的选项卡。
+ [新控制台](#health-checks-creating-values-endpoint-new)
+ [旧控制台](#health-checks-creating-values-endpoint-old)

------
#### [ New console ]

如果您希望此运行状况检查来监控端点，请指定以下值：
+ 使用以下指定端点
+ IP 地址
+ 域名

**Specify endpoint by**  
您要使用 IP 地址还是使用域名来指定端点。  
创建运行状况检查后，您将无法更改 **Specify endpoint by** 的值。

**IP address (仅限于“Specify endpoint by IP address”)**  
在下拉列表中选择协议，在文本框中输入 IP 地址、端口和路径。  
+ 协议可以是以下之一：

  **HTTP** — Route 53 尝试建立 TCP 连接。如果成功，Route 53 将提交 HTTP 请求并等待 2xx 或 3xx 的 HTTP 状态代码。
+ **HTTPS** — Route 53 尝试建立 TCP 连接。如果成功，Route 53 将提交 HTTPS 请求并等待 2xx 或 3xx 的 HTTP 状态代码。
**重要**  
如果您选择 **HTTPS**，则端点必须支持 TLS v1.0、v1.1 或 v1.2。

  如果您选择 **HTTPS** 作为 **Protocol** 的值，将产生额外费用。有关更多信息，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)。
+ **TCP** — Route 53 尝试建立 TCP 连接。
有关更多信息，请参阅 [Amazon Route 53 如何确定运行状况检查是否正常Route 53 如何确定运行状况检查是否正常](dns-failover-determining-health-of-endpoints.md)。  
创建运行状况检查后，您将无法更改 **Protocol** 的值。  
对于该 **IP 地址**，如果您选择通过 IP IPv6 地址**指定终端节点，则可以输入希望 Route 53 对其执行运行状况检查的终端节点的 IPv4 或地址**。  
Route 53 不能检查 IP 地址为本地、私有、不可路由或多播范围的端点的运行状况。有关无法为其创建运行状况检查的 IP 地址的更多信息，请参阅以下文档：  
+ [RFC 5735，特殊用途地址 IPv4 ](http://tools.ietf.org/html/rfc5735)
+ [RFC 6598，IANA 为共享地址空间保留 IPv4 的前缀。](http://tools.ietf.org/html/rfc6598)
+ [RFC 5156，特殊用途地址 IPv6 ](https://tools.ietf.org/html/rfc5156)
如果端点为 Amazon EC2 实例，我们建议您创建一个弹性 IP 地址，将其与您的 EC2 实例关联，并指定该弹性 IP 地址。这样可以确保您的实例的 IP 地址绝不会发生变化。有关更多信息，请参阅*《Amazon EC2 用户指南》*中的[弹性 IP 地址 (EIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)。  
如果您删除 Amazon EC2 实例，请确保同时删除与 EIP 关联的运行状况检查。有关更多信息，请参阅 [Amazon Route 53 运行状况检查的最佳实践](best-practices-healthchecks.md)。  
如果您指定非AWS 终端节点，则需支付额外费用。有关更多信息，包括 AWS 端点的定义，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)页上的“运行状况检查”。
对于端口，请输入需要 Route 53 执行运行状况检查的端点上的**端口**。  
对于**路径（仅限 HTTP 和 HTTPS 协议）**，请输入您希望 Route 53 在执行运行状况检查时请求的路径。路径可以是任何值，当终端节点运行正常时，您的终端节点将为其返回 2xx 或 3xx 的 H TTP 状态代码，例如文件/.html？docs/route53-health-check.html. You can also include query string parameters, for example, /welcome language=jp&login=y。如果您未包含前导斜杠 (/) 字符，Route 53 会自动添加一个。

**Domain name (仅限于“Specify endpoint by domain name”，所有协议)**  
如果您已选择 **Specify endpoint by domain name**（通过域名指定端点），则此值为您希望 Route 53 对其执行运行状况检查的端点的域名 (example.com) 或子域名 (backend.example.com)。  
如果您选择通过域名指定端点，Route 53 将按您在 **Request interval**（请求间隔）中指定的时间间隔发送 DNS 查询，以解析您在 **Domain name**（域名）中指定的域名。然后，Route 53 将使用 DNS 返回的 IP 地址来检查端点的运行状况。  
如果您按域名指定终端节点，则 Route 53 仅用于IPv4 向终端节点发送运行状况检查。如果没有用于您为 **Domain name** 指定的名称的 A 类记录，运行状况检查将失败，并显示“DNS resolution failed”错误。
如果要检查故障转移、地理位置、地理位置临近度、延迟、多值或加权记录的运行状况，并且您选择的是通过域名指定端点，那么我们建议您为每个端点创建单独的运行状况检查。例如，为向 www.example.com 提供内容的每台 HTTP 服务器创建运行状况检查。为 **Domain name** 值指定服务器的域名 (such as us-east-2-www.example.com)，而不是记录的名称 (www.example.com)。  
在此配置中，如果创建 **Domain name** 的值与记录名称匹配的运行状况检查，然后将该运行状况检查与记录关联，那么运行状况检查结果将无法预测。
此外，如果**协议**的值为 **HTTP** 或 **HTTPS**，则 Route 53 将传递 `Host` 标头中的**域名**值，如本列表中前面的**主机名称**中所述。如果 **Protocol**（协议）的值为 **TCP**，Route 53 将不传递 `Host` 标头。  
如果您指定非AWS 终端节点，则需支付额外费用。有关更多信息，包括 AWS 端点的定义，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)页上的“运行状况检查”。

------
#### [ Old console ]

如果您希望此运行状况检查来监控端点，请指定以下值：
+ Specify endpoint by
+ 协议
+ IP 地址
+ Host name
+ 端口：
+ 域名
+ 路径

**Specify endpoint by**  
您要使用 IP 地址还是使用域名来指定端点。  
创建运行状况检查后，您将无法更改 **Specify endpoint by** 的值。

**协议**  
您希望 Route 53 用于检查端点运行状况的方法：  
+ **HTTP** — Route 53 尝试建立 TCP 连接。如果成功，Route 53 将提交 HTTP 请求并等待 2xx 或 3xx 的 HTTP 状态代码。
+ **HTTPS** — Route 53 尝试建立 TCP 连接。如果成功，Route 53 将提交 HTTPS 请求并等待 2xx 或 3xx 的 HTTP 状态代码。
**重要**  
如果您选择 **HTTPS**，则端点必须支持 TLS v1.0、v1.1 或 v1.2。

  如果您选择 **HTTPS** 作为 **Protocol** 的值，将产生额外费用。有关更多信息，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)。
+ **TCP** — Route 53 尝试建立 TCP 连接。
有关更多信息，请参阅 [Amazon Route 53 如何确定运行状况检查是否正常Route 53 如何确定运行状况检查是否正常](dns-failover-determining-health-of-endpoints.md)。  
创建运行状况检查后，您将无法更改 **Protocol** 的值。

**IP address (仅限于“Specify endpoint by IP address”)**  
如果您选择 “**通过 IP IPv6 地址指定终端节点”，则指您希望 Route 53 对其执行运行状况检查的终端节点的 IPv4 或地址**。  
Route 53 不能检查 IP 地址为本地、私有、不可路由或多播范围的端点的运行状况。有关无法为其创建运行状况检查的 IP 地址的更多信息，请参阅以下文档：  
+ [RFC 5735，特殊用途地址 IPv4 ](http://tools.ietf.org/html/rfc5735)
+ [RFC 6598，IANA 为共享地址空间保留 IPv4 的前缀。](http://tools.ietf.org/html/rfc6598)
+ [RFC 5156，特殊用途地址 IPv6 ](https://tools.ietf.org/html/rfc5156)
如果端点为 Amazon EC2 实例，我们建议您创建一个弹性 IP 地址，将其与您的 EC2 实例关联，并指定该弹性 IP 地址。这样可以确保您的实例的 IP 地址绝不会发生变化。有关更多信息，请参阅*《Amazon EC2 用户指南》*中的[弹性 IP 地址 (EIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)。  
如果您删除 Amazon EC2 实例，请确保同时删除与 EIP 关联的运行状况检查。有关更多信息，请参阅 [Amazon Route 53 运行状况检查的最佳实践](best-practices-healthchecks.md)。  
如果您指定非AWS 终端节点，则需支付额外费用。有关更多信息，包括 AWS 端点的定义，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)页上的“运行状况检查”。

**Host name (仅限于“Specify endpoint by IP address”，仅限于 HTTP 和 HTTPS 协议)**  
您希望 Route 53 在 HTTP 和 HTTPS 运行状况检查的 `Host` 标头中传递的值。通常是您希望 Route 53 对其执行运行状况检查的网站的完全限定 DNS 名称。以下是 Route 53 在检查端点的运行状况时构造 `Host` 标头的方式：  
+ 如果您为 **Port**（端口）指定值 **80**，为 **Protocol**（协议）指定 **HTTP**，则 Route 53 将向端点传递一个包含 **Host name**（主机名称）的值的 `Host` 标头。
+ 如果您为 **Port**（端口）指定值 **443**，为 **Protocol**（协议）指定 **HTTPS**，则 Route 53 将向端点传递一个包含 **Host name**（主机名称）的值的 `Host` 标头。
+ 如果您为 “**端口**” 指定其他值，为 “**协议”** 指定了 **HTTP** 或 **HT** TPS，则 Route 53 会将包含*Host name***以下值的`Host`标头传递给终端节点：***Port*。
如果您选择通过 IP 地址指定端点，并且未指定 **Host name**（主机名称）的值，Route 53 将替代上述每种情况中 `Host` 标头中的 **IP address**（IP 地址）值。

**端口：**  
您需要 Route 53 对其执行运行状况检查的端点上的端口。

**Domain name (仅限于“Specify endpoint by domain name”，所有协议)**  
如果您已选择 **Specify endpoint by domain name**（通过域名指定端点），则此值为您希望 Route 53 对其执行运行状况检查的端点的域名 (example.com) 或子域名 (backend.example.com)。  
如果您选择通过域名指定端点，Route 53 将按您在 **Request interval**（请求间隔）中指定的时间间隔发送 DNS 查询，以解析您在 **Domain name**（域名）中指定的域名。然后，Route 53 将使用 DNS 返回的 IP 地址来检查端点的运行状况。  
如果您按域名指定终端节点，则 Route 53 仅用于IPv4 向终端节点发送运行状况检查。如果没有用于您为 **Domain name** 指定的名称的 A 类记录，运行状况检查将失败，并显示“DNS resolution failed”错误。
如果要检查故障转移、地理位置、地理位置临近度、延迟、多值或加权记录的运行状况，并且您选择的是通过域名指定端点，那么我们建议您为每个端点创建单独的运行状况检查。例如，为向 www.example.com 提供内容的每台 HTTP 服务器创建运行状况检查。为 **Domain name** 值指定服务器的域名 (such as us-east-2-www.example.com)，而不是记录的名称 (www.example.com)。  
在此配置中，如果创建 **Domain name** 的值与记录名称匹配的运行状况检查，然后将该运行状况检查与记录关联，那么运行状况检查结果将无法预测。
此外，如果**协议**的值为 **HTTP** 或 **HTTPS**，则 Route 53 将传递 `Host` 标头中的**域名**值，如本列表中前面的**主机名称**中所述。如果 **Protocol**（协议）的值为 **TCP**，Route 53 将不传递 `Host` 标头。  
如果您指定非AWS 终端节点，则需支付额外费用。有关更多信息，包括 AWS 端点的定义，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)页上的“运行状况检查”。

**Path (仅限于 HTTP 和 HTTPS 协议)**  
您希望 Route 53 在执行运行状况检查时请求的路径。该路径可以是在端点运行正常时可为其返回 HTTP 状态代码 `2xx` 或 `3xx` 的任意值，如文件 `/docs/route53-health-check.html`。您也可以包括查询字符串参数，例如，`/welcome.html?language=jp&login=y`。如果您未包含前导斜杠 (`/`) 字符，Route 53 会自动添加一个。

------

## 监控其他运行状况检查（已计算的运行状况检查）
<a name="health-checks-creating-values-calculated"></a>

**注意**  
我们正在更新 Route 53 的运行状况检查控制台。在过渡期间，您可以继续使用旧控制台。

选择您正在使用的控制台的选项卡。
+ [新控制台](#health-checks-creating-values-calculated-new)
+ [旧控制台](#health-checks-creating-values-calculated-old)

------
#### [ New console ]

如果您希望此运行状况检查可监控其他运行状况检查的状态，请指定以下值：
+ Health checks to monitor
+ Report healthy when

**Health checks to monitor **  
您希望 Route 53 监控的运行状况检查，用于确定此运行状况检查的运行状况。  
最多可向 **Health checks to monitor** 中添加 256 个运行状况检查。要从列表中删除运行状况检查，请选择位于该运行状况检查的突出显示部分右侧的 **x**。  
您无法配置已计算的运行状况检查来监控其他已计算的运行状况检查的运行状况。
如果您禁用已计算的运行状况检查正在监控的某个运行状况检查，Route 53 会将此已禁用的运行状况检查视为正常，因为它计算的是已计算的运行状况检查是否正常。如果您希望将禁用的运行状况检查视为运行状况不佳，请选中 **Invert health check status (反转运行状况检查状态)** 复选框。

** Report healthy when **  
您希望 Route 53 执行的、用于确定此运行状况检查是否运行良好的计算：  
+ **Report healthy when at least x of y selected health checks are healthy**（当 y 个特定的运行状况检查中的 x 个报告正常时）— 当您添加到 **Health checks to monitor**（待监控的运行状况检查）的指定数量的运行状况检查运行良好时，则 Route 53 认为此运行状况检查运行良好。注意以下几点：
  + 如果您指定的数字大于 **Health checks to monitor**（待监控的运行状况检查）中的运行状况检查数，则 Route 53 始终认为此运行状况检查的运行状况不佳。
  + 如果您指定 **0**，则 Route 53 始终认为此运行状况检查运行良好。
+ **Report healthy when all health checks are healthy (AND)**（所有运行状况检查均正常时才报告正常 (AND)）— 仅当您添加到 **Health checks to monitor**（待监控的运行状况检查）的所有运行状况检查都运行良好时，Route 53 才认为此运行状况检查运行良好。
+ **Report healthy when one or more health checks are healthy (OR)**（一个或多个运行状况检查正常时报告正常 (OR)）— 当您添加到 **Health checks to monitor**（待监控的运行状况检查）的运行状况检查中至少有一项运行良好时，Route 53 将认为此运行状况检查运行良好。

------
#### [ Old console ]

如果您希望此运行状况检查可监控其他运行状况检查的状态，请指定以下值：
+ Health checks to monitor
+ Report healthy when
+ Invert health check status
+ 已禁用

** Health checks to monitor **  
您希望 Route 53 监控的运行状况检查，用于确定此运行状况检查的运行状况。  
最多可向 **Health checks to monitor** 中添加 256 个运行状况检查。要从列表中删除运行状况检查，请选择位于该运行状况检查的突出显示部分右侧的 **x**。  
您无法配置已计算的运行状况检查来监控其他已计算的运行状况检查的运行状况。
如果您禁用已计算的运行状况检查正在监控的某个运行状况检查，Route 53 会将此已禁用的运行状况检查视为正常，因为它计算的是已计算的运行状况检查是否正常。如果您希望将禁用的运行状况检查视为运行状况不佳，请选中 **Invert health check status (反转运行状况检查状态)** 复选框。

** Report healthy when **  
您希望 Route 53 执行的、用于确定此运行状况检查是否运行良好的计算：  
+ **Report healthy when at least x of y selected health checks are healthy**（当 y 个特定的运行状况检查中的 x 个报告正常时）— 当您添加到 **Health checks to monitor**（待监控的运行状况检查）的指定数量的运行状况检查运行良好时，则 Route 53 认为此运行状况检查运行良好。注意以下几点：
  + 如果您指定的数字大于 **Health checks to monitor**（待监控的运行状况检查）中的运行状况检查数，则 Route 53 始终认为此运行状况检查的运行状况不佳。
  + 如果您指定 **0**，则 Route 53 始终认为此运行状况检查运行良好。
+ **Report healthy when all health checks are healthy (AND)**（所有运行状况检查均正常时才报告正常 (AND)）— 仅当您添加到 **Health checks to monitor**（待监控的运行状况检查）的所有运行状况检查都运行良好时，Route 53 才认为此运行状况检查运行良好。
+ **Report healthy when one or more health checks are healthy (OR)**（一个或多个运行状况检查正常时报告正常 (OR)）— 当您添加到 **Health checks to monitor**（待监控的运行状况检查）的运行状况检查中至少有一项运行良好时，Route 53 将认为此运行状况检查运行良好。

** 反转运行状况检查状态（仅限旧控制台）**  
要在新控制台上反转运行状况检查，请参阅 [反转运行状况检查](health-checks-invert.md)。  
选择是否让 Route 53 反转运行状况检查的状态。如果您选择此选项，则 Route 53 会将状态良好的运行状况检查视为状况不佳，反之亦然。

** 已禁用（仅限旧控制台）**  
要在新控制台上禁用运行状况检查，请参阅 [禁用或启用运行状况检查](health-checks-disable.md)。  
停止 Route 53 执行运行状况检查。在您禁用运行状况检查时，Route 53 停止聚合所引用运行状况检查的状态。  
在您禁用运行状况检查之后，Route 53 将运行状况检查的状态始终视为正常。如果您配置了 DNS 故障转移，Route 53 会继续将流量路由到对应的资源。如果您要停止将流量路由到某个资源，请反转运行状况检查。  
在禁用了运行状况检查时，仍会收取运行状况检查费用。

------

## 监控 CloudWatch 警报
<a name="health-checks-creating-values-cloudwatch"></a>

**注意**  
我们正在更新 Route 53 的运行状况检查控制台。在过渡期间，您可以继续使用旧控制台。

选择您正在使用的控制台的选项卡。
+ [新控制台](#health-checks-creating-values-cloudwatch-new)
+ [旧控制台](#health-checks-creating-values-cloudwatch-old)

------
#### [ New console ]

如果您希望此运行状况检查来监控警报的 CloudWatch 警报状态，请指定以下值：
+ CloudWatch 警报
+ 运行状态检查状态

**CloudWatch 警报**  
选择您希望 Route 53 使用的 CloudWatch 警报来确定此运行状况检查是否正常。 CloudWatch 警报必须与运行状况检查 AWS 账户 相同。  
Route 53 支持具有以下功能的 CloudWatch 警报：  
+ 标准精度指标。不支持高精度指标。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[高分辨率指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html#high-resolution-metrics)。
+ 统计数据：`Average`、`Minimum`、`Maximum`、`Sum` 和 `SampleCount`。不支持扩展统计数据。
+ Route 53 不支持“M (N)”告警。有关更多信息，请参阅 *Amazon CloudWatch 指南*中的[评估警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)。
Route 53 不支持使用[指标数学](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)查询多个 CloudWatch 指标的警报。
如果要创建告警，请执行以下步骤：  

1. 选择**创建**。 CloudWatch 控制台出现在新的浏览器选项卡中。

1. 输入适用的值。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[创建或编辑 CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/ConsoleAlarms.html)。

1. 返回到显示 Route 53 控制台的浏览器选项卡。

1. 选择**CloudWatch警报**列表旁边的刷新按钮。

1. 从列表中选择新告警。
如果您在创建运行状况检查后更改 CloudWatch 警报的设置，则必须更新运行状况检查。有关更多信息，请参阅 [更改 CloudWatch 警报设置时更新运行状况检查（仅监控 CloudWatch 警报的运行状况检查）更改 CloudWatch 警报设置时更新运行状况检查](health-checks-updating-cloudwatch-alarm-settings.md)。

**运行状态检查状态**  
**当数据不足以确定您为警报选择的警报状态时，选择运行状况检查的状态（健康、不健康或上次 CloudWatch 已知状态）。CloudWatch**如果您选择使用最后一个已知状态，Route 53 将使用上次CloudWatch 有足够数据来确定警报状态的运行状况检查的状态。对于没有上一个已知状态的新运行状况检查，运行状况检查的默认状态为运行良好。  
当 CloudWatch 指标的数据流短暂不可用时，Healt **h check** status 的值会提供临时状态。（Route 53 监控数据流中的 CloudWatch 指标，而不是相应警报的状态。） 如果指标频繁不可用或长时间（超过几小时）不可用，建议您不要使用上一个已知状态。

------
#### [ Old console ]

如果您希望此运行状况检查来监控警报的 CloudWatch 警报状态，请指定以下值：
+ CloudWatch 警报
+ 运行状态检查状态
+ Invert health check status
+ 已禁用

**CloudWatch 警报**  
选择您希望 Route 53 使用的 CloudWatch 警报来确定此运行状况检查是否正常。 CloudWatch 警报必须与运行状况检查 AWS 账户 相同。  
Route 53 支持具有以下功能的 CloudWatch 警报：  
+ 标准精度指标。不支持高精度指标。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[高分辨率指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html#high-resolution-metrics)。
+ 统计数据：`Average`、`Minimum`、`Maximum`、`Sum` 和 `SampleCount`。不支持扩展统计数据。
+ Route 53 不支持“M (N)”告警。有关更多信息，请参阅 *Amazon CloudWatch 指南*中的[评估警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)。
Route 53 不支持使用[指标数学](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)查询多个 CloudWatch 指标的警报。
如果要创建告警，请执行以下步骤：  

1. 选择**创建**。 CloudWatch 控制台出现在新的浏览器选项卡中。

1. 输入适用的值。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[创建或编辑 CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/ConsoleAlarms.html)。

1. 返回到显示 Route 53 控制台的浏览器选项卡。

1. 选择**CloudWatch警报**列表旁边的刷新按钮。

1. 从列表中选择新告警。
如果您在创建运行状况检查后更改 CloudWatch 警报的设置，则必须更新运行状况检查。有关更多信息，请参阅 [更改 CloudWatch 警报设置时更新运行状况检查（仅监控 CloudWatch 警报的运行状况检查）更改 CloudWatch 警报设置时更新运行状况检查](health-checks-updating-cloudwatch-alarm-settings.md)。

**运行状态检查状态**  
**当数据不足以确定您为警报选择的警报状态时，选择运行状况检查的状态（健康、不健康或上次 CloudWatch 已知状态）。CloudWatch**如果您选择使用最后一个已知状态，Route 53 将使用上次CloudWatch 有足够数据来确定警报状态的运行状况检查的状态。对于没有上一个已知状态的新运行状况检查，运行状况检查的默认状态为运行良好。  
当 CloudWatch 指标的数据流短暂不可用时，Healt **h check** status 的值会提供临时状态。（Route 53 监控数据流中的 CloudWatch 指标，而不是相应警报的状态。） 如果指标频繁不可用或长时间（超过几小时）不可用，建议您不要使用上一个已知状态。

**反转运行状况检查状态（仅限旧控制台）**  
要在新控制台上反转运行状况检查，请参阅 [反转运行状况检查](health-checks-invert.md)。  
选择是否让 Route 53 反转运行状况检查的状态。如果您选择此选项，则 Route 53 会将状态良好的运行状况检查视为状况不佳，反之亦然。

** 已禁用（仅限旧控制台）**  
要在新控制台上禁用运行状况检查，请参阅 [禁用或启用运行状况检查](health-checks-disable.md)。  
停止 Route 53 执行运行状况检查。当您禁用运行状况检查时，Route 53 将停止监控相应的 CloudWatch指标。  
在您禁用运行状况检查之后，Route 53 将运行状况检查的状态始终视为正常。如果您配置了 DNS 故障转移，Route 53 会继续将流量路由到对应的资源。如果您要停止将流量路由到某个资源，请反转运行状况检查。  
在禁用了运行状况检查时，仍会收取运行状况检查费用。

------

## 高级配置（仅限“监控端点”）
<a name="health-checks-creating-values-advanced"></a>

**注意**  
我们正在更新 Route 53 的运行状况检查控制台。在过渡期间，您可以继续使用旧控制台。
+ [新控制台](#health-checks-creating-values-advanced-new)
+ [旧控制台](#health-checks-creating-values-advanced-old)

------
#### [ New console ]
+ 请求间隔
+ Failure threshold
+ 字符串匹配
+ 搜索字符串
+ Latency graphs
+ 启用 SNI 
+ Host name

**请求间隔**  
每个 Route 53 运行状况检查程序获得来自端点的响应的时间与它发送下一个运行状况检查请求的时间之间的秒数。如果您选择的时间间隔为 30 秒，则全球数据中心的每个 Route 53 运行状况检查程序均会每隔 30 秒向您的端点发送一次运行状况检查请求。平均来说，您的端点每隔两秒会收到一次运行状况检查请求。如果选择的时间间隔为 10 秒，则端点每秒接收超过一次请求。  
请注意，不同数据中心的 Route 53 运行状况检查程序不会彼此协作，因此无论您选择多久的时间间隔，都会遇到有时每秒收到多个请求、然后接下来的几秒根本没有任何运行状况检查请求的情况。  
创建运行状况检查后，您将无法更改 **Request interval** 的值。  
如果您选择 **Fast (10 seconds)** 作为 **Request interval** 的值，将产生额外费用。有关更多信息，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)。

**Failure threshold**  
为了 Route 53 将端点的当前状态在运行良好和运行不佳之间切换，该端点必须通过或未通过的连续运行状况检查数量。有关更多信息，请参阅 [Amazon Route 53 如何确定运行状况检查是否正常Route 53 如何确定运行状况检查是否正常](dns-failover-determining-health-of-endpoints.md)。

**String matching (HTTP 和 HTTPS)**  
您是否希望 Route 53 通过向端点提交 HTTP 或 HTTPS 请求并搜索指定字符串的响应正文来确定端点的运行状况。如果响应正文包含您在 **Search string**（搜索字符串）中指定的值，Route 53 将认为端点运行良好。如果不包含或者端点无响应，Route 53 将认为端点运行状况不佳。搜索字符串必须完全出现在响应正文的前 5120 个字节中。  
创建运行状况检查后，您将无法更改 **String matching** 的值。  
如果您选择 **Yes** 作为 **String matching** 的值，将产生额外费用。有关更多信息，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)。
**运行状况检查程序如何处理压缩响应**  
如果端点是返回压缩响应的 Web 服务器，则仅当 Web 服务器使用运行状况检查程序支持的压缩算法压缩响应时，Route 53 运行状况检查程序才会在检查指定的搜索字符串之前解压缩响应。运行状况检查程序支持以下压缩算法：  
+ Gzip
+ Deflate
如果使用其它算法压缩响应，则运行状况检查程序无法在搜索字符串之前解压缩响应。在这种情况下，搜索几乎总是会失败，而 Route 53 会认为端点运行状况不佳 

**Search string (仅在启用“String matching”时)**  
您希望 Route 53 在来自端点的响应正文中搜索的字符串。最大长度为 255 个字符。  
Route 53 在响应正文中搜索 **Search string**（搜索字符串）时会考虑大小写。

**Latency graphs**  
选择是否希望 Route 53 测量多个 AWS 区域的运行状况检查器与您的终端节点之间的延迟。如果选择此选项，则 CloudWatch 延迟图表将显示在 Route 53 控制台**健康检查**页面的**延迟**选项卡上。如果 Route 53 运行状况检查程序无法连接到端点，Route 53 将无法显示该端点的延迟图表。  
创建运行状况检查后，您将无法更改 **Latency measurements** 的值。  
如果将 Route 53 配置为测量运行状况检查程序与端点之间的延迟，则会产生额外费用。有关更多信息，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)。

**Enable SNI (仅限于 HTTPS)**  
指定您是否希望 Route 53 在 TLS 协商期间通过 `client_hello` 消息将主机名称发送到端点。这允许端点使用适用的 SSL/TLS 证书响应 HTTPS 请求。  
某些端点要求 HTTPS 请求在 client\$1hello 消息中包含主机名。如果不启用 SNI，则运行状况检查状态可能会显示失败。错误消息将取决于服务器为响应不包含 SNI 信息的请求而进行的配置。运行状况检查也可能因为其他原因而存在故障状态。如果已启用 SNI 并且仍收到错误，请检查端点上的 SSL/TLS 配置并确认您的证书是否有效。  
请注意以下要求：  
+ 端点必须支持 SNI。
+ 您的终端节点上的 SSL/TLS 证书在字段中包含一个域名，`Common Name`字段中可能还有几个域名。`Subject Alternative Names`证书中的其中一个域名必须与您为 **Host name** 指定的值匹配。

**Health checker regions**  
选择您希望 Route 53 通过在建议的区域使用运行状况检查程序还是通过在您指定的区域使用运行状况检查程序来检查端点的运行状况。  
如果您更新运行状况检查以删除已在执行运行状况检查的区域，Route 53 将继续从该区域执行检查长达一小时。这将确保某些健康检查程序始终检查端点（例如，如果您将三个区域替换为四个不同的区域）。  
如果您选择 **Customize**，请选择区域对应的 **x** 以将其删除。单击列表底部的空白可将区域添加回列表中。您必须至少指定三个区域。

**Host name (仅限于“Specify endpoint by IP address”，仅限于 HTTP 和 HTTPS 协议)**  
您希望 Route 53 在 HTTP 和 HTTPS 运行状况检查的 `Host` 标头中传递的值。通常是您希望 Route 53 对其执行运行状况检查的网站的完全限定 DNS 名称。以下是 Route 53 在检查端点的运行状况时构造 `Host` 标头的方式：  
+ 如果您为 **Port**（端口）指定值 **80**，为 **Protocol**（协议）指定 **HTTP**，则 Route 53 将向端点传递一个包含 **Host name**（主机名称）的值的 `Host` 标头。
+ 如果您将 “**端口**” 的值指定**443**为，将 **HTdTPS** 指定为 **“协议”**，则 Route 53 会将包含**主机名**值的`Host`标头传递给终端节点。
+ 如果您为 “**端口**” 指定其他值，为 “**协议”** 指定了 **HTTP** 或 **HT** TPS，则 Route 53 会将包含*Host name***以下值的`Host`标头传递给终端节点：***Port*。
如果您选择通过 IP 地址指定端点，并且未指定 **Host name**（主机名称）的值，Route 53 将替代上述每种情况中 `Host` 标头中的 **IP address**（IP 地址）值。

------
#### [ Old console ]

如果您选择监控端点的选项，还可以指定以下设置：
+ 请求间隔
+ Failure threshold
+ 字符串匹配
+ 搜索字符串
+ 延迟图
+ 启用 SNI
+ 运行状况检查程序区域
+ Invert health check status
+ 已禁用

**请求间隔**  
每个 Route 53 运行状况检查程序获得来自端点的响应的时间与它发送下一个运行状况检查请求的时间之间的秒数。如果您选择的时间间隔为 30 秒，则全球数据中心的每个 Route 53 运行状况检查程序均会每隔 30 秒向您的端点发送一次运行状况检查请求。平均来说，您的端点每隔两秒会收到一次运行状况检查请求。如果选择的时间间隔为 10 秒，则端点每秒接收超过一次请求。  
请注意，不同数据中心的 Route 53 运行状况检查程序不会彼此协作，因此无论您选择多久的时间间隔，都会遇到有时每秒收到多个请求、然后接下来的几秒根本没有任何运行状况检查请求的情况。  
创建运行状况检查后，您将无法更改 **Request interval** 的值。  
如果您选择 **Fast (10 seconds)** 作为 **Request interval** 的值，将产生额外费用。有关更多信息，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)。

**Failure threshold**  
为了 Route 53 将端点的当前状态在运行良好和运行不佳之间切换，该端点必须通过或未通过的连续运行状况检查数量。有关更多信息，请参阅 [Amazon Route 53 如何确定运行状况检查是否正常Route 53 如何确定运行状况检查是否正常](dns-failover-determining-health-of-endpoints.md)。

**String matching (HTTP 和 HTTPS)**  
您是否希望 Route 53 通过向端点提交 HTTP 或 HTTPS 请求并搜索指定字符串的响应正文来确定端点的运行状况。如果响应正文包含您在 **Search string**（搜索字符串）中指定的值，Route 53 将认为端点运行良好。如果不包含或者端点无响应，Route 53 将认为端点运行状况不佳。搜索字符串必须完全出现在响应正文的前 5120 个字节中。  
创建运行状况检查后，您将无法更改 **String matching** 的值。  
如果您选择 **Yes** 作为 **String matching** 的值，将产生额外费用。有关更多信息，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)。
**运行状况检查程序如何处理压缩响应**  
如果端点是返回压缩响应的 Web 服务器，则仅当 Web 服务器使用运行状况检查程序支持的压缩算法压缩响应时，Route 53 运行状况检查程序才会在检查指定的搜索字符串之前解压缩响应。运行状况检查程序支持以下压缩算法：  
+ Gzip
+ Deflate
如果使用其它算法压缩响应，则运行状况检查程序无法在搜索字符串之前解压缩响应。在这种情况下，搜索几乎总是会失败，而 Route 53 会认为端点运行状况不佳 

**Search string (仅在启用“String matching”时)**  
您希望 Route 53 在来自端点的响应正文中搜索的字符串。最大长度为 255 个字符。  
Route 53 在响应正文中搜索 **Search string**（搜索字符串）时会考虑大小写。

**Latency graphs**  
选择是否希望 Route 53 测量多个 AWS 区域的运行状况检查器与您的终端节点之间的延迟。如果选择此选项，则 CloudWatch 延迟图表将显示在 Route 53 控制台**健康检查**页面的**延迟**选项卡上。如果 Route 53 运行状况检查程序无法连接到端点，Route 53 将无法显示该端点的延迟图表。  
创建运行状况检查后，您将无法更改 **Latency measurements** 的值。  
如果将 Route 53 配置为测量运行状况检查程序与端点之间的延迟，则会产生额外费用。有关更多信息，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)。

**Enable SNI (仅限于 HTTPS)**  
指定您是否希望 Route 53 在 TLS 协商期间通过 `client_hello` 消息将主机名称发送到端点。这允许端点使用适用的 SSL/TLS 证书响应 HTTPS 请求。  
某些端点要求 HTTPS 请求在 `client_hello` 消息中包含主机名。如果不启用 SNI，则运行状况检查状态可能会显示失败。错误消息取决于服务器为响应不包含 SNI 信息的请求而进行的配置。运行状况检查也可能因为其他原因而存在故障状态。如果 SNI 已启用，但仍然出现错误，请检查终端节点上的 SSL/TLS 配置并确认您的证书有效。  
请注意以下要求：  
+ 端点必须支持 SNI。
+ 您的终端节点上的 SSL/TLS 证书在字段中包含一个域名，`Common Name`字段中可能还有几个域名。`Subject Alternative Names`证书中的其中一个域名必须与您为 **Host name** 指定的值匹配。

**Health checker regions**  
选择您希望 Route 53 通过在建议的区域使用运行状况检查程序还是通过在您指定的区域使用运行状况检查程序来检查端点的运行状况。  
如果您更新运行状况检查以删除已在执行运行状况检查的区域，Route 53 将继续从该区域执行检查长达一小时。这将确保某些健康检查程序始终检查端点（例如，如果您将三个区域替换为四个不同的区域）。  
如果您选择 **Customize**，请选择区域对应的 **x** 以将其删除。单击列表底部的空白可将区域添加回列表中。您必须至少指定三个区域。

**反转运行状况检查状态（仅限旧控制台）**  
要在新控制台上反转运行状况检查，请参阅 [反转运行状况检查](health-checks-invert.md)。  
选择是否让 Route 53 反转运行状况检查的状态。如果您选择此选项，则 Route 53 会将状态良好的运行状况检查视为状况不佳，反之亦然。例如，您可能希望在配置了字符串匹配且端点返回指定值时，Route 53 将运行状况检查判断为*不正常*。

** 已禁用（仅限旧控制台）**  
要在新控制台上禁用运行状况检查，请参阅 [禁用或启用运行状况检查](health-checks-disable.md)。  
停止 Route 53 执行运行状况检查。当您禁用运行状况检查时，Route 53 停止尝试与端点建立 TCP 连接。  
在您禁用运行状况检查之后，Route 53 将运行状况检查的状态始终视为正常。如果您配置了 DNS 故障转移，Route 53 会继续将流量路由到对应的资源。如果您要停止将流量路由到某个资源，请反转运行状况检查。  
在禁用了运行状况检查时，仍会收取运行状况检查费用。

------

## 在运行状况检查失败时收到通知
<a name="health-checks-creating-values-alarm"></a>

使用以下选项配置运行状况检查失败时的电子邮件通知：
+ [Create alarm](#health-checks-creating-values-create-alarm)
+ [Send notification to](#health-checks-creating-values-send-notification-to)
+ [Topic name](#health-checks-creating-values-topic-name)
+ [Recipient email addresses](#health-checks-creating-values-recipient-email-addresses)

**Create alarm (仅在创建运行状况检查时)**  
指定是否要创建默认 CloudWatch 警报。如果您选择 “**是**”，则在该终端节点的状态变为不健康且 Route 53 认为该终端节点在一分钟内处于不健康状态时， CloudWatch 会向您发送 Amazon SNS 通知。  
如果您 CloudWatch 想在状态变回正常时再向您发送一次 Amazon SNS 通知，则可以在创建运行状况检查后再创建警报。有关更多信息，请参阅[亚马逊* CloudWatch 用户指南中的创建亚马逊 CloudWatch *警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。
如果要为现有的运行状况检查创建告警，或者要在 Route 53 认为端点运行状况不佳的时间多于或少于一分钟（默认值）时收到通知，请选择 **No**（否）并在创建运行状况检查后添加告警。有关更多信息，请参阅 [使用监控运行状况检查 CloudWatch](monitoring-health-checks.md)。

**Send notification to (仅在创建告警时)**  
指定您是要 CloudWatch 向现有的 Amazon SNS 主题还是向新主题发送通知：  
+ **Existing SNS topic**（现有 SNS 主题）— 从列表中选择主题的名称。主题必须位于美国东部（弗吉尼亚北部）区域。
+ **New SNS topic**（新建 SNS 主题）— 在 **Topic name**（主题名称）中输入主题名称，并在 **Recipients**（收件人）中输入要将通知发送到的电子邮件地址。可以使用逗号 (,)、分号 (;) 或空格分隔多个地址。

  Route 53 将在美国东部（弗吉尼亚北部）区域创建主题。

**Topic name (仅在创建新 SNS 主题时)**  
如果指定 **New SNS Topic**，请输入新主题的名称。

**Recipient email addresses (仅在创建新 SNS 主题时)**  
如果您指定了 **New SNS topic**，请输入要将通知发送到的电子邮件地址。可用逗号 (,)、分号 (;) 或空格分隔多个名称。

# 创建运行状况检查时 Amazon Route 53 显示的值
<a name="health-checks-creating-values-displayed"></a>

**Create Health Check** (创建运行状况检查) 页面将根据您输入的值显示以下值：

**URL**  
Route 53 在执行运行状况检查时要将请求发送到的完整 URL（适用于 HTTP 或 HTTPS 运行状况检查）或 IP 地址和端口（适用于 TCP 运行状况检查）。

**运行状况检查类型**  
根据您为此运行状况检查指定的设置，此值为 **Basic** 或 **Basic \$1 additional options**。有关其它选项的定价信息，请参阅 [Route 53 定价](https://aws.amazon.com/route53/pricing/)。

# 更改 CloudWatch 警报设置时更新运行状况检查（仅监控 CloudWatch 警报的运行状况检查）
<a name="health-checks-updating-cloudwatch-alarm-settings"></a>

如果您创建了 Route 53 运行状况检查来监控 CloudWatch 警报的数据流，然后更新警 CloudWatch 报中的设置，则 Route 53 不会自动更新运行状况检查中的警报设置。如果希望运行状况检查开始使用新告警设置，则需要更新运行状况检查。

**注意**  
要以编程方式更新运行状况检查，可以使用 `UpdateHealthCheck` API。只需为`AlarmIdentifier`和指定当前值`Region`，Route 53 就会从中获取最新设置 CloudWatch。有关更多信息，请参阅[UpdateHealthCheck](https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html)《*亚马逊 Route 53 API 参考*》。

**注意**  
我们正在更新 Route 53 的运行状况检查控制台。在过渡期间，您可以继续使用旧控制台。

选择您正在使用的控制台的选项卡。
+ [新控制台](#health-checks-updating-cloudwatch-alarm-settings-new)
+ [旧控制台](#health-checks-updating-cloudwatch-alarm-settings-old)

------
#### [ New console ]<a name="health-checks-updating-cloudwatch-alarm-settings-proc"></a>

**使用新的 CloudWatch 警报设置更新运行状况检查**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择**运行状况检查**。

1. 选中要更新的运行状况检查的链接 ID。

1. 选择**编辑**。

   注释说明运行状况检查的 CloudWatch 警报已更改。**Details** 字段中将显示新的告警设置。

1. 选择**保存**。

------
#### [ Old console ]<a name="health-checks-updating-cloudwatch-alarm-settings-procedure"></a>

**使用新的 CloudWatch 警报设置更新运行状况检查（控制台）**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择 **Health Checks (运行状况检查)**。

1. 选中您要更新的运行状况检查对应的复选框。

1. 选择 **Edit health check**。

   注释说明运行状况检查的 CloudWatch 警报已更改。**Details** 字段中将显示新的告警设置。

1. 选择**保存**。

------

# 禁用或启用运行状况检查
<a name="health-checks-disable"></a>

禁用运行状况检查会阻止 Route 53 执行运行状况检查。在您禁用运行状况检查时，Route 53 停止聚合所引用运行状况检查的状态。在您禁用运行状况检查之后，Route 53 将运行状况检查的状态始终视为正常。如果您配置了 DNS 故障转移，Route 53 会继续将流量路由到对应的资源。如果您要停止将流量路由到某个资源，请更改**倒置**的值。

**注意**  
我们正在更新 Route 53 的运行状况检查控制台。在过渡期间，您可以继续使用旧控制台。

创建或编辑运行状况检查时，可以在旧控制台上禁用或启用运行状况检查。有关更多信息，请参阅 [您在创建或更新运行状况检查时指定的值](health-checks-creating-values.md)。

要在新控制台上禁用运行状况检查，请执行以下步骤。<a name="health-checks-disable-proc"></a>

**禁用或启用运行状况检查（仅限新控制台）**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择**运行状况检查**。

1. 在**操作**列中选择三个点，然后选择**禁用**或**启用**。

   或者，选择要禁用或启用的运行状况检查的链接 ID。

1. 在**配置**表中，**状态**字段指定是启用还是禁用运行状况检查。

1. 要禁用或启用运行状况检查，请选择**禁用**或**启用**。

# 反转运行状况检查
<a name="health-checks-invert"></a>

如果反转运行状况检查，则 Route 53 会将状态良好的运行状况检查视为状况不佳，反之亦然。

**注意**  
我们正在更新 Route 53 的运行状况检查控制台。在过渡期间，您可以继续使用旧控制台。

创建或编辑运行状况检查时，可以在旧控制台上反转运行状况检查。有关更多信息，请参阅 [您在创建或更新运行状况检查时指定的值](health-checks-creating-values.md)。

要在新控制台上反转运行状况检查，请执行以下步骤。<a name="health-checks-disable-proc"></a>

**反转运行状况检查（仅限新控制台）**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择**运行状况检查**。

1. 在**操作**列中选择三个点，然后选择**反转**。

   或者选择要反转的运行状况检查的链接 ID。

1. 在**配置**表中，**反转**字段指定运行状况检查反转（**是**）或不反转（**否**）。

1. 选择**反转**，以反转运行状况检查。

   如果要撤消反转状态，且**已反转**字段为**是**，请再次选择**反转**。

# 删除运行状况检查
<a name="health-checks-deleting"></a>

要禁用运行状况检查，请执行以下过程。

**注意**  
如果您正在使用 AWS Cloud Map 并且配置 AWS Cloud Map 为在注册实例时创建 Route 53 运行状况检查，则无法使用 Route 53 控制台删除运行状况检查。当您注销实例时，会自动删除运行状况检查。当运行状况检查不再显示在 Route 53 控制台中之前，可能会有几小时的延迟。

**注意**  
我们正在更新 Route 53 的运行状况检查控制台。在过渡期间，您可以继续使用旧控制台。

选择您正在使用的控制台的选项卡。
+ [新控制台](#health-checks-deleting-new)
+ [旧控制台](#health-checks-deleting-old)

------
#### [ New console ]<a name="health-checks-deleting-proc"></a>

**删除运行状况检查**

1. 如果要删除与记录关联的运行状况检查，请执行[在配置了 DNS 故障转移的情况下更新或删除运行状况检查](health-checks-updating-deleting-tasks.md)中推荐的任务。

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择**运行状况检查**。

1. 选择要删除的运行状况检查的链接 ID。

1. 选择**删除**。

1. 在文本框中输入 **confirm**，然后选择**删除**。

------
#### [ Old console ]<a name="health-checks-deleting-console-proc"></a>

**删除运行状况检查 (控制台)**

1. 如果要删除与记录关联的运行状况检查，请执行[在配置了 DNS 故障转移的情况下更新或删除运行状况检查](health-checks-updating-deleting-tasks.md)中推荐的任务。

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择 **Health Checks (运行状况检查)**。

1. 在右窗格中，选择要删除的运行状况检查。

1. 选择 **Delete Health Check**。

1. 选择 **Yes, Delete** 以确认。

------

# 在配置了 DNS 故障转移的情况下更新或删除运行状况检查
<a name="health-checks-updating-deleting-tasks"></a>

当您要更新或删除与记录关联的运行状况检查或者要更改具有关联的运行状况检查的记录时，必须考虑您的更改对 DNS 查询或 DNS 故障转移配置有何影响。

**重要**  
即使运行状况检查与一个或多个记录关联，Route 53 也不会禁止您删除该运行状况检查。如果您删除运行状况检查，并且未更新关联的记录，则运行状况检查的未来状态将无法预测，且可能发生变化。这会影响 DNS 故障转移配置的 DNS 查询的路由。

要更新或删除已与记录关联的运行状况检查，建议您执行以下任务：

1. 标识与运行状况检查关联的记录。要标识与运行状况检查关联的记录，您必须执行以下操作之一：
   + 使用 Route 53 控制台查看每个托管区域中的记录。有关更多信息，请参阅 [列出记录](resource-record-sets-listing.md)。
   + 对每个托管区域运行 `ListResourceRecordSets` API 操作并查看响应。有关更多信息，请参阅[ListResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListResourceRecordSets.html)《*亚马逊 Route 53 API 参考*》。

1. 评估因更新或删除运行状况检查或因更新记录产生的行为更改。根据该评估确定进行哪些更改。

   有关更多信息，请参阅 [忽略运行状况检查时，会出现什么情况？](dns-failover-complex-configs.md#dns-failover-complex-configs-hc-omitting)

1. 相应更改运行状况检查和记录。有关更多信息，请参阅以下主题：
   + [创建和更新运行状况检查](health-checks-creating.md)
   + [编辑记录](resource-record-sets-editing.md)

1. 删除您不再使用的运行状况检查 (如果有)。有关更多信息，请参阅 [删除运行状况检查](health-checks-deleting.md)。

# 为 Amazon Route 53 运行状况检查配置路由器和防火墙规则
<a name="dns-failover-router-firewall-rules"></a>

Route 53 在检查端点的运行状况时会向您在创建运行状况检查时指定的 IP 地址和端口发送 HTTP、HTTPS 或 TCP 请求。为使运行状况检查成功，您的路由器和防火墙规则必须允许来自 Route 53 运行状况检查程序所使用 IP 地址的入站流量。

有关 Route 53 运行状况检查器、Route 53 域名服务器和其他 AWS 服务的当前 IP 地址列表，请参阅[Amazon Route 53 服务器的 IP 地址范围](route-53-ip-addresses.md)。

在 Amazon EC2 中，安全组充当防火墙。有关更多信息，请参阅 [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html) *用户指南中的 Amazon EC2* 安全组。要将您的安全组配置为允许 Route 53 运行状况检查，您可以允许来自每个 IP 地址范围的入站流量，也可以使用 AWS托管前缀列表。

要使用 AWS托管前缀列表，请修改您的安全组以允许来自`com.amazonaws.<region>.route53-healthchecks`您的Amazon EC2实例或资源的入站流量。`<region> ` AWS 区域 如果您使用 Route 53 运行状况检查来检查 IPv6 终端节点，则还应允许来自的入站流量`com.amazonaws.<region>.ipv6.route53-healthchecks`。

有关 AWS托管前缀列表的更多信息，请参阅 Amazon *VPC 用户*指南中的使用[AWS托管前缀列表](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)。

**重要**  
将 IP 地址添加到允许的 IP 地址列表时，请添加您在创建运行状况检查时指定的每个 AWS 区域的 CIDR 范围内的所有 IP 地址以及全局 CIDR 范围。您可能会看到运行状况检查请求仅来自某个区域中的一个 IP 地址。但是，该 IP 地址随时可能更改为该区域的另一个 IP 地址。  
 如果要确保同时包含当前和较旧的运行状况检查程序 IP 地址，请将 ALL /26 和 /18 IP 地址范围添加到允许列表中。有关完整列表，请参阅《AWS 一般参考》**中的 [AWS IP 地址范围](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)。  
当您将 AWS-managed 前缀列表添加到入站安全组时，它会自动添加所有必要的范围。

# 配置 DNS 故障转移
<a name="dns-failover-configuring"></a>

当您有多个执行同一功能的资源（例如，多台 HTTP 服务器或邮件服务器）时，可以配置 Amazon Route 53，以便检查您的资源的运行状况并仅使用正常资源来响应 DNS 查询。例如，假设您的网站 example.com 托管在 6 台服务器上，这些服务器位于全球三个数据中心，每个数据中心两台。您可以对 Route 53 进行配置，以检查这些服务器的运行状况，并且只使用当前运行状况良好的服务器来响应对 example.com 的 DNS 查询。

Route 53 可以检查您的资源在简单和复杂配置中的运行状况：
+ 在简单配置中，可创建一组具有相同名称和类型的记录，例如，用于 example.com 的一组加权记录，其类型为 A。然后，可对 Route 53 进行配置以检查相应资源的运行状况。Route 53 将根据资源的运行状况来响应 DNS 查询。有关更多信息，请参阅 [简单 Amazon Route 53 配置中的运行状况检查的工作原理简单配置中的运行状况检查的工作原理](dns-failover-simple-configs.md)。
+ 在更复杂的配置中，将创建根据多个标准路由流量的一个记录树。例如，如果用户的延迟是您最重要的标准，则您可能会使用延迟别名记录，以便将流量路由至可提供最短延迟的区域。延迟别名记录可能会将每个区域中的加权记录作为别名目标。加权记录可能会根据实例类型将流量路由到 EC2 实例。和简单配置一样，可以将 Route 53 配置为根据资源的运行状况路由流量。有关更多信息，请参阅 [复杂 Amazon Route 53 配置中的运行状况检查的工作原理复杂配置中的运行状况检查的工作原理](dns-failover-complex-configs.md)。

**Topics**
+ [配置 DNS 故障转移的任务列表](dns-failover-how-to.md)
+ [简单 Amazon Route 53 配置中的运行状况检查的工作原理](dns-failover-simple-configs.md)
+ [复杂 Amazon Route 53 配置中的运行状况检查的工作原理](dns-failover-complex-configs.md)
+ [Amazon Route 53 在已配置运行状况检查时如何选择记录](health-checks-how-route-53-chooses-records.md)
+ [主动/主动和主动/被动故障转移](dns-failover-types.md)
+ [在私有托管区域中配置故障转移](dns-failover-private-hosted-zones.md)
+ [Amazon Route 53 如何避免故障转移问题](dns-failover-problems.md)

# 配置 DNS 故障转移的任务列表
<a name="dns-failover-how-to"></a>

要使用 Route 53 配置 DNS 故障转移，请执行以下任务：

1. 绘制配置的完整树形图，并指明您要为每个节点创建哪种记录 (加权别名、故障转移、延迟等)。在树顶端放入域名 (例如 example.com) 的记录，您的用户将使用它访问您的网站或 Web 应用程序。

   树形图中显示的记录类型取决于配置的复杂程度：
   + 在简单的配置中，您的图表不会包含任何别名记录，或者别名记录会将流量直接路由到 ELB 负载均衡器等资源，而不是路由到另一 Route 53 记录。有关更多信息，请参阅 [简单 Amazon Route 53 配置中的运行状况检查的工作原理简单配置中的运行状况检查的工作原理](dns-failover-simple-configs.md)。
   + 在复杂配置中，您的图表将在多级树中包含别名记录 (如加权别名和故障转移别名) 和非别名记录的组合，如[复杂 Amazon Route 53 配置中的运行状况检查的工作原理复杂配置中的运行状况检查的工作原理](dns-failover-complex-configs.md)主题中的示例。
**注意**  
要快速轻松地为复杂路由配置创建记录并将这些记录与运行状况检查关联，可以使用 Traffic Flow 可视化编辑器并将该配置保存为流量策略。然后，您可以将流量策略关联至同一托管区域或多个托管区域中的一个或多个域名 (例如 example.com) 或子域名 (例如 www.example.com)。此外，如果新配置无法正常工作，您还可以回滚更新。有关更多信息，请参阅 [使用 Traffic Flow 来路由 DNS 流量](traffic-flow.md)。

   有关更多信息，请参阅以下文档：
   + [选择路由策略](routing-policy.md)
   + [在别名记录和非别名记录之间进行选择](resource-record-sets-choosing-alias-non-alias.md)

1. 对于不能为其创建别名记录的资源，如 Amazon EC2 服务器和数据中心中运行的电子邮件服务器，为其创建运行状况检查。您会将这些运行状况检查与您的非别名记录相关联。

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

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

1. 在您的图表中创建所有非别名记录，并将您在第 2 步中创建的运行状况检查与相应的记录关联。

   如果您要在不包含任何别名记录的配置中配置 DNS 故障转移，请跳过其余的任务。

1. 创建将流量路由到 AWS 资源（例如 ELB 负载均衡器和 CloudFront 分配）的别名记录。如果您希望 Route 53 在某一资源运行状况不佳时尝试该树的其它分支，请将每个别名记录的 **Evaluate Target Health**（评估目标运行状况）值均设置为 **Yes**（是）。（某些 AWS 资源不支持 E **valuate Targ** et Health。）

1. 从您在第 1 步中创建的树形图的底部开始，创建别名记录，将流量路由至在第 4 步和第 5 步中创建的记录。如果您希望 Route 53 在树的某一分支中所有非别名记录均运行状况不良时尝试该树的其它分支，请将每个别名记录的 **Evaluate Target Health**（评估目标运行状况）值均设置为 **Yes**（是）。

   请记住，在创建对应的另一记录以前，不能创建将流量路由到这一记录的别名记录。

# 简单 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)


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

在复杂配置中检查资源运行状况的工作原理与简单配置中大致相同。但在复杂配置中，可以使用别名记录（如加权别名和故障转移别名）和非别名记录的组合来构建决策树，以使您能够更好地控制 Route 53 响应请求的方式。

例如，您可以使用延迟别名记录选择一个靠近用户的区域，并对每个区域内的两个或多个资源使用加权记录，以针对单个端点或可用区域的故障提供保护。下图演示了此配置。

![\[包含延迟别名记录和加权别名记录的 DNS 配置。\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/hc-latency-alias-weighted.png)


以下是如何配置 Amazon EC2 和 Route 53 的方式。让我们从树底部开始，因为这是您即将创建记录的顺序：
+ 您在 us-east-1 和 ap-southeast-2 这两个区域中分别有两个 EC2 实例。您希望 Route 53 根据 EC2 实例的运行状况决定是否将流量路由到其中，所以为每个实例创建运行状况检查。您可以配置为每个运行状况检查都会向对应实例的弹性 IP 地址发送运行状况检查请求。

  Route 53 是一项全球服务，您无需指定要为其创建运行状况检查的区域。
+ 您希望根据实例类型将流量路由到每个区域中的两个实例，所以可为每个实例创建加权记录，并为每个记录指定权重。(您可以稍后更改权重，来更改路由到某个实例的流量。) 然后，将适用的运行状况检查与每个实例关联。

  在创建记录时，可以使用 us-east-1-www.example.com 和 ap-southeast-2-www.example.com 这样的名称。只有等到了树顶端，您才可以为记录指定用户将用于访问网站或 Web 应用程序的名称 (例如 example.com)。
+ 您希望将流量路由到可为用户提供最低延迟的区域，因此为树顶端的记录选择延迟[路由策略](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html)。

  您希望将流量路由到每个区域中的*记录*，而不是直接路由到每个区域中的*资源* (加权记录已执行该功能)。因此，创建延迟[别名记录](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-choosing-alias-non-alias.html)。

  在创建别名记录时，为它们指定用户将用于访问网站或 Web 应用程序的名称 (例如 example.com)。别名记录将 example.com 的流量路由到 us-east-1-www.example.com 和 ap-southeast-2-www.example.com 记录。

  对于两个延迟别名记录，将 **Evaluate Target Health** 的值设置为 **Yes**。这会让 Route 53 去确定一个区域中是否存在任何运行状况良好的资源，然后再尝试将流量路由到对应区域。如果没有，Route 53 会选择其它区域中正常运行的资源。

![\[包含延迟别名记录和加权别名记录的 DNS 配置。\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/hc-latency-alias-weighted-both-failed.png)


前面的图表说明了以下事件序列：

1. Route 53 收到针对 example.com 的查询。根据用户提出请求的延迟，Route 53 为 us-east-1 区域选择延迟别名记录。

1. Route 53 根据权重选择加权记录。延迟别名记录的 **Evaluate Target Health**（评估目标运行状况）为 **Yes**（是），因此 Route 53 将检查选定的加权记录的运行状况。

1. 运行状况检查失败，因此 Route 53 根据权重选择其它加权记录并检查其运行状况。该记录的运行状况也不佳。

1. Route 53 退出该树的分支，查找其延迟仅次于最佳的延迟别名记录，并为 ap-southeast-2 选择该记录。

1. Route 53 根据权重再次选择记录，然后检查所选资源的运行状况。假定该资源运行状况良好，则 Route 53 在对查询的响应中返回适用的值。

**Topics**
+ [在将运行状况检查与别名记录关联时会发生什么？](#dns-failover-complex-configs-hc-alias)
+ [忽略运行状况检查时，会出现什么情况？](#dns-failover-complex-configs-hc-omitting)
+ [当您将“Evaluate Target Health”设置为“No”时，会出现什么情况？](#dns-failover-complex-configs-eth-no)

## 在将运行状况检查与别名记录关联时会发生什么？
<a name="dns-failover-complex-configs-hc-alias"></a>

您可以将运行状况检查与别名记录相关联，以作为将 **Evaluate Target Health** 的值设置为 **Yes** 的替代或补充。但是，如果 Route 53 根据基础资源 (HTTP 服务器、数据库服务器和您的别名记录引用的其它资源) 的运行状况来响应查询，这样关联通常更有用。例如，假设以下配置：
+ 将运行状况检查分配给其别名目标为一组加权记录的延迟别名记录。
+ 将延迟别名记录的 **Evaluate Target Health** 值设置为 **Yes**。

在此配置中，必须同时满足以下两个条件，Route 53 才会为加权记录返回适用值：
+ 必须通过与延迟别名记录关联的运行状况检查。
+ 必须至少有一个加权记录因为与已通过的运行状况检查关联或因为不与运行状况检查相关联而被视为运行状况良好。在后一种情况下，Route 53 始终认为加权记录运行状况良好。

在下图中，左上角的延迟别名记录的运行状况检查失败。因此，Route 53 停止响应那些使用该延迟别名记录所引用的任何加权记录的查询，即使这些记录的运行状况良好也同样如此。仅在延迟别名记录恢复良好的运行状况时，Route 53 才会再次开始考虑这些加权记录。(有关例外情况，请参阅[Amazon Route 53 在已配置运行状况检查时如何选择记录Route 53 在已配置运行状况检查时如何选择记录](health-checks-how-route-53-chooses-records.md)。) 

![\[包含“评估目标运行状况”设置为“是”且具有运行状况检查的别名记录的 DNS 配置。\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/hc-latency-alias-weighted-alias-hc-failed.png)


## 忽略运行状况检查时，会出现什么情况？
<a name="dns-failover-complex-configs-hc-omitting"></a>

在复杂配置中，应将运行状况检查与所有非别名记录关联，这一点非常重要。在下面的示例中，us-east-1 区域的一个加权记录中缺少运行状况检查。

![\[包含一个失败运行状况检查和一个没有运行状况检查的记录的 DNS 配置。\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/hc-latency-alias-weighted-missing-health-check.png)


在此配置中，当您忽略对非别名记录的运行状况检查时，将发生以下情况：

1. Route 53 收到针对 example.com 的查询。根据用户提出请求的延迟，Route 53 为 us-east-1 区域选择延迟别名记录。

1. Route 53 为延迟别名记录查找别名目标，并检查相应运行状况检查的状态。一个加权记录的运行状况检查失败，因此不考虑该记录。

1. 用于 us-east-1 区域的别名目标中的其他加权记录没有运行状况检查。相应的资源可能运行状况良好或运行状况不佳，但没有运行状况检查，Route 53 无法了解真实情况。Route 53 假定该资源运行状况良好，并在对查询的响应中返回相应的值。

## 当您将“Evaluate Target Health”设置为“No”时，会出现什么情况？
<a name="dns-failover-complex-configs-eth-no"></a>

通常，应该为树中所有别名记录将 **Evaluate Target Health** (评估目标运行状况) 设置为 **Yes** (是)。如果将 **Evaluate Target Health**（评估目标运行状况）设置为 **No**（否），Route 53 会继续将流量路由到别名记录引用的记录，即使这些记录未通过运行状况检查。

在以下示例中，所有加权记录都有关联的运行状况检查，但对于 us-east-1 区域的延迟别名记录，则将 **Evaluate Target Health** (评估目标运行状况) 设置为 **No** (否)：

![\[包含“评估目标运行状况”设置为“否”的别名记录的 DNS 配置。\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/hc-latency-alias-weighted-eth-is-no.png)


在此配置中，当您将别名记录的 **Evaluate Target Health** 设置为 **No** 时，将出现以下情况：

1. Route 53 收到针对 example.com 的查询。根据用户提出请求的延迟，Route 53 为 us-east-1 区域选择延迟别名记录。

1. Route 53 确定用于延迟别名记录的别名目标，并检查相应运行状况检查。两项检查都失败。

1. 由于用于 us-east-1 区域中的延迟别名记录的 **Evaluate Target Health**（评估目标运行状况）值为 **No**（否），Route 53 必须在此分支中选择一个记录，而不是忽略该分支并在 ap-southeast-2 区域中查找运行状况良好的记录。

# Amazon Route 53 在已配置运行状况检查时如何选择记录
<a name="health-checks-how-route-53-chooses-records"></a>

如果您配置了为具有相同名称、相同类型 (A 或 AAAA) 和相同路由策略 (如加权或故障转移) 的一组记录中的所有记录进行运行状况检查，则 Route 53 会选择运行良好的记录并返回该记录中的适用值，以响应 DNS 查询。

例如，假设您创建三个加权 A 记录，并且为所有三个记录分配运行状况检查。如果其中一个记录的运行状况检查结果是运行状况不良，则 Route 53 会使用另外两个记录之一中的 IP 地址响应 DNS 查询。

Route 53 使用以下方法来选择运行状况良好的记录：

1. Route 53 最初根据路由策略和您为每个记录指定的值来选择记录。例如，对于加权记录，Route 53 会根据您为每个记录指定的权重选择记录。

1. Route 53 会确定记录是否运行状况良好：
   + **关联运行状况检查的非别名记录** — 如果将运行状况检查与非别名记录关联，Route 53 会检查运行状况检查的当前状态。

     Route 53 会定期检查在运行状况检查中指定的端点的运行状况；当 DNS 查询到达时，它不会执行运行状况检查。

     您可以将运行状况检查与别名记录关联，但我们建议您仅将运行状况检查与非别名记录关联。有关更多信息，请参阅 [在将运行状况检查与别名记录关联时会发生什么？](dns-failover-complex-configs.md#dns-failover-complex-configs-hc-alias)。
   + **“评估目标运行状况”设置为“是”**的别名记录 — Route 53 会检查别名记录所引用资源（例如，ELB 负载均衡器或同一托管区域中的另一记录）的运行状况。

1. 如果记录的运行状况良好，Route 53 将使用适用值（如 IP 地址）响应查询。

   如果记录运行状况不良，则 Route 53 会使用相同标准选择另一记录并重复上述流程，直到找到一个运行状况良好的记录。

Route 53 将使用以下标准选择记录：

**不带运行状况检查的记录始终是运行状况良好的记录**  
如果具有相同名称和类型的一组记录中的某个记录没有关联的运行状况检查，Route 53 将始终认为其运行状况良好，并始终将其包含在可用的响应查询中。

**如果没有运行状况良好的记录，则认为所有记录均为运行状况良好**  
如果一组记录中所有记录的运行状况均不良，而 Route 53 需要返回一些内容以响应 DNS 查询，但它没有了选择记录的标准。在这种情况下，Route 53 将认为该组中所有记录的运行状况都良好，并根据路由策略和为每个记录指定的值选择记录。

**权重为 0 的加权记录**  
如果为一组加权记录中的所有记录添加运行状况检查，但为部分记录指定非零权重并为其他记录指定零权重，那么运行状况检查会按照所有记录均具有非零权重的情况进行，但下列情况除外：  
+ Route 53 最初仅考虑非零加权记录（如果有）。
+ 如果权重大于 0 的所有记录的运行状况都不良，Route 53 会考虑零权重的记录。
由于 Route 53 在某些情况下会考虑零加权记录，因此务必确保零加权目标对 DNS 查询也有可行的答案。  
有关加权记录的更多信息，请参阅 [运行状况检查和加权路由](routing-policy-weighted.md#routing-policy-weighted-healthchecks)。

**别名记录**  
还可以为每个别名记录将 **Evaluate Target Health** (评估目标运行状况) 设置为 **Yes** (是)，为别名记录配置运行状况检查。此时，Route 53 会评估记录将流量路由到其中的资源 (例如，ELB 负载均衡器或同一托管区域中的另一记录) 的运行状况。  
例如，假设别名记录的别名目标是一组全部具有非零权重的加权记录：  
+ 只要至少有一个加权记录的运行状况良好，Route 53 便认为该别名记录运行状况良好。
+ 如果所有加权记录的运行状况都不良，Route 53 将认为该别名记录运行状况不良。
+ Route 53 将不再考虑该树分支中的记录，直到至少有一个加权记录再次变为正常状态。
有关更多信息，请参阅 [复杂 Amazon Route 53 配置中的运行状况检查的工作原理复杂配置中的运行状况检查的工作原理](dns-failover-complex-configs.md)。

**故障转移记录**  
故障转移记录的工作方式通常和其他路由类型相同。您可以创建运行状况检查并将其与非别名记录关联，然后将别名记录的 **Evaluate Target Health** (评估目标运行状况) 设置为 **Yes** (是)。注意以下几点：  
+ 主记录和辅助记录都可以是非别名记录或者别名记录。
+ 如果您将运行状况检查与主和辅助故障转移记录关联，下面是 Route 53 响应请求的方式：
  + 如果 Route 53 认为主记录运行状况良好（如果运行状况检查端点的运行状况良好），Route 53 将只返回主记录来响应 DNS 查询。
  + 如果 Route 53 认为主记录运行状况不佳，辅助记录运行状况良好，Route 53 将改为返回辅助记录。
  + 如果 Route 53 认为主和辅助记录的运行状况都不佳，Route 53 将返回主记录。
+ 在配置辅助记录时，可添加运行状况检查，也可不添加。如果您省略用于辅助记录的运行状况检查，并且主记录的运行状况检查端点运行状况不佳，则 Route 53 始终使用辅助记录来响应 DNS 查询。即使辅助记录运行状况不良时也是如此。
有关更多信息，请参阅以下主题：  
+ [使用一个主资源和一个辅助资源配置主动/被动故障转移](dns-failover-types.md#dns-failover-types-active-passive-one-resource)
+ [使用多个主资源和多个辅助资源配置主动/被动故障转移](dns-failover-types.md#dns-failover-types-active-passive-multiple-resources)

# 主动/主动和主动/被动故障转移
<a name="dns-failover-types"></a>

可以使用 Route 53 运行状况检查来配置双活和主动/被动的故障转移配置。您可以使用故障转移以外的任何[路由策略](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) (或路由策略组合) 配置主动/被动故障转移，并使用故障转移路由策略配置主动/被动故障转移。

**Topics**
+ [主动/主动故障转移](#dns-failover-types-active-active)
+ [主动/被动故障转移](#dns-failover-types-active-passive)

## 主动/主动故障转移
<a name="dns-failover-types-active-active"></a>

如果您希望所有资源在大部分时间内都可用，可使用此故障转移配置。当某个资源不可用时，Route 53 可以检测到它运行状况不佳并且停止在响应查询时包含该资源。

在双活故障转移中，具有相同名称、相同类型（例如 A 或 AAAA）和相同路由策略（如加权或延迟）的所有记录处于活动状态，除非 Route 53 认为它们运行状况不良。Route 53 可以使用任何运行状况良好的记录响应 DNS 查询。

## 主动/被动故障转移
<a name="dns-failover-types-active-passive"></a>

如果您希望主资源或资源组在大部分时间内可用，同时希望辅助资源或资源组处于备用状态以防所有主资源均不可用，可使用主动/被动故障转移配置。响应查询时，Route 53 将只包含运行状况良好的主资源。如果所有主资源的运行状况都不佳，Route 53 将只在 DNS 查询的响应中包含运行状况良好的辅助资源。

**Topics**
+ [使用一个主资源和一个辅助资源配置主动/被动故障转移](#dns-failover-types-active-passive-one-resource)
+ [使用多个主资源和多个辅助资源配置主动/被动故障转移](#dns-failover-types-active-passive-multiple-resources)
+ [使用加权记录配置主动/被动故障转移](#dns-failover-types-active-passive-weighted)

### 使用一个主资源和一个辅助资源配置主动/被动故障转移
<a name="dns-failover-types-active-passive-one-resource"></a>

要使用一个主记录和一个辅助记录创建主动/被动故障转移配置，只需创建相应记录并指定 **Failover** (故障转移) 作为路由策略。当主资源运行状况良好时，Route 53 使用主记录响应 DNS 查询。当主资源运行状况不良时，Route 53 使用辅助记录响应 DNS 查询。

### 使用多个主资源和多个辅助资源配置主动/被动故障转移
<a name="dns-failover-types-active-passive-multiple-resources"></a>

您还可以将多个资源与主记录和/或辅助记录关联。在使用该配置时，只要有至少一个关联资源的运行状况良好，Route 53 便认为主故障转移记录的运行状况良好。有关更多信息，请参阅 [Amazon Route 53 在已配置运行状况检查时如何选择记录Route 53 在已配置运行状况检查时如何选择记录](health-checks-how-route-53-chooses-records.md)。

要使用多个资源为主记录或辅助记录配置主动/被动故障转移，请执行以下任务。

1. 为要将流量路由到其中的每个资源 (例如 EC2 实例或您数据中心中的 Web 服务器) 创建运行状况检查。
**注意**  
如果您要将流量路由到可以为其创建[别名记录](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-choosing-alias-non-alias.html)的任何 AWS 资源，请不要为这些资源创建运行状况检查。在创建别名记录时，改为将 **Evaluate Target Health** (评估目标运行状况) 设置为 **Yes** (是)。

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

1. 为主资源创建记录，并指定以下值：
   + 为每个记录指定相同的名称、类型和路由策略。例如，您可以创建三个都名为 failover-primary.example.com 的 A 加权记录。
   + 如果您正在使用可以为其创建别名记录的 AWS 资源，请将 “**评估目标健康状况” 指定为 “**是**”。**

     如果您要使用不能为其创建别名记录的资源，请将第 1 步中的适用运行状况检查与每个记录关联。

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

1. 如果适合，则为辅助资源创建记录，并指定以下值：
   + 为每个记录指定相同的名称、类型和路由策略。例如，您可以创建三个都名为 failover-secondary.example.com 的 A 加权记录。
   + 如果您正在使用可以为其创建别名记录的 AWS 资源，请将 “**评估目标健康状况” 指定为 “**是**”。**

     如果您要使用不能为其创建别名记录的资源，请将第 1 步中的适用运行状况检查与每个记录关联。
**注意**  
有些客户使用 Web 服务器作为其主资源，并将配置为网站端点的 Amazon S3 存储桶作为辅助资源。S3 存储桶包含简单的“暂时不可用”消息。如果您使用该配置，可以跳过此步骤，只需为第 4 步中的辅助资源创建一个故障转移别名记录。

1. 创建一主一辅的两个故障转移别名记录，并指定以下值：  
**主记录**  
   + **名称** — 指定希望 Route 53 用于路由流量的域名 (example.com) 或子域名 (www.example.com)。
   + **别名** — 指定 **Yes**（是）。
   + **别名目标** — 指定您在第 2 步中创建的记录的名称。
   + **路由策略** — 指定 **Failover**（故障转移）。
   + **故障转移记录类型** — 指定 **Primary**（主副本）。
   + **评估目标运行状况** — 指定 **Yes**（是）。
   + **与运行状况检查关联** — 指定 **No**（否）。  
**辅助记录**  
   + **名称** — 指定为主记录指定的相同名称。
   + **别名** — 指定 **Yes**（是）。
   + **别名目标** — 如果为您在第 3 步中创建的辅助资源创建了记录，请指定对应记录的名称。如果您使用 Amazon S3 存储桶作为辅助资源，请指定网站端点的 DNS 名称。
   + **路由策略** — 指定 **Failover**（故障转移）。
   + **故障转移记录类型** — 指定 **Secondary**（辅助）。
   + **评估目标运行状况** — 指定 **Yes**（是）。
   + **与运行状况检查关联** — 指定 **No**（否）。

### 使用加权记录配置主动/被动故障转移
<a name="dns-failover-types-active-passive-weighted"></a>

您还可以使用加权记录实现主动/被动故障转移，但需注意以下事项。如果为部分记录指定非零权重，为其它记录指定零权重，则 Route 53 仅使用具有非零权重且运行状况良好的记录响应 DNS 查询。如果权重大于 0 的所有记录的运行状况都不良，则 Route 53 将使用零权重记录响应查询。

**注意**  
具有非零权重的所有记录都必须处于运行状况不良的状态，然后 Route 53 才能开始使用零权重的记录响应 DNS 查询。在所有其他资源不可用，且最后一个运行状况良好的资源 (如 Web 服务器) 无法处理所有流量时，会导致您的 Web 应用程序或网站不可靠。

# 在私有托管区域中配置故障转移
<a name="dns-failover-private-hosted-zones"></a>

如果要在私有托管区域中创建故障转移记录，请注意以下几点：
+ Route 53 运行状况检查程序在 VPC 外部。要通过 IP 地址检查 VPC 中端点的运行状况，您必须为 VPC 中的实例分配公有 IP 地址。
+ 您可以创建 CloudWatch 指标，将警报与该指标相关联，然后根据警报的数据流创建运行状况检查。例如，您可以创建一个检查 EC2 CloudWatch 指标状态的指标，向该`StatusCheckFailed`指标添加警报，然后根据警报的数据流创建运行状况检查，以检查虚拟私有云 (VPC) Virtual Cloud (VPC) 中只有私有 IP 地址的实例。有关使用 CloudWatch 控制台创建 CloudWatch 指标和警报的信息，请参阅 [Amazon CloudWatch 用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/)。

有关更多信息，请参阅[使用私有托管区](hosted-zones-private.md)和[使用监控运行状况检查 CloudWatch](monitoring-health-checks.md)。

# Amazon Route 53 如何避免故障转移问题
<a name="dns-failover-problems"></a>

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

**Topics**
+ [Amazon Route 53 如何避免级联故障](#dns-failover-cascading-failures)
+ [Amazon Route 53 如何处理互联网分区](#dns-failover-internet-partitions)

## Amazon Route 53 如何避免级联故障
<a name="dns-failover-cascading-failures"></a>

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

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

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

## Amazon Route 53 如何处理互联网分区
<a name="dns-failover-internet-partitions"></a>

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

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

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

# 为运行状况检查命名和添加标签
<a name="health-checks-tagging"></a>

您可以向 Amazon Route 53 运行状况检查中添加标签，这些标签可为每个运行状况检查提供一个比运行状况检查 ID 更容易理解的名称。这些标签与 AWS 账单与成本管理 用于整理 AWS 账单的标签相同。有关将标签用于成本分配的更多信息，请参阅 *AWS Billing 用户指南*中的[将成本分配标签用于自定义账单报告](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation.html)。

每个标签都包含您定义的键 (标签的名称) 和值。为运行状况检查添加标签时，建议您添加的标签应包含键和值的下列值：
+ **键** — **Name**（名称）
+ **值** — 要为运行状况检查指定的名称

**Name**（名称）标签的值将显示在 Route 53 控制台的运行状况检查列表中，以便于您轻松区分各个运行状况检查。要查看一个运行状况检查的其他标签，您可以选择该运行状况检查，然后选择 **Tags** (标签) 选项卡。

有关标签的更多信息，请参阅以下主题：
+ 要在 Route 53 控制台中添加或编辑运行状况检查时添加、编辑或删除 **Name**（名称）标签，请参阅 [创建和更新运行状况检查](health-checks-creating.md)。
+ 有关为 Route 53 资源添加标签概览，请参阅 [给 Amazon Route 53 资源贴标签](tagging-resources.md)。

## 标签限制
<a name="health-checks-tagging-restrictions"></a>

下面是适用于 标签的基本限制：
+ 每个资源的最大标签数 — 新控制台上为 50 个，旧控制台上为 10 个。
+ 最大 **Key**（键）长度 - 128 个 Unicode 字符
+ 最大 **Value**（值）长度 - 256 个 Unicode 字符
+ **Key**（键）和 **Value**（值）的有效值 — UTF-8 字符集中的大写和小写字母、数字、空格及以下字符：\$1 . : / = \$1 - and @
+ 标签键和值区分大小写
+ 不要对键或值使用`aws:`前缀；它是保留供 AWS 使用的

## 添加、编辑和删除运行状况检查的标签
<a name="health-checks-tagging-procedures"></a>

以下过程演示如何在 Route 53 控制台上对运行状况检查使用标签。

**注意**  
我们正在更新 Route 53 的运行状况检查控制台。在过渡期间，您可以继续使用旧控制台。

选择您正在使用的控制台的选项卡。
+ [新控制台](#health-checks-tagging-new)
+ [旧控制台](#health-checks-tagging-old)

------
#### [ New console ]<a name="health-checks-tagging-adding-proc"></a>

**向运行状况检查中添加标签**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择**运行状况检查**。

1. 选择要为其添加标签的运行状况检查的链接 ID。

1. 在底部页面中，选择**标签**选项卡，然后选择**管理**，再选择**添加新标签**。

1. 在**键**字段中输入标签的名称，然后在**值**字段中输入值。

1. 选择**保存**。<a name="health-checks-tagging-editing-proc"></a>

**编辑运行状况检查的标签**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择**运行状况检查**。

1. 选择运行状况检查的链接 ID。

1. 在底部窗格中，选择**标签**选项卡，然后选择**管理**。

1. 您现在可以编辑和添加更多标签。

1. 选择**保存**。<a name="health-checks-tagging-delete-proc"></a>

**删除运行状况检查的标签**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择**运行状况检查**。

1. 选择运行状况检查的链接 ID。

1. 在底部窗格中，选择**标签**选项卡，然后选择**管理**。

1. 在要删除的标签的旁边，选择**删除**。

1. 选择**保存**。

------
#### [ Old console ]<a name="health-checks-tagging-adding-procedure"></a>

**向运行状况检查中添加标签**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择 **Health Checks (运行状况检查)**。

1. 选择一个运行状况检查，或选择多个运行状况检查 (如果要向多个运行状况检查中添加相同的标签)。

1. 在底部窗格中，选择 **Tags** 选项卡，然后选择 **Add/Edit Tags**。

1. 在 **Add/Edit Tags** 对话框的 **Key** 字段中输入标签的名称，在 **Value** 字段中输入值。

1. 选择 **Apply changes**。<a name="health-checks-tagging-editing-procedure"></a>

**编辑运行状况检查的标签**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择 **Health Checks (运行状况检查)**。

1. 选择一个运行状况检查。

   如果您选择共享同一标签的多个运行状况检查，则无法同时编辑所有标签的值。但请注意，如果您选择了拥有某一标签的多个运行状况检查并且其中至少有一个运行状况检查没有该标签，则可编辑出现在这些运行状况检查中的标签的值。

   例如，假设您选择多个有**成本中心**标签的运行状况检查和一个没有该标签的运行状况检查。您选择添加标签的选项，并指定**成本中心**作为键，指定 **777** 作为值。对于已有 **Cost Center**（成本中心）标签的选定运行状况检查，Route 53 将值更改为 **777**。对于没有 **Cost Center**（成本中心）标签的这个运行状况检查，Route 53 会添加一个标签并将其值设置为 **777**。

1. 在底部窗格中，选择 **Tags** 选项卡，然后选择 **Add/Edit Tags**。

1. 在 **Add/Edit Tags** 对话框中，编辑值。

1. 选择**保存**。<a name="health-checks-tagging-procedure"></a>

**删除运行状况检查的标签**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 在导航窗格中，选择 **Health Checks (运行状况检查)**。

1. 选择一个运行状况检查，或选择多个运行状况检查 (如果要从多个运行状况检查中删除相同的标签)。

1. 在底部窗格中，选择 **Tags** 选项卡，然后选择 **Add/Edit Tags**。

1. 在 “**添加/编辑标签**” 对话框中，选择要删除的标签*X*旁边的。

1. 选择**保存**。

------

# 将运行状况检查程序与早于 2012-12-12 的 Amazon Route 53 API 版本结合使用
<a name="dns-failover-using-old-apis"></a>

自 2012-12-12 版本的 Amazon Route 53 API 起，开始支持运行状况检查。如果某个托管区域包含已配置运行状况检查的记录，建议您仅使用 2012-12-12 API 或更高版本。在将运行状况检查用于早期 API 版本时，请注意以下限制。
+ `ChangeResourceRecordSets` 操作无法创建或删除包括 `EvaluateTargetHealth`、`Failover` 或 `HealthCheckId` 元素的记录。
+ `ListResourceRecordSets` 操作可以列出包括这些元素的记录，但这些元素不包括在输出中。响应的 `Value` 元素中包含一条消息，指出该记录包括不受支持的属性。