4.8 KiB
4.8 KiB
第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:最经典的组合
这是部署静态网站最便宜、最快的方案:
- 把网站文件(HTML/CSS/JS/图片)放在 S3 桶里
- 创建 CloudFront 分发,源设置为 S3 桶
- 用 Route 53 把域名指向 CloudFront
- 用 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)
今天的小测验
- DNS 的作用是什么?用你自己的话解释。
- Route 53 的"延迟路由"是什么意思?举一个使用场景。
- CDN 为什么能让网站变快?它的核心原理是什么?
- CloudFront + S3 的组合适合什么类型的网站?
延伸阅读
明天预告
明天学习 SQS 和 SNS——消息队列和通知服务。它们让系统的各个部分"松耦合"通信,是构建可靠分布式系统的基石。