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

Amazon Route 53 如何确定运行状况检查是否运行良好

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

Route 53 如何确定监控终端节点的运行状况检查的状态

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 状态代码来响应。

  • TCP 运行状况检查 – Route 53 必须能够在十秒内与终端节点建立 TCP 连接。

  • 使用字符串匹配的 HTTP 和 HTTPS 运行状况检查 – 与 HTTP 和 HTTPS 运行状况检查一样,Route 53 必须能够在四秒内与终端节点建立 TCP 连接,并且终端节点必须在连接后的两秒内使用 HTTP 状态代码 2xx 或 3xx 来响应。

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

对于监控终端节点的运行状况检查 (TCP 运行状况检查除外),如果来自终端节点的响应包含任何标头,则标头的格式必须为 RFC7230 规范《超文本传输协议 (HTTP/1.1):消息语法和路由》第 3.2 节“标头字段”中定义的格式。

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

Route 53 如何确定监控其他运行状况检查的运行状况检查的状态

运行状况检查可以监控其他运行状况检查的状态;此类型的运行状况检查称为已计算的运行状况检查。进行监控的运行状况检查是父运行状况检查,受监控的运行状况检查是子运行状况检查。一个父运行状况检查可以监控最多 255 个子运行状况检查的运行状况。以下是监控的工作原理:

  • Route 53 将视为运行状况良好的子运行状况检查的数量相加。

  • Route 53 将该数字与运行状况必须正常、否则即认为父运行状况检查的状态不良的子运行状况检查数量进行比较。

有关更多信息,请参阅 您在创建或更新运行状况检查时指定的值 中的 监控其他运行状况检查 (已计算的运行状况检查)

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

Route 53 如何确定监控 CloudWatch 的运行状况检查的状态

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

注意

由于 Route 53 运行状况检查监控 CloudWatch 数据流而非 CloudWatch 警报的状态,您无法使用 CloudWatch SetAlarmState API 操作强行更改运行状况检查的状态。

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