什么是 CDN?

- CDN(Content Delivery Network,内容分发网络) 是一种把内容更快地送达地理上、物理上遥远用户的系统。
- 当用户从远端的 Origin Server 下载 内容(网页对象、视频、音乐、图片、文档等) 时,比从附近的服务器获取要慢得多。
- 因此将内容存放在靠近用户的 Cache Server 上,请求内容时由 Cache Server 直接响应。
CDN 的优势
- 提升网站加载速度:降低源站的流量压力和成本。
- 节省带宽费用:服务器成本随之下降。
- 内容分发更稳定:与 ISP 直连传输数据,内容送达速度快。
- 提升网站安全性:大规模分布式服务器可以缓解攻击流量。
CDN 的工作原理
- 首次请求从源服务器获取内容发送给用户,同时保存到 CDN 缓存节点。
- 之后的所有请求,都由缓存节点提供内容,直到 CDN 服务商设定的过期时间。
- 只有经常访问的页面会被缓存,长期无人访问的内容会被定期清除。
- 当内容不可用或过期时,CDN 会作为源站的代理获取并保存新内容,以响应后续请求。
什么是 CloudFront?

CloudFront 是 AWS 提供的 CDN 服务,目的是通过缓存为用户提供更快的传输速度。它在全球各地部署 Edge Server,为用户匹配最近的 Edge Server 以快速提供数据。
CloudFront 的组成
- Origin Server
- 持有原始数据的服务器。
- 在 AWS 中通常指 S3 或 EC2。
- Edge Server
- AWS 实际运营、遍布全球的服务器。
- Edge Server 提供缓存功能,以便快速响应请求的数据。
CloudFront 请求流程
- 客户端向 Edge Server 发起请求。
- Edge Server 检查请求的数据是否已缓存。
- 如果附近的 Edge Server 存在缓存数据,则直接返回相应数据。
- 如果没有合适的缓存数据,请求会被转发到 Origin Server。
- 从 Origin Server 获取数据后,在 Edge Server 建立缓存,再响应给客户端。
CloudFront 提供的 CDN 内容类型
- Download Distribution:通过 HTTP 协议提供可下载的常规图片或静态文件。
- Streaming Distribution:提供支持 HTTP 渐进式下载或 RTSP(实时流协议)的视频内容。
Edge Server 缓存的特点
- 默认情况下,请求过一次的内容会以缓存状态保存在 Edge Server 上。
- Edge Server 默认 TTL 为 24 小时,可按需修改(TTL 修改约需一小时才能同步到 Edge Server)。
- 由于这种生效延迟,与其修改全部数据的 TTL,不如通过 invalidation API(从缓存中删除特定文件)逐条删除。
- Invalidation API 最多可同时发起 3 个请求,每个请求最多包含 1000 个对象。
- Invalidation API 同步到 Edge 节点大约需要 5~10 分钟。
CloudFront 使用方法

这是 CloudFront 的主界面,点击创建分配。

按上图修改设置,其余保持默认即可。

可以看到创建成功了。把那个域名直接粘贴到浏览器里。

我关联的是 S3,所以能看到 S3 的网页服务正常工作。接下来测试 CloudFront 是否真的在发挥作用。用 Postman 测速,分别使用 S3 域名和 CloudFront 域名。

这是 S3 的速度,测得 436ms~200ms。

这是 CloudFront,速度差异非常明显:15ms~9ms。可以确认 CloudFront 工作正常。
参考
原文(韩语): tistory — 发布于 2023-01-10,已迁移至本博客。本翻译由 AI 协助完成。