# 第17天:Route 53 与 CloudFront——DNS 和全球加速 ## 今天你将学到什么 今天学两个让你的网站"又快又稳"的服务:Route 53(DNS)负责把域名翻译成 IP 地址,CloudFront(CDN)负责把内容推到全球用户身边。 --- ## Route 53:互联网的"电话簿" ### DNS 是什么 当你在浏览器输入 `www.taobao.com` 时,电脑其实不认识这个名字。它需要先查"电话簿"(DNS),找到这个名字对应的 IP 地址(比如 140.205.220.96),然后才能连接到服务器。 **Route 53 就是 AWS 提供的 DNS 服务**——帮你管理域名和 IP 地址的对应关系。 名字来源:DNS 使用的网络端口号是 53。 ### Route 53 能做什么 **基本功能**:域名解析 - `www.example.com` → `54.23.100.50`(你的服务器 IP) **高级功能**:智能路由(这才是 Route 53 的真正价值) ### 路由策略——把用户导向最合适的服务器 **简单路由**:一个域名对应一个 IP。最基本的用法。 **加权路由**:按比例分配流量。 - 例:90% 的流量到旧版本,10% 到新版本(用于灰度发布) **延迟路由**:把用户导向延迟最低的服务器。 - 例:日本用户自动访问东京的服务器,美国用户自动访问弗吉尼亚的服务器 **故障转移路由**:主站挂了自动切到备用站。 - 例:主服务器在东京,如果东京挂了,自动切换到新加坡的备用服务器 **地理位置路由**:根据用户所在国家/地区路由。 - 例:中国用户访问中文站点,美国用户访问英文站点 ### 健康检查 Route 53 会定期检查你的服务器是否正常: - 每 30 秒发一个请求到你的服务器 - 如果连续几次没响应,标记为"不健康" - 自动把流量切到健康的服务器 --- ## CloudFront:把内容推到用户身边 ### CDN 是什么 CDN(Content Delivery Network,内容分发网络)的原理很简单: **没有 CDN**: - 你的服务器在东京 - 巴西用户访问你的网站 - 数据从东京传到巴西,跨越半个地球,需要 300 毫秒 **有 CDN**: - 你的内容被"复制"到全球各地的节点 - 巴西用户访问时,从巴西本地的节点获取 - 只需要 20 毫秒 **生活类比**: - 没有 CDN = 所有人都要去总部取货(远的人等很久) - 有 CDN = 在各个城市设了分仓,就近取货(大家都快) ### CloudFront 的工作流程 ``` 用户(巴西)发起请求 ↓ 请求到达最近的边缘节点(圣保罗) ↓ 边缘节点有缓存? ├── 有 → 直接返回(超快,10-20ms) └── 没有 → 去源站(东京)取 → 缓存一份 → 返回给用户 下次其他巴西用户请求同样内容时,直接从缓存返回 ``` ### CloudFront 能加速什么 | 内容类型 | 例子 | 缓存效果 | |----------|------|----------| | 静态文件 | 图片、CSS、JS、字体 | 非常好(内容不变,缓存命中率高) | | 视频 | 课程视频、直播回放 | 很好 | | API 响应 | 不经常变化的数据 | 一般(需要设置合理的缓存时间) | | 动态内容 | 用户个人数据 | 不缓存(每次都回源) | ### CloudFront + S3:最经典的组合 这是部署静态网站最便宜、最快的方案: 1. 把网站文件(HTML/CSS/JS/图片)放在 S3 桶里 2. 创建 CloudFront 分发,源设置为 S3 桶 3. 用 Route 53 把域名指向 CloudFront 4. 用 ACM(AWS Certificate Manager)申请免费的 HTTPS 证书 **结果**: - 全球访问速度极快(600+ 个边缘节点) - 成本极低(S3 存储 + CloudFront 流量,每月可能只要几美元) - 自动 HTTPS - 能扛住巨大流量(CDN 天然就是分布式的) 适合:个人博客、公司官网、单页应用(React/Vue)、文档站点 --- ## Route 53 + CloudFront 配合使用 一个全球化网站的典型架构: ``` 用户输入 www.example.com ↓ Route 53 解析域名 → 返回 CloudFront 的地址 ↓ 用户请求到达最近的 CloudFront 边缘节点 ↓ ├── 静态内容(图片/JS/CSS)→ 边缘节点直接返回(缓存) └── 动态内容(API 请求)→ 转发到源站(ALB/EC2) ``` --- ## 今天的小测验 1. DNS 的作用是什么?用你自己的话解释。 2. Route 53 的"延迟路由"是什么意思?举一个使用场景。 3. CDN 为什么能让网站变快?它的核心原理是什么? 4. CloudFront + S3 的组合适合什么类型的网站? --- ## 延伸阅读 - [Route 53 开发者指南](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/) - [CloudFront 开发者指南](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/) --- ## 明天预告 明天学习 SQS 和 SNS——消息队列和通知服务。它们让系统的各个部分"松耦合"通信,是构建可靠分布式系统的基石。