Amazon Route 53 DNS 设计 - 路由策略与健康检查实践

通过别名记录和 7 种路由策略实现高级流量控制。介绍利用健康检查的多区域故障转移设计。

Route 53 基础与别名记录

Route 53 是 AWS 提供的权威 DNS 服务,集成了域名注册、DNS 路由和健康检查这 3 项功能。别名记录是 Route 53 的特点之一。在标准 DNS 中,无法在 Zone Apex(example.com 这样的裸域名)上设置 CNAME 记录。Route 53 的别名记录可以绕过这一限制,将 CloudFront 分配、ALB、S3 静态网站端点等 AWS 资源直接映射到 Zone Apex。对别名记录的 DNS 查询是免费的,也不会像 CNAME 那样产生额外的 DNS 解析,因此在延迟和成本两方面都有优势。

路由策略的选用

Route 53 的路由策略有 8 种,以下列出主要的几种。简单路由是面向单一资源的基本路由。加权路由按比例将流量分配到多个资源,可以用于在金丝雀发布中将 10% 的流量导向新版本等用法。基于延迟的路由在多个 AWS 区域都有资源时,将流量分配到与用户之间延迟小的一方。在部署于东京和弗吉尼亚的应用程序中,日本的用户被路由到东京区域,美国的用户被路由到弗吉尼亚区域。故障转移路由定义主资源和辅助资源,在健康检查失败时自动切换。地理邻近路由可以通过偏移值调整路由范围,用于将流量引导到特定区域。

健康检查与故障转移设计

Route 53 的健康检查从遍布全球的健康检查程序定期监控端点的 HTTP/HTTPS/TCP 响应。健康检查以固定的间隔(30 秒等)进行,当端点连续失败的次数达到阈值时,即被判定为不健康。启用快速健康检查(10 秒间隔)后,间隔会缩短,并产生额外费用。在多区域的故障转移设计中,为主区域的 ALB 设置健康检查,并通过故障转移路由指定辅助区域的 ALB。健康检查可以与 CloudWatch 告警集成,也可以将告警状态用于健康检查的判定。这样,除了端点的响应之外,应用程序的自定义指标也可以用于故障转移的判断。

Route 53 的费用

Route 53 的每个托管区域每月 0.50 美元(截至 2026 年 8 月)。DNS 查询在每月前 10 亿次查询中为每 100 万次查询 0.40 美元,对别名记录的查询免费。将别名记录用于到 CloudFront 或 ALB 的路由,可以降低 DNS 查询费用。健康检查每项检查每月 0.50 美元(AWS 端点),快速健康检查(10 秒间隔)为每月 1.00 美元。使用基于延迟的路由或故障转移路由不会产生额外费用。

混合 DNS 与名称解析

在本地与云并存的环境中,双向名称解析的设计变得重要。使用 Route 53 Resolver,可以从本地的 DNS 解析 VPC 内的私有名称,反过来也可以将 VPC 内的查询转发到本地的 DNS。使用仅在 VPC 内有效的私有托管区域,可以在不向外部公开的情况下管理内部使用的名称。让云端和本地的服务器能够通过主机名相互引用,形成不依赖直接指定 IP 的架构。正确设计混合环境的名称解析,是稳定互联的前提。

路由策略的高级利用

Route 53 的路由策略可以组合多种使用。使用加权路由,可以进行逐步将流量转移到新版本的金丝雀发布。根据用户的地理位置将其分配到最近的服务器,或引导到响应快的区域,以缩短等待时间。与健康检查结合,可以自动避开有故障的端点。分阶段组合多种策略,会形成符合可用性 / 性能 / 分阶段发布要求的流量设计。

总结

Route 53 凭借别名记录和丰富多样的路由策略,是一项支持从简单 DNS 解析到高级流量控制的 DNS 服务。将健康检查与故障转移路由结合,在 DNS 层构建多区域的故障转移。由于 DNS 是基础设施可靠性的基础,也将 Route 53 的 SLA 作为设计的前提加以确认。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享