[AWS] 7. AWS Route 53,DNS(Domain Name System),路由策略

发布: (2026年1月15日 GMT+8 11:21)
13 min read
原文: Dev.to

Source: Dev.to

什么是 DNS?

  • 域名系统 – 将人类友好的主机名转换为机器 IP 地址。
    www.google.com → 172.217.18.36
  • 互联网的骨干。
  • 使用 层次化命名结构(例如 .comexample.comwww.example.comapi.example.com)。
  • 域名注册商 – 销售域名的服务(例如 Amazon Route 53、GoDaddy)。
  • DNS 记录 – A、AAAA、CNAME、NS,…
  • 区域文件 – 包含域的 DNS 记录。
  • 名称服务器 – 解析 DNS 查询(权威或非权威)。
  • 顶级域 (TLD).com.us.in.gov.org,…
  • 二级域 (SLD)amazon.comgoogle.com,…

Amazon Route 53 概述

  • 高度可用、可扩展、全托管、权威的 DNS 服务。
  • 权威 — 您(客户)可以更新 DNS 记录。
  • 同时充当 域名注册商
  • 可以 检查 您资源的 健康状态
  • 唯一的 AWS 服务 提供 100 % 可用性 SLA
  • “53” 这一名称来源于传统的 DNS 端口(53/TCP)。

为域名路由流量

Each DNS record contains:

字段描述
域名/子域名e.g., example.com
记录类型e.g., A, AAAA, CNAME
e.g., 12.34.56.78
路由策略How Route 53 responds to queries
TTLTime‑to‑live (how long the record is cached by resolvers)

Route 53 支持的 DNS 记录类型

类别记录类型
必知A, AAAA, CNAME, NS
高级CAA, DS, MX, NAPTR, PTR, SOA, TXT, SPF, SRV
  • A – 将主机名映射到 IPv4 地址。
  • AAAA – 将主机名映射到 IPv6 地址。
  • CNAME – 将主机名映射到另一个主机名。
    • 目标必须拥有 AAAAA 记录。
    • 不能在区域根(zone apex)使用(例如,您不能为 example.com 创建 CNAME,但可以为 www.example.com 创建)。

名称服务器 (NS) 记录

  • 为托管区域定义权威名称服务器

托管区域

类型描述示例
公共托管区域在互联网上路由流量的记录(公共域名)。application1.mypublicdomain.com
私有托管区域一个或多个 VPC 内路由流量的记录(私有域名)。application1.company.internal
  • 费用: 每个托管区域每月 $0.50。

TTL(Time‑to‑Live)

TTL 设置影响
高 TTL(例如,24 h)对 Route 53 的查询次数更少,但记录可能会更长时间保持过时。
低 TTL(例如,60 s)查询次数更多(成本更高),但更改传播更快。

注意:Alias 记录外,TTL 对每个 DNS 记录都是必需的。

CNAME 与 Alias 记录

功能CNAMEAlias
指向任意主机名AWS 资源(ELB、CloudFront 等)
根域名(区域顶点)支持❌ 不允许✅ 允许
费用标准 DNS 查询费用免费(无额外费用)
健康检查无原生健康检查集成健康检查
TTL用户自定义未设置(由 Route 53 管理)
记录类型CNAME内部存储为 A/AAAA(针对该 AWS 资源)
支持的资源任意主机名ELB、CloudFront、API Gateway、Elastic Beanstalk、S3 静态网站、VPC 接口端点、Global Accelerator、同一区域内的另一个 Route 53 记录
不可别名EC2 公共 DNS 名称(例如 ec2-xx-xx-xx-xx.compute-1.amazonaws.com

示例 – 将 AWS 负载均衡器映射到友好名称:

myapp.mydomain.com  →  lb-1234.us-east-2.elb.amazonaws.com   (Alias)

路由策略(Route 53 对 DNS 查询的响应方式)

重要提示: DNS 路由 并不等同 于负载均衡器执行的流量路由。DNS 只返回 IP 地址或别名;随后客户端会联系返回的终端节点。

策略描述关键点
Simple返回单个值(如果存在多个则随机返回其中一个)。无健康检查;使用别名时只能指向一个 AWS 资源。
Weighted根据分配的权重分配流量。所有记录必须共享相同的名称和类型;可以进行健康检查;权重为 0 时会禁用该记录。
Latency‑based返回对请求者延迟最低的终端节点。使用客户端位置与 AWS 区域之间的延迟测量;可以进行健康检查(故障转移)。
Failover (Active‑Passive)将流量路由到主资源;如果主资源故障则切换到次要资源。需要健康检查。
Geolocation根据请求者的地理位置返回不同的记录。适用于合规性或区域内容分发。
Geoproximity (Traffic Flow)基于地理距离进行路由,可选偏置。通过 Route 53 Traffic Flow 配置。
Multi‑Value Answer返回最多八条健康记录,客户端自行选择。内置健康检查,无需单独的健康检查。

健康检查

  • 目的: 监控端点(应用程序、服务器、AWS 资源)的健康状态,并实现自动 DNS 故障转移。
  • 健康检查类型:
    1. 端点健康检查 – HTTP、HTTPS 或 TCP 探测。
    2. 计算健康检查 – 合并多个健康检查的结果。
    3. 基于 CloudWatch 的健康检查 – 使用 CloudWatch 警报(例如 DynamoDB 限流、RDS 警报、自定义指标)。

核心设置

设置默认 / 常见值
健康/不健康阈值3
间隔30 秒(在更高成本下可降低至 10 秒)
支持的协议HTTP、HTTPS、TCP
成功标准≥ 18 % 的全局健康检查器报告 healthy,端点才被视为健康。
视为健康的状态码2xx 和 3xx 响应。
基于内容的检查可选 – 根据响应前 5 120 字节内的文本进行通过/失败判定。
全局健康检查器大约 15 个分布在全球的地点。

健康检查集成

  • 健康检查可以通过 加权基于延迟故障转移多值答案 策略附加到记录
  • HTTP 健康检查仅适用于 公共 资源。
  • 私有资源 可以通过 计算基于 CloudWatch 的 健康检查进行监控。

提示: 确保防火墙或安全组允许来自 Route 53 健康检查 IP 范围的入站流量。

快速参考速查表

概念关键要点
DNS将名称 → IP;层级结构(TLD → SLD → 子域)。
Route 53托管的权威 DNS,具备健康检查和 100 % SLA。
Record TypesA/AAAA(IP),CNAME(主机名),NS(名称服务器),以及许多高级类型。
Alias RecordAWS 特有的 “CNAME‑like” 记录,可在区域根使用;免费,具健康检查。
TTL控制缓存时长;TTL 低 = 变更快,TTL 高 = 查询次数少。
Routing PoliciesSimple、Weighted、Latency、Failover、Geolocation、Geoproximity、Multi‑Value。
Health Checks监控端点;触发故障转移;可基于端点、计算或 CloudWatch。
Hosted Zones公共(Internet) vs 私有(VPC)——每个区域 $0.50/月。

健康检查器

  • 将多个健康检查的结果合并为单个健康检查。
    • 逻辑运算符:ORANDNOT
  • **最大子项数:**256 个子健康检查。
  • **通过标准:**指定父级被视为健康所需通过的子检查数量。
  • **典型用例:**在不导致 所有 健康检查失败的情况下对网站进行维护。

**注意:**Route 53 健康检查器在 VPC 之外 运行,因此它们 无法访问私有端点(私有 VPC 资源或本地服务器)。
若要监控私有资源,您可以:

  1. 创建一个 CloudWatch 指标,反映私有端点的健康状态。
  2. 为该指标附加一个 CloudWatch 警报
  3. 创建一个监控该警报本身的 Route 53 健康检查。

故障转移(主动‑被动)

标准的 Route 53 故障转移路由,其中一个资源为主(主动),另一个为备用(被动)。

地理位置路由

  • 目的: 根据用户位置路由流量(不同于基于延迟的路由)。
  • 位置粒度: 洲、国家、美国州(当区域重叠时,最精确的匹配获胜)。
  • 默认记录: 始终创建“Default”记录,以捕获不匹配任何位置规则的请求。
  • 使用场景:
    • 网站本地化
    • 按地区限制内容
    • 跨地区负载均衡
  • 健康检查: 可以关联健康检查,以确保只有健康的端点接收流量。

地理邻近路由

  • 目标: 根据 地理偏好 将流量向资源倾斜或远离。
  • 支持的资源:
    • AWS 资源 – 指定 AWS 区域。
    • 非‑AWS 资源 – 指定纬度和经度。
  • 实现方式: 需要 Route 53 流量流 (高级)
  • 偏好值:
    • 正向偏好 (1 – 99): 扩大地理区域 → 更多流量指向该资源。
    • 负向偏好 (‑1 – ‑99): 缩小区域 → 更少流量指向该资源。

基于 IP 的路由(CIDR 映射)

  • 工作原理: 根据客户端的 IP 地址进行流量路由。
  • 配置方式: 提供一组 CIDR 块,并将每个块映射到特定的端点/位置(用户 IP 到端点的映射)。
  • 使用场景:
    • 通过将用户发送到最近的端点来优化性能。
    • 降低网络成本。
    • 示例:将特定 ISP 的用户定向到专用端点。

Multi‑Value Answer Routing

  • When to use: 您有 多个资源 可以满足同一请求。
  • Behavior: Route 53 返回 每个查询最多 8 条健康记录
  • Health checks: 可以附加;仅返回健康的记录。
  • Important:不是 弹性负载均衡器 (ELB) 的替代方案。

域名注册 vs. DNS 服务

概念描述
域名注册商购买 域名的实体(例如 GoDaddy、Amazon Registrar)。通常会提供基础的 DNS 服务。
DNS 服务托管并 解析 您的 DNS 记录的系统(例如 Route 53)。您可以使用与注册商 不同 的 DNS 服务。

典型工作流程:

  1. 购买 域名,可在任何注册商(包括第三方注册商)处购买。
  2. 在 Route 53 中 创建托管区域
  3. 在注册商处 更新 NS 记录,指向 Route 53 的名称服务器。

关键要点: 域名注册商 ≠ DNS 服务。 虽然许多注册商会捆绑 DNS,但您可以自由选择任何您喜欢的 DNS 提供商。

Route 53 Resolver(混合 DNS)

默认情况下,Resolver 会自动响应以下 DNS 查询:

  • EC2 实例的本地域名。
  • 私有托管区域中的记录。
  • 公共名称服务器中的记录。

可连接的网络类型

  • VPC(包括对等 VPC)。
  • 本地网络(通过 AWS Direct ConnectAWS VPN)。

端点

端点类型功能
入站端点允许 您本地的 DNS 解析器 为 AWS 资源(例如 EC2 实例)以及私有托管区域记录解析域名。
出站端点使 Route 53 Resolver 能够将来自 VPC 的 DNS 查询转发到 您本地的 DNS 解析器

这些端点使您能够构建 混合 DNS 架构,在 AWS 与外部网络之间无缝解析名称。

Back to Blog

相关文章

阅读更多 »