0Pricing
AWS Solutions Architect · 课时

路由策略:简单、加权与延迟

对单个资源使用简单路由,对 A/B 流量拆分使用加权路由,并使用延迟路由从距离用户最近的区域提供服务。

路由策略:简单、加权与延迟 是 CoddyKit 上的免费 AWS Solutions Architect 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AWS Solutions Architect 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AWS Solutions Architect 课程共包含 4 节课。

Route 53 路由策略概述

当多个资源记录集共享同一个 DNS 名称时,Route 53 路由策略决定如何应答 DNS 查询。该策略会告知 Route 53 应返回哪个 IP 或 DNS 名称,以及在什么条件下返回。选择正确的路由策略是 SAA-C03 考试中最常考的主题之一。

可用的路由策略包括:简单、加权、基于延迟、故障转移、地理位置、地理邻近和多值应答。每种策略适用于不同场景。大多数策略都可以与运行状况检查结合使用,以实现自动故障转移。

简单路由策略

简单路由将 DNS 名称映射到一个或多个 IP 地址(对于 A 记录),或映射到另一个主机名(对于 CNAME/ALIAS)。配置单个值时,Route 53 始终返回该值。配置多个值时,Route 53 会以随机顺序返回所有值,由客户端选择其中一个。

简单路由是默认策略,最适合不需要运行状况检查、流量拆分或地理差异化的单资源部署。它不支持运行状况检查——即使资源运行状况不佳,Route 53 仍会返回其地址。

# Create a simple routing record
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "api.example.com",
        "Type": "A",
        "TTL": 60,
        "ResourceRecords": [
          {"Value": "10.0.0.1"},
          {"Value": "10.0.0.2"}
        ]
      }
    }]
  }'

加权路由策略

加权路由根据您分配的权重,在多个资源之间分配 DNS 查询。每条记录都会获得一个介于 0 和 255 之间的数值权重。Route 53 按每条记录权重除以所有权重之和的比例返回各条记录。

例如:权重分别为 70、20 和 10 的三条记录,大约接收 70%、20% 和 10% 的流量。权重为 0 表示该记录不会参与路由,但不会被删除——这对于暂时停止流量而不移除记录非常有用。加权路由通常用于 A/B 测试、金丝雀部署和蓝绿切换。

# Create two weighted records: 90% to v1, 10% to v2
# Record 1 (v1)
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "A",
        "SetIdentifier": "v1",
        "Weight": 90,
        "TTL": 60,
        "ResourceRecords": [{"Value": "1.2.3.4"}]
      }
    }]
  }'

加权路由使用场景

加权路由在部署和测试场景中尤其有用:

  • 金丝雀发布:将 5% 的流量发送到新版本(权重 5),将 95% 的流量发送到稳定版本(权重 95);随着信心提升逐步调整权重
  • 蓝绿部署:从 100/0(全部为绿色环境)开始,逐步切换到 50/50,然后切换到 0/100(全部为蓝色环境),最后删除绿色环境记录
  • 负载测试:将一小部分生产流量发送到测试环境,以便在真实负载下验证性能

加权路由支持运行状况检查。如果某条加权记录的运行状况检查失败,Route 53 会停止在响应中包含该记录,并将其权重重新分配给运行状况正常的记录。

基于延迟的路由策略

基于延迟的路由会将每个 DNS 查询定向到为最终用户提供最低网络延迟的 AWS 区域。Route 53 会测量全球 DNS 解析器与 AWS 区域之间的延迟,并将查询路由到测得延迟最低的区域。

您需要在部署资源的每个区域创建一条记录,并将其类型设置为 LATENCY,同时指定区域。Route 53 会为每次查询选择延迟最低的选项,而不会比较实际资源——它使用 AWS 的延迟测量数据,而不是从用户所在位置进行的实时测量。

# Create latency records for us-east-1 and eu-west-1
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "api.example.com",
        "Type": "A",
        "SetIdentifier": "us-east-1",
        "Region": "us-east-1",
        "TTL": 60,
        "ResourceRecords": [{"Value": "54.100.1.1"}]
      }
    }]
  }'

延迟路由与地理位置路由

延迟路由和地理位置路由在考试中经常被混淆:

  • 延迟路由:根据网络性能进行路由,以尽量缩短往返时间——如果此时 us-west-2 的延迟低于 ap-northeast-1,日本用户可能会被路由到 us-west-2
  • 地理位置路由:根据 DNS 查询的地理来源进行路由——日本用户始终会被路由到日本记录,而不考虑延迟

请使用延迟路由来进行性能优化;请使用地理位置路由来实现内容个性化、法规合规或特定语言的内容。

多值应答路由

多值应答路由会针对每个 DNS 查询返回最多 8 条健康记录,使客户端能够随机选择其中一条。与简单路由(可能返回不健康的 IP)不同,多值路由会集成健康检查,只返回运行正常资源的 IP 地址。

多值应答不能替代负载均衡器——DNS 负载均衡不够复杂,而且记录会缓存在客户端层面。不过,当您有多个能力相当的端点时,它可以提供一种简单且经济高效的方式来分配流量并提高容错能力。

路由策略与健康检查

大多数路由策略(简单路由除外)都可以关联健康检查。健康检查失败后,Route 53 会停止在 DNS 响应中返回该记录。对于加权路由,被排除记录的流量会重新分配给健康的加权记录。对于延迟路由,则会使用延迟最低的下一个健康区域。

健康检查的评估独立于路由策略,并且可以针对 HTTP、HTTPS 和 TCP 端点进行配置。计算型健康检查会结合多个健康检查的结果(使用 AND/OR 逻辑),以进行综合健康状况评估。

# Associate a health check with a weighted record
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890 \
  --change-batch '{
    "Changes": [{
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "A",
        "SetIdentifier": "primary-us",
        "Weight": 100,
        "TTL": 60,
        "ResourceRecords": [{"Value": "54.100.1.1"}],
        "HealthCheckId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      }
    }]
  }'

如何选择正确的策略:考试提示

路由策略的快速考试判断指南:

  • “A/B 测试”、“金丝雀发布”、“蓝绿部署” → 加权
  • “最低延迟”、“最近的区域”、“最佳性能” → 延迟
  • “单个资源”、“简单设置” → 简单
  • “多个 IP 且全部健康” → 多值应答
  • “主动-被动故障转移” → Failover
  • “特定国家的内容”、“法规限制” → 地理位置
  • “根据与资源的距离进行路由” → 地理邻近

使用加权路由进行渐进式迁移

在迁移期间,加权路由是逐步切换流量的推荐策略。典型步骤如下:

  1. 开始:旧基础设施的权重为 100,新基础设施的权重为 0
  2. 启用新基础设施:调整为 95/5,并监控错误率和延迟
  3. 逐步增加:在数小时或数天内依次调整为 80/20 → 50/50 → 20/80 → 5/95
  4. 完成:调整为 0/100;停用旧基础设施
  5. 回滚:如果出现问题,立即将新基础设施的权重设为 0,以停止流量

与立即切换相比,这种模式可以降低风险;同时,只需调整 DNS 权重,而不必重新部署,就能快速回滚。

组合延迟策略与加权策略

Route 53 允许您通过逻辑组合策略来创建复杂的路由。例如,您可以使用延迟路由选择最近的区域,然后在该区域内使用加权路由,将流量分配到其中的多个端点。具体做法是在同一区域中创建带有特定 SetIdentifier 的加权记录,然后由延迟策略选择这些记录。

但是,单条记录只能使用一种路由策略。对于组合模式,请使用一层记录实现延迟路由,并在每个区域内分别使用一组加权记录,将流量指向不同的 ALB 或弹性 IP。

快速检查

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

课程回顾

本课介绍了以下内容:简单路由会返回一个或多个值,但不执行健康检查;加权路由按百分比分配流量,适用于 A/B 测试和渐进式迁移;基于延迟的路由会将用户引导至延迟最低的区域,以实现性能优化。大多数策略都可以集成健康检查,从而实现自动故障转移。接下来,我们将学习 Failover 和地理位置路由策略。

常见问题解答

「路由策略:简单、加权与延迟」课时是免费的吗?

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

「路由策略:简单、加权与延迟」这节课中我会学到什么?

对单个资源使用简单路由,对 A/B 流量拆分使用加权路由,并使用延迟路由从距离用户最近的区域提供服务。 你通过在浏览器中直接运行的动手代码来练习 AWS Solutions Architect,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

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

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

「路由策略:简单、加权与延迟」课时需要多长时间?

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

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

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

此课程中的所有课时

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