0Pricing
AWS Solutions Architect · 课时

故障转移与地理位置路由

通过运行状况检查配置主动-被动故障转移,并根据查询的地理来源限制或自定义响应。

故障转移与地理位置路由 是 CoddyKit 上的免费 AWS Solutions Architect 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AWS Solutions Architect 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AWS Solutions Architect 课程共包含 4 节课。

故障转移路由概述

故障转移路由实现主动-被动配置:一条记录指定为 Primary,另一条指定为 Secondary。只要 Primary 的健康检查通过,Route 53 就始终返回 Primary 记录。如果 Primary 变得不健康,Route 53 会自动切换为返回 Secondary 记录。

故障转移路由是灾难恢复场景中的首选模式:您有一个生产环境(主环境)和一个备用环境(辅助环境),只有在主环境停止运行时,备用环境才应接收流量。

配置故障转移记录

要设置故障转移路由,请使用相同的 DNS 名称创建两条记录:一条使用 Failover=PRIMARY,另一条使用 Failover=SECONDARY。为 Primary 记录附加健康检查。如果 Secondary 指向的资源可能独立发生故障,也应为 Secondary 记录配置健康检查。

Secondary 记录充当静态回退目标——它可以指向 S3 静态网站、维护页面或缩减规模的备用环境。即使 Secondary 没有健康检查,Primary 发生故障时,Route 53 也始终会回退到 Secondary。

# Create primary failover record
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "A",
        "SetIdentifier": "primary",
        "Failover": "PRIMARY",
        "TTL": 60,
        "ResourceRecords": [{"Value": "54.100.1.1"}],
        "HealthCheckId": "hc-primary-id"
      }
    }]
  }'

主动-被动与主动-主动

故障转移路由会创建主动-被动设置:正常运行期间只有 Primary 提供流量服务,Secondary 保持空闲并等待接管。这样可以降低备用环境的成本,但会导致恢复时间略长(需要等待 DNS TTL 过期并等待 Route 53 完成切换)。

对于主动-主动设置(两个资源同时提供流量服务),请使用加权路由(相同权重)或延迟路由。如果某个资源发生故障,其健康检查会失败,Route 53 会自动将其从 DNS 响应中移除,从而在内置故障转移的同时实现主动-主动模式。

地理位置路由概述

地理位置路由根据 DNS 解析器的地理位置对 DNS 查询进行路由(通常是用户的 ISP 解析器或 AWS Route 53 Resolver)。您可以针对特定大洲、国家或美国州创建记录,Route 53 会返回与查询来源位置匹配程度最高的记录。

如果没有匹配的特定位置记录,Route 53 会返回默认记录(如果已配置)。如果没有默认记录,来自未匹配位置的查询会收到 NODATA。请始终创建默认记录,以处理来自您未明确配置位置的用户。

# Create a geolocation record for Germany
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "www.example.com",
        "Type": "A",
        "SetIdentifier": "germany",
        "GeoLocation": {"CountryCode": "DE"},
        "TTL": 60,
        "ResourceRecords": [{"Value": "54.200.1.1"}]
      }
    }]
  }'

地理位置路由的使用场景

地理位置路由的主要使用场景:

  • 特定语言的内容:将讲法语的用户路由到法语 CDN 源站,将讲德语的用户路由到德语源站
  • 法规合规:确保欧盟用户数据留在欧盟区域(GDPR),或阻止来自特定国家的访问
  • 本地化价格或可用性:显示特定区域的价格,或将服务限制在受支持的地区
  • 地理封锁:将地理位置记录指向维护端点,为来自受限位置的用户返回拦截页面或空响应

地理位置匹配的精确程度与默认记录

Route 53 会匹配最具体的地理位置:州级记录优先于国家级记录,国家级记录优先于大洲级记录,大洲级记录优先于默认记录。州级地理位置路由仅适用于美国。

如果省略默认记录,并且用户的位置与任何已配置记录都不匹配,Route 53 会返回 NXDOMAIN 或 NODATA——这会使未配置区域中的用户无法访问,而且通常不会显示明显提示。请始终添加默认地理位置记录作为兜底,以避免此类无提示故障。

地理邻近路由

地理邻近路由根据用户与资源之间的实际地理距离来路由流量,并可选择使用偏移量来扩大或缩小每个资源的有效路由半径。正偏移量会扩大资源提供服务的地理区域;负偏移量会缩小该区域。

地理邻近路由只能通过Traffic Flow(Route 53 的可视化路由策略编辑器)使用,并同时支持 AWS 区域(Route 53 会自动获取其坐标)和自定义资源位置(需要您提供纬度和经度)。

Route 53 Traffic Flow

Route 53 Traffic Flow 是一个可视化策略编辑器,允许您通过树状图组合多个路由策略来构建复杂的路由逻辑。例如,您可以先应用地理位置路由来分离欧盟流量,然后在欧盟内部应用延迟路由来选择性能最佳的区域,最后在每个区域内使用加权路由进行蓝绿部署。

Traffic Flow 策略带有版本控制,因此您可以安全地测试更改。您可以将一个 Traffic Flow 策略关联到一个或多个 DNS 名称;策略更新会立即传播,无需重新创建单条记录。

将故障转移与其他策略组合

故障转移路由可以嵌套在其他策略中。一种常见模式是:使用延迟路由选择最近的区域,然后在每个区域内使用Failover记录。这样,如果该区域中的主端点发生故障,流量就会自动切换到同一区域内的辅助端点。

另一种模式是多区域主动-被动架构:使用延迟路由选择主端点。如果主区域的健康检查失败,Route 53 会继续查找延迟最低的下一个健康区域,从而将延迟优化与 DR 故障转移有效结合起来。

故障转移的健康检查要求

要使故障转移路由正常工作,Primary 记录必须**附加健康检查。如果没有健康检查,Route 53 会将 Primary 视为始终健康,并且永远不会切换到 Secondary。Secondary 记录可以选择配置自己的健康检查;如果 Secondary 也发生故障,Route 53 仍会返回 Secondary 的地址(因为它是最后的备用方案)。

可用于故障转移的健康检查类型包括:HTTP/HTTPS 端点检查、TCP 检查,以及 CloudWatch 告警检查(适用于组合多个指标来反映应用综合健康状况的场景)。

地理位置与延迟:考试中的区别

这一区别在 SAA-C03 考试中经常出现:

  • 地理位置:根据用户所在的地理位置进行路由——对于给定国家或大洲,始终返回相同的端点,而不考虑性能;用于内容本地化和合规
  • 延迟:根据用户所处位置的网络性能进行路由——如果此时 us-east-1 比 eu-west-1 更快,欧洲用户可能会被路由到 us-east-1;用于性能优化

考试题中的关键词:“遵守数据驻留要求”、“特定国家的内容”、“阻止来自某些区域的用户” → 地理位置。“最近的区域”、“最低延迟”、“为全球用户提供最佳性能” → 延迟。

快速检查

请测试您对本课中 AWS Solutions Architect(SAA-C03)相关概念的理解。

课程回顾

在本课中,您学习了:故障转移路由通过切换到 Secondary 来实现主动-被动 HA,当 Primary 的运行状况检查失败时便会执行切换;地理位置路由根据用户的地理来源来引导用户,以满足合规和本地化要求;地理邻近路由通过 Traffic Flow,结合可配置的偏差来使用物理距离。请始终添加默认地理位置记录,以处理不匹配的位置。接下来,我们将深入探讨运行状况检查和 DNS 故障转移。

常见问题解答

「故障转移与地理位置路由」课时是免费的吗?

是的 — 「故障转移与地理位置路由」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AWS Solutions Architect 课程的其余内容,请升级到 CoddyKit PRO。 AWS Solutions Architect 课程共包含 4 节课。

「故障转移与地理位置路由」这节课中我会学到什么?

通过运行状况检查配置主动-被动故障转移,并根据查询的地理来源限制或自定义响应。 你通过在浏览器中直接运行的动手代码来练习 AWS Solutions Architect,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AWS Solutions Architect 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AWS Solutions Architect 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「故障转移与地理位置路由」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AWS Solutions Architect 课中编写并运行代码吗?

能。每节 AWS Solutions Architect 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 托管区域与 DNS 记录类型
  2. 路由策略:简单、加权与延迟
  3. 故障转移与地理位置路由
  4. 运行状况检查与 DNS 故障转移
← 返回 AWS Solutions Architect