Skip to content
返回云服务

AWS CloudFront CDN

全球 CDN,450+ 边缘位置、Lambda@Edge 和源故障转移,低延迟内容分发。

AWS进阶

为什么

CloudFront 在 450+ POP 缓存,延迟和 S3 出口减 90%。Lambda@Edge 在 POP 跑代码做头重写和 A/B 测试。免费:1TB 出口 + 1000 万请求/月。

何时使用

用于静态资源、视频流、API 加速和 S3 网站托管。避免无需缓存或仅单区域内容。

如何做

1. 创建分发 — 源(S3/ALB/自定义)、行为、缓存策略 2. 缓存策略 — 托管策略(CachingOptimized、CachingDisabled)或自定义 3. 源访问 — S3 用 OAC(替代废弃 OAI),仅限 CF 4. Lambda@Edge — 在 viewer-request/origin-response 事件运行,转换头 5. 故障转移 — 主 + 备源,5xx/4xx 时转移 6. 自定义域名 — ACM 证书(us-east-1),附加,自动 HTTPS 7. 失效 — aws cloudfront create-invalidation,贵,改用版本化文件 8. 签名 URL/cookie — 限制内容给认证用户

示例

# S3 静态站的 CloudFront 分发 aws cloudfront create-distribution --distribution-config '{ "Origins": [{ "Id": "s3-origin", "DomainName": "my-bucket.s3.amazonaws.com", "S3OriginConfig": {"OriginAccessIdentity": ""} }], "DefaultCacheBehavior": { "TargetOriginId": "s3-origin", "ViewerProtocolPolicy": "redirect-to-https", "CachePolicyId": "658327ea-f89d-4fab-a63d-9141e9ce4f11" }, "Enabled": true, "DefaultRootObject": "index.html" }' # 失效(少用 — 每路径 $0.005) aws cloudfront create-invalidation \ --distribution-id E123ABC \ --paths "/*"

常见问题

  • ⚠失效太频繁 — 成本累积,用版本化文件名(app.v123.js)替代
  • ⚠缓存头被忽略 — CloudFront 默认用缓存策略非源 Cache-Control
  • ⚠ACM 证书须在 us-east-1 — CloudFront 要求此区域证书

最佳实践

  • ✓版本化资源而非失效 — app.[hash].js 永久缓存,无需失效
  • ✓用 Origin Access Control(OAC)— S3 私有,仅 CloudFront 可读
  • ✓启用 Origin Shield — 二级缓存,全球流量源负载减 90%

常见问题解答

什么是AWS CloudFront CDN?它解决什么问题?

全球 CDN,450+ 边缘位置、Lambda@Edge 和源故障转移,低延迟内容分发。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手AWS CloudFront CDN?

两步即可跑通:① 创建分发 — 源(S3/ALB/自定义)、行为、缓存策略;② 缓存策略 — 托管策略(CachingOptimized、CachingDisabled)或自定义。建议先用免费套餐验证流程,再接入生产环境。

AWS CloudFront CDN 最容易踩的坑是什么?

最高频的问题是:失效太频繁 — 成本累积,用版本化文件名(app.v123.js)替代。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

AWS CloudFront CDN 的最佳实践有哪些?

AWS CloudFront CDN 的最佳实践包括:版本化资源而非失效 — app.[hash].js 永久缓存,无需失效;用 Origin Access Control(OAC)— S3 私有,仅 CloudFront 可读;启用 Origin Shield — 二级缓存,全球流量源负载减 90%。其中首条「版本化资源而非失效 — app.[hash].js 永久缓存,无需失效」应作为团队默认规范写入 IaC 模板。

AWS CloudFront CDN 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。AWS CloudFront CDN 多数提供免费套餐,先在免费额度内验证再放量。