Amazon CloudFront - Runbook 与参考¶
English · GitHub source 事实核对时间(对照 AWS 官方文档):2026-08-19
概述¶
Amazon CloudFront 是内容分发网络(CDN),通过遍布全球的边缘站点加速静态和动态内容分发。请求被路由到延迟最低的边缘节点;命中缓存的直接返回,未命中则从源站(origin)拉取。
核心概念¶
- 分发(Distribution):把域名映射到源站和缓存行为的 CloudFront 配置。
- 源站(Origin):S3 桶、ELB/API Gateway 或自定义 HTTP 服务器,保存内容的权威版本。
- 边缘站点 / POP:地理分布的内容缓存。
- 缓存行为(Cache behavior):路径模式、TTL(默认 24 小时,最小 0)、转发哪些请求头/Cookie。
- 签名 URL 与签名 Cookie:控制私有内容访问。
- 失效(Invalidation):在 TTL 到期前移除已缓存对象。
- 备用域名:搭配 ACM 证书使用你自己的域名。
- 标准 vs 多租户分发:单站点独立配置 vs SaaS/多租户集中管理。
常用操作(AWS CLI)¶
# 创建分发(配置 JSON)
aws cloudfront create-distribution --distribution-config file://distribution-config.json
aws cloudfront list-distributions
aws cloudfront get-distribution --id E1ABCDEFGHIJK2
# 更新
aws cloudfront update-distribution --id E1ABCDEFGHIJK2 \
--distribution-config file://distribution-config.json --if-match <etag>
# 失效缓存对象
aws cloudfront create-invalidation --distribution-id E1ABCDEFGHIJK2 \
--paths "/images/*" "/index.html"
# 删除(先禁用)
aws cloudfront delete-distribution --id E1ABCDEFGHIJK2 --if-match <etag>
最佳实践¶
- S3 源站用 Origin Access Control(OAC),对象只能通过 CloudFront 访问。
- 设置
Cache-Control,谨慎设计缓存行为;不要转发用不到的 Cookie/请求头。 - 私有内容用签名 URL/Cookie,而不是公开桶。
- 加 ACM 证书并强制 HTTPS。
- 开启访问日志并用 CloudWatch 监控;挂 AWS WAF 做 Web 层防护。
- 提高缓存命中率,减少源站请求,控制成本。
故障排查¶
| 症状 | 检查与处理 |
|---|---|
| 内容不更新 | 检查 TTL 和缓存行为;对变更路径做 invalidation。 |
S3 源站 403 |
确认 OAC/OAI 已配置且桶策略允许 CloudFront 访问。 |
源站 502 |
检查源站健康、自定义源站设置、安全组。 |
| 混合内容 / TLS 错误 | 确保 ACM 证书覆盖域名且已强制 HTTPS。 |
| 首字节慢 | 检查源站延迟和缓存命中率;预热缓存或调整 TTL。 |
| 私有内容泄露 | 核对签名 URL/Cookie 配置,桶不要设为公开。 |
配额¶
每账户对分发、失效路径、密钥组有配额。以 Service Quotas 控制台为准。