如果你已经用过 EC2、S3 等 AWS 服务,可能已经注意到每个服务都有自己的域名——比如 EC2 实例的 ec2-xx-xx-xx-xx.compute-1.amazonaws.com。但如果想让用户通过 yourdomain.com 这样的自定义域名访问你的应用,就需要用到 Amazon Route 53

今天这篇文章,就带你彻底搞懂 Route 53 是什么、能做什么,然后手把手完成一次域名解析的配置。

什么是 Amazon Route 53?

Route 53 是 AWS 提供的一项高可用、可扩展的域名系统(DNS)Web 服务。它的名字来自一个巧妙的双关:DNS 服务的核心端口是 53,而“Route”既指“路由”也暗指“53号公路”。

简单来说,Route 53 做三件事:

  1. 域名注册:帮你购买和管理域名

  2. DNS 解析:将域名(如 example.com)翻译成计算机能理解的 IP 地址(如 192.0.2.1

  3. 运行状况检查:监控你的应用是否健康,自动将流量导向健康的资源

Route 53 在全球各地部署了 DNS 服务器,当用户访问你的域名时,会自动从离他们最近的服务器获取解析结果,确保快速响应。同时,它会根据流量自动扩展,无需你操心容量问题。

域名注册、DNS 托管与解析——三个概念搞清楚

在开始操作之前,先理清三个容易混淆的概念:

概念简单理解谁在做这件事域名注册向 ICANN 买下 yourdomain.com 这个“名字”的使用权域名注册商DNS 托管存放 DNS 记录(告诉别人你的域名指向哪个 IP)的“电话簿”DNS 托管服务商DNS 解析当用户输入域名时,查询这个“电话簿”拿到 IP 地址递归解析器 + 权威 DNS 服务器

关键理解:注册商和 DNS 托管商可以是不同的公司。比如你可以在 GoDaddy 买域名,但把 DNS 托管交给 Route 53——你只需要在 GoDaddy 那里把 Name Server 改成 Route 53 给你的四个地址就行了。

Route 53 的核心组件

托管区域(Hosted Zone)

托管区域就像是 DNS 记录的“容器”。Route 53 提供两种类型:

  • 公有托管区域:面向互联网,告诉全世界你的域名指向哪里

  • 私有托管区域:只在你的 VPC 内部生效,用于内部服务的域名解析

记录集(Record Sets)

记录集就是具体的“映射规则”——告诉 DNS 当用户查询某个域名时该返回什么。常见的记录类型包括:

记录类型用途示例A 记录将域名指向 IPv4 地址example.com192.0.2.1AAAA 记录将域名指向 IPv6 地址example.com2001:0db8:...CNAME 记录将一个域名别名指向另一个域名www.example.comexample.comMX 记录指定邮件服务器用于配置邮箱服务

特别提示:DNS 协议不允许为区域顶点(如 example.com)创建 CNAME 记录。如果需要将顶点域名指向某资源,应使用 Route 53 的别名记录(Alias) ——它可以指向 ELB、CloudFront、S3 等 AWS 资源,且不额外收费。

路由策略

Route 53 提供了多种路由策略,可以根据不同需求灵活配置:

  • 简单路由:一个域名只对应一个资源,最基础的方式

  • 加权路由:按比例分配流量到多个资源(如 70% 到版本 A,30% 到版本 B)

  • 延迟路由:将用户导向网络延迟最低的资源

  • 故障转移路由:主资源不健康时自动切换到备用资源

  • 地理位置路由:根据用户所在地区返回不同的解析结果

图文教程:为新域名配置 DNS 解析

下面演示如何为已在 Route 53 注册的域名配置解析(如果你是在其他注册商购买的域名,也可以参考第二步和第三步,只需在注册商那里更新 Name Server 即可)。

第一步:在 Route 53 中注册域名(可选)

如果你还没有域名,可以直接在 Route 53 中购买:

  1. 登录 AWS 管理控制台,进入 Route 53

  2. 在左侧菜单点击 “注册域名”

  3. 输入你想要的域名,检查可用性

  4. 按照流程完成注册

注册完成后,Route 53 会自动为这个域创建一个公有托管区域,并分配四个 Name Server。

第二步:创建托管区域(如果还没有)

如果你已经在其他注册商购买了域名,需要先在 Route 53 中创建一个托管区域:

  1. 在 Route 53 控制台左侧点击 “托管区域”

  2. 点击 “创建托管区域”

  3. 域名名称:输入你的域名(如 example.com

  4. 类型:选择 “公有托管区域”(面向互联网)或 “私有托管区域”(仅限 VPC 内部)

  5. 点击 “创建”

创建后,你会看到自动生成的 NS(Name Server)记录——包含四个以 ns- 开头的地址。

第三步:在注册商处更新 Name Server

如果域名不是在 Route 53 注册的,你需要登录原注册商的管理后台,将域名的 Name Server 更新为 Route 53 提供的四个地址。这样 DNS 查询的“权威”就会指向 Route 53。

验证 Name Server 是否生效

bash

dig example.com NS

如果返回的 Name Server 与 Route 53 分配的一致,说明配置成功。

第四步:创建记录集,让域名指向你的资源

有了托管区域后,就可以创建记录集将域名“指向”你的资源了。这里以指向一个 EC2 实例的弹性 IP 为例:

  1. 进入你的托管区域,点击 “创建记录”

  2. 记录名称:输入子域名(留空或输入 @ 表示主域名本身)

  3. 记录类型:选择 A – 将流量路由到 IPv4 地址

  4. :输入你的 EC2 弹性 IP 地址

  5. TTL(生存时间):保持默认的 300 秒(5 分钟)即可

  6. 点击 “创建记录”

等待几分钟后,在浏览器访问 http://yourdomain.com,应该就能看到你的应用了。

进阶:使用别名记录指向 AWS 资源

如果你想把域名指向 ELB、CloudFront、S3 等 AWS 资源,推荐使用别名记录(Alias) 而不是 CNAME。别名的优势在于:

  • 可以用于区域顶点(如 example.com

  • 免费的 DNS 查询(CNAME 会产生额外费用)

  • Route 53 会自动用资源的 IP 地址响应,而不是返回另一个域名让客户端再去解析

操作步骤

  1. 在创建记录时,将 “启用别名” 开关打开

  2. “流量目标” 中选择对应的 AWS 资源(如 CloudFront 分发、ELB 负载均衡器、S3 存储桶等)

  3. 完成创建

TTL 设置建议

TTL(生存时间)决定了 DNS 解析结果可以被缓存多久。设置 TTL 时需要权衡几个因素:

  • 经常变更的记录(如 A 记录指向的 IP 可能会变):建议设置 60-300 秒,方便快速切换

  • 很少变更的记录(如 NS 记录):可以设置较长的 TTL(如 172800 秒 = 2 天),以减少查询次数、提升性能

  • 负面缓存(NXDOMAIN):建议保持默认的 900 秒

小技巧:在计划变更 DNS 记录之前,可以先将 TTL 调低(如 60 秒),等变更生效、确认稳定后再调回正常值。

故障排查常见问题

如果在配置过程中遇到域名无法解析的情况,可以按以下顺序排查:

  1. 检查 Name Server 是否一致:执行 whois example.com 查看注册商处配置的 Name Server,与 Route 53 托管区域中的 NS 记录对比。如果不一致,更新注册商处的配置。

  2. 检查记录是否配置正确:执行 dig A example.com +short,看返回的 IP 是否与你预期的一致。

  3. 注意 TTL 缓存:如果刚修改了记录,DNS 缓存可能需要等待 TTL 过期才会生效。可以先用 whatsmydns.net 检查全球传播情况。

  4. 检查网络防火墙:确保服务器和 VPC 的防火墙/网络 ACL 允许端口 53 上的 DNS 流量。

Route 53 的托管区域是按月收费的(即使没有查询流量也会产生费用)。如果只是测试,测试完成后记得删除不再需要的托管区域和记录集,避免产生不必要的账单。


希望这篇教程能帮你迈出 AWS DNS 管理的第一步。Route 53 是连接用户与你云上应用的“第一座桥”,掌握它,你的云上架构才算真正完整。