AWS CloudFront 使用教程及收费详解
Amazon CloudFront 是 AWS 提供的全球内容分发网络 (CDN) 服务,用于安全、快速地将内容交付给用户。以下是 CloudFront 的使用步骤和收费模式的详细介绍。
使用教程
1. 创建 CloudFront 分配
CloudFront 分配是将源站内容分发到 CDN 节点的核心配置。
- 登录 AWS 管理控制台
- 进入 CloudFront 控制台.
- 创建分配 (Create Distribution)
- 点击 “Create a CloudFront distribution”。
- 选择源站
- 源站 (Origin) 可以是:
- S3 Bucket:用于存储静态文件。
- HTTP/HTTPS 服务器:如 EC2 实例或外部服务器。
- 配置
Origin Domain Name
,并根据需要选择是否启用 HTTPS。
- 源站 (Origin) 可以是:
- 配置缓存行为 (Cache Behavior)
- 默认情况下,CloudFront 会缓存所有静态文件(如 HTML、CSS、JS、图片)。
- 可调整配置,例如:
- Viewer Protocol Policy:强制用户通过 HTTP 或 HTTPS 访问内容。
- Allowed HTTP Methods:选择允许的方法(GET/HEAD 或 GET/POST 等)。
- 设置分配属性
- 配置默认的 TTL(缓存时间)。
- 是否启用日志记录 (Standard Logging)。
- 分配完成
- 点击 “Create Distribution”,CloudFront 开始自动创建分配,部署完成通常需要几分钟。
2. 配置自定义域名 (Optional)
- 如果想用自定义域名(如
cdn.example.com
),需要以下步骤:- 在域名提供商中添加 CNAME 记录,将域名指向 CloudFront 的分配域名。
- 在 CloudFront 中添加
Alternate Domain Names (CNAMEs)
。 - 使用 AWS Certificate Manager (ACM) 创建并配置 SSL/TLS 证书。
3. 部署和测试
- 分发完成后,CloudFront 会为每个分配生成一个域名(如
d1234567890abcdef.cloudfront.net
)。 - 可通过该域名访问内容并测试分发性能。
- 测试 CDN 缓存是否生效:
- 查看响应头中的
X-Cache
,如果返回Hit from CloudFront
,表示命中缓存。
- 查看响应头中的
4. 管理和优化
- 缓存刷新 (Invalidate Cache):
- 如果源站内容更新,需要刷新缓存:
- 在 CloudFront 控制台中,选择分配,点击 “Invalidations”。
- 注意:缓存刷新会产生额外费用。
- 如果源站内容更新,需要刷新缓存:
- 启用 WAF (Web Application Firewall):
- 通过 AWS WAF 设置规则,保护内容免受 DDoS 或其他恶意攻击。
- 监控和分析:
- 使用 Amazon CloudWatch 查看分配性能和流量分析。
CloudFront 收费模式
CloudFront 的收费模式基于 按需付费,主要分为以下几部分:
1. 数据传输费用
- 出站流量 (Data Transfer Out):
- CloudFront 的数据传输费用根据用户访问的内容流量计算。
- 费用因区域不同而异,例如:
- 北美、欧洲、日本的单价通常较低。
- 南美和中东的单价通常较高。
2. 请求费用
- 请求类型包括:
- HTTP/HTTPS 请求:
- 每 10,000 次请求收费,区域不同价格也不同。
- Dynamic Content 请求(如 API 调用):
- 类似的请求数量计费。
- HTTP/HTTPS 请求:
3. 缓存刷新 (Invalidations)
- 每月前 1,000 个缓存刷新请求免费,超过部分按每次刷新收费。
4. Lambda@Edge 费用 (可选)
- 如果使用 Lambda@Edge 对内容进行动态处理:
- 按请求数和执行时间收费。
5. 监控费用
- 如果启用了详细日志记录或使用 Amazon CloudWatch,会产生额外的日志存储和分析费用。
费用估算示例
假设你的网站分发 1 TB 数据,用户访问产生了 100 万次 HTTP 请求,以下是一个简单的费用估算(以美国区域为例):
- 数据传输:
- 1 TB 数据 x 每 GB $0.085 = $85。
- HTTP 请求:
- 100 万次请求 ÷ 10,000 x 每 10,000 请求 $0.0075 = $0.75。
- 合计费用:
- $85 + $0.75 = $85.75。
(实际费用会因所在区域和使用的服务不同而变化。)
收费优化建议
- 合理配置缓存规则:
- 减少动态请求频率,延长缓存时间。
- 结合 AWS S3:
- 将静态文件存储在 S3 中并通过 CloudFront 分发,可降低数据传输费用。
- 启用压缩:
- 开启 Gzip 或 Brotli 压缩,减少传输数据量。
- 使用区域性 Edge Locations:
- 根据目标受众选择性价比最高的区域节点。