如何使用 Route 53 运行状况检查配置 DNS 故障转移?

上次更新时间:2019 年 11 月 15 日

如何使用 Amazon Route 53 运行状况检查来配置 DNS 故障转移?

简短描述

您可以使用 Route 53 来检查资源的运行状况并仅返回运行正常的资源来响应 DNS 查询。您可以设置三种类型的 DNS 故障转移配置:

  1. 主–被:Route 53 会主动返回一个主资源。如果发生故障,Route 53 将会返回备用资源。可使用故障转移策略进行配置。
  2. 主–主:Route 53 会主动返回多个资源。如果发生故障,Route 53 将切换返回到运行正常的资源。除故障转移外,可使用任何路由策略配置。
  3. 组合:将多个路由策略(如基于延迟的策略、加权策略等)组合到一个树中,从而配置更为复杂的 DNS 故障转移策略。

解决方法

主-被式故障转移

主-被式 DNS 故障转移是最简单的方法,它使用一主一辅两个资源。

注意:开始操作前务必为您的主资源创建 Route 53 运行状况检查

使用故障转移别名记录的值为您的主辅资源创建两个资源记录。对于每个记录,请执行以下操作:

  1. 输入资源的名称(例如 resource.example.com)。
    注意:两个资源应使用相同的名称。
  2. 对于类型,请选择 A – IPv4 地址
  3. 对于别名,请选择。对于别名目标,请输入主资源的 DNS 名称。这时将会显示别名托管区域 ID
  4. 对于路由策略,请选择故障转移
    对于主记录的故障转移记录类型,请选择主要。对于集 ID,请输入一个唯一的名称(例如 elb-Primary)。
    对于辅助记录的故障转移记录类型,请选择辅助。对于集 ID,请输入一个唯一的名称(例如 elb-Secondary)。
  5. 对于评估目标运行状况,请为您的主记录选择。并为您的辅助记录选择
  6. 对于与运行状况检查关联,请为您的主记录选择。对于要关联的运行状况检查,选择您为您的主资源创建的运行状况检查。
  7. 选择创建以创建您的记录。

这时,记录将会指向您的主要资源的域,或者故障转移域至您的辅助资源。

主–主式故障转移

主–主式 DNS 故障转移会返回多个资源以响应 DNS 查询。当一个资源运行不正常时,Route 53 会故障转移到另一个资源。

注意:开始操作前务必为这两个资源创建 Route 53 运行状况检查。

使用故障转移别名记录的值为每个资源创建一个记录。对于每个记录,请执行以下操作:

  1. 输入资源的名称(例如 resource.example.com)。
    注意:务必确保每个记录的名称都相同。
  2. 选择一个记录类型(例如 A – IPv4 地址)。
    注意:所有资源记录都必须为相同的类型
  3. 对于别名,请选择。对于别名目标,请输入您的资源的 DNS 名称。这时将会显示别名托管区域 ID
  4. 选择路由策略,然后输入该策略的相关值(例如加权策略权重)。对于集 ID,请输入此资源的唯一名称(例如 Resource 1)。
    注意:对于加权路由策略,您可以将所有记录设置为相同的权重(例如 10)或不同的权重(例如 20 和 10,其中权重为 20 的记录会收到两倍的流量)。
  5. 对于评估目标运行状况,请选择
  6. 对于与运行状况检查关联,请选择。对于要关联的运行状况检查,请选择您为此资源创建的运行状况检查。
  7. 选择创建以创建您的记录。

组合故障转移

您也可以将多个路由策略和运行状况检查进行组合,以创建复杂的故障转移机制,让 Route 53 遍历多层记录后再返回相应的记录。

例如,假设您有三个终端节点,您可能希望在前两个终端节点(终端节点 A 和 B)之间平衡流量负载,并在前两个终端节点都未通过运行状况检查时返回第三个终端节点(终端节点 C)。在此配置中,您有两个路由层级。在下层路由中,Route 53 使用运行状况检查来确定终端节点 A 和 B 的运行是否正常,然后在这两个主资源之间平均路由流量。如果终端节点 A 和 B 都未通过运行状况检查,则流量将故障转移至上层路由。在上层路由中,Route 53 会将流量路由到终端节点 C,也即是辅助备用资源(如带有错误页面的 S3 存储桶)。您可以按如下所示创建此配置:

  1. 为所有三个终端节点创建 Route 53 运行状况检查,以便将其关联到运行状况检查记录。
  2. 对于下层路由,为终端节点 A 和 B 的域名(例如 resource.example.com)创建两条具有相等权重的加权记录。
    重要提示:请务必将终端节点 A 和 B 的运行状况检查与其加权记录关联。此步骤将使 Route 53 来确定每条记录的运行状况检查状态,并相应地在它们之间平衡流量负载。
  3. 对于上层路由,请为终端节点 C 的域名(例如 domain.example.com)创建故障转移记录。
    重要提示:请务必确保主记录是一条别名记录,指向您在第 2 步中创建的 resource.example.com 的记录。
    重要提示:请务必确保辅助记录指向作为故障转移资源的终端节点 C。
  4. 配置 Route 53 以确定主故障转移记录的运行状况。您可以创建一个自定义运行状况检查来确定两个加权记录的运行状况(例如已计算的运行状况检查)或使用记录选项来评估目标运行状况

此故障转移配置的工作原理如下:

  1. 客户端请求 domain.example.com
  2. 如果主记录通过运行状况检查,Route 53 将流量发送到经负载均衡的 resource.example.com 主资源记录,这会将客户端指向终端节点 A 或终端节点 B。
  3. 如果主记录未通过运行状况检查(终端节点 A 和 B 均未通过运行状况检查),Route 53 将主记录标记为不正常,同时故障转移至辅助记录。然后,Route 53 会将客户端请求发送到终端节点 C(备用资源)。
  4. 当主记录再次通过运行状况检查时,Route 53 会自动返回至主资源记录(终端节点 A 和 B)。

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?