Amazon CloudFront

通过全球 450 多个边缘站点以低延迟分发内容的全球 CDN 服务

概述

Amazon CloudFront 是通过分布在全球的 450 多个边缘站点 (PoP) 向终端用户低延迟分发网站、API、视频、静态文件等内容的内容分发网络 (CDN) 服务。将源服务器 (S3、EC2、ALB、自定义源等) 的内容缓存到边缘站点,从距离用户最近的边缘分发,大幅缩短响应时间。使用 Lambda@Edge 或 CloudFront Functions 可以在边缘站点执行请求/响应的加工处理,无需给源服务器增加负载即可实现 A/B 测试、URL 重写、Header 操作等。免费集成了 AWS Shield Standard 的 DDoS 防护,结合 AWS WAF 还可以增强 Web 应用安全性。

缓存策略与 TTL 设计

CloudFront 的性能取决于缓存策略的设计。通过 Cache Policy 选择缓存键中包含的 Header、查询字符串和 Cookie,排除不必要的元素以提高缓存命中率。静态内容 (图片、CSS、JS) 设置较长的 TTL (如 1 年),通过在文件名中包含内容哈希的版本化方式管理缓存失效是标准做法。动态内容 (API 响应) 则禁用缓存或设置较短的 TTL。使用 Origin Request Policy 可以独立于缓存键控制转发给源的 Header 和查询字符串,在维持缓存命中率的同时将必要信息传递给源。启用 Origin Shield 后,在区域边缘缓存前增加一个缓存层,进一步减少对源的请求数。

Lambda@Edge 与 CloudFront Functions 的选择

CloudFront 有两种在边缘执行处理的机制,根据处理复杂度选择。CloudFront Functions 仅支持 JavaScript,执行时间限制在 1 毫秒以下,但每请求成本极低,最适合 URL 重写、Header 操作和简单重定向。Lambda@Edge 支持 Node.js 和 Python,最长执行时间 30 秒,可以进行包含外部 API 调用和数据库查询的复杂处理。适用于 A/B 测试、认证令牌验证、图片动态调整大小等。两者都可以附加到请求/响应的 4 个事件点 (Viewer Request、Origin Request、Origin Response、Viewer Response),处理插入位置也可灵活选择。CDN 设计书籍 (Amazon) 系统地解析了边缘计算的实践模式。

安全与成本结构

CloudFront 免费集成了 AWS Shield Standard 的 DDoS 防护,自动缓解 L3/L4 层攻击。结合 AWS WAF 还可以阻止 SQL 注入和跨站脚本等 L7 层攻击。设置 OAC (Origin Access Control) 可以阻断对 S3 存储桶的直接访问,实现仅允许通过 CloudFront 访问的配置。在成本方面,从 S3 源的数据传输免费是一大优势。Azure CDN 每 GB 分发单价可能略低,但考虑到 S3 源传输免费,总成本上 CloudFront 更有优势的情况较多。首个 1 TB 数据传输包含在免费额度 (12 个月) 中,小规模网站可以实质免费运营。

共有するXB!