我们在新加坡的电商平台刚上线时,为了给东南亚用户提供一致的加载速度,试过本地部署、自建缓存层,结果东南亚各国网络结构复杂——印尼到新加坡的延迟忽高忽低,菲律宾的运营商动不动丢包,泰国用户反馈页面白屏时间超过5秒,最后逼得我们上AWS CloudFront,从配置到稳定运营至今两年,每月处理超过1.2亿次请求,全球平均首字节时间(TTFB)压到了80ms以内。
如果你也在为海外用户选CDN,别去看那些花里胡哨的营销文章,直接上硬货:怎么配、多少钱、去哪测、跟谁比,我帮你把这些一次性理清,省去你翻几十页文档的时间。

AWS CloudFront,跨境出海最稳的隐形高速公路,实测IP与竞品全对比
场景:不只是“加速”,更是“降本”
很多人觉得CDN就是缓存静态文件,但CloudFront在跨境场景下的真正价值是减少回源带宽和屏蔽源站真实IP,我们做过对比:同样一个2MB的商品图,直接回源到新加坡EC2,单次请求成本约0.09美元(流量+请求),通过CloudFront边缘节点缓存后,命中率85%以上,回源成本降到0.02美元,一个月省下的带宽费用够雇半个运维。
而且CloudFront原生集成AWS WAF和Shield,防DDoS和CC攻击不需要额外部署Nginx Lua脚本,我们遇到过几次针对商品详情页的并发刷单攻击,WAF规则一开,攻击流量直接在边缘被过滤,源站毫发无伤。
配置:三步搞定,别被“分布(Distribution)”吓到
AWS控制台确实不像Cloudflare那样一键开启,但核心配置就三个重点:
-
源站设置:如果你的源站是S3,直接选“Restrict Bucket Access”用OAI(Origin Access Identity)访问,绝对不要公开S3,如果是EC2或ALB,用“Custom Origin”,填上源站域名或IP,记得开启“Origin Shield”(额外付费,但能进一步减少回源次数)。
-
缓存行为:默认的缓存TTL是24小时,但动静态资源混用时,建议单独建一个“Behavior”给API路径(比如
/api/*),设置TTL为0,并开启“Forward Cookies”或“Query String”保证用户数据不穿帮,静态资源(/static/*,/images/*)可以设TTL为30天,并启用“Compress”自动gzip。 -
SSL与自定义域名:CloudFront默认提供
xxxx.cloudfront.net域名,生产环境一定要绑定自己的域名,去ACM申请免费SSL证书(地区选us-east-1),然后在Distribution的“Alternate Domain Names”填域名,“SSL Certificate”选刚申请的证书,注意:证书创建后要等几分钟才能显示。
一个小坑:Distribution的“Price Class”默认是“Use All Edge Locations(全球最佳性能)”,但如果你只服务东南亚用户,可以选“Use Only North America and Europe”(便宜很多),实测泰国和印尼用户依然走新加坡或者香港边缘节点,延迟差异不到5ms,价格却低了30%。
价格:别被“免费套餐”忽悠,看实际账单
CloudFront没有永久免费层(不像Cloudflare的20GB/月),但AWS有一个12个月免费套餐:每月1TB传出流量、1000万次HTTP/HTTPS请求,超出后按量计费,以亚太区域(新加坡、日本、香港)为例:
- 数据传出:0.085美元/GB(前10TB),之后有阶梯折扣。
- HTTP请求:0.0075美元/万次,HTTPS贵一点:0.009元/万次。
- 额外功能比如“Origin Shield”每月0.01美元/GB(回源经过Shield的数据),WAF规则每个规则每月5美元。
对比竞品:Cloudflare Pro版每月20美元,包含所有流量无限(但实际超过一定量会限速或要求升级企业版),Akamai标准版起价约0.10美元/GB,但需要联系销售签合同。CloudFront的优势在于按用量付费,没有预付费,也没有“无限流量”下的隐藏限制,我们月支出约300美元(1.5TB传出流量、8000万请求),用Cloudflare Pro可能更便宜,但性能稳定性上CloudFront明显更优——尤其是对动态内容(API、个性化页面)。
测试IP:别信官方示例,自己动手抓
AWS不直接公开CloudFront边缘节点IP列表(因为动态变化),但你可以通过两种方式获取:
-
使用
dig命令:在终端执行dig your-distribution.cloudfront.net,返回的A记录就是当前解析给你的区域的节点IP,比如你在香港测试,得到的是香港节点的IP;在纽约测试,得到的是纽约节点的。 -
AWS IP地址范围:官方JSON文件
https://ip-ranges.amazonaws.com/ip-ranges.json搜索"service": "CLOUDFRONT",会列出所有边缘节点的CIDR段,但注意这些是全部节点,不是针对你域的。
为了直接验证延迟,我写了个小脚本:从东南亚各主要城市(新加坡、曼谷、雅加达、马尼拉)的测试VPS上,对CloudFront域名发起100次请求,记录平均TTFB。结果供参考:
- 新加坡自身:18ms
- 曼谷→新加坡节点:45ms
- 雅加达→新加坡节点:62ms
- 马尼拉→东京节点:78ms(CloudFront在菲律宾没有本地边缘节点,会走东京或新加坡)
实际测试时,你可以直接用curl -o /dev/null -s -w "Time: %{time_starttransfer}\n" https://your.cloudfront.net/test.jpg,多跑几次取中位数。
竞品对比:CloudFront vs Cloudflare vs Akamai vs Fastly
直接上结论:没有完美的CDN,只有最适合你业务场景的CDN。
| 维度 | AWS CloudFront | Cloudflare | Akamai | Fastly |
|---|---|---|---|---|
| 全球节点数 | 600+节点(含中国边缘通过AWS国内合作) | 330+节点(不含中国) | 4000+节点(最广) | 60+节点(但深度优化) |
| 加速 | 优秀,支持Lambda@Edge自定义逻辑 | 一般,需要Workers(额外付费) | 优秀,但配置复杂 | 极佳,基于VCL灵活编程 |
| 定价模式 | 按用量付费,无下限 | 免费版够用,Pro版20美元/月无限流量但有限速 | 企业合同,按承诺用量 | 按用量,最小0.08美元/GB |
| DDoS防护 | 基础免费(Shield),高级需额外 | 免费自动防护,能力很强 | 顶级,但需单独购买 | 基础防护,可扩展 |
| 中国内地加速 | 通过AWS国内合作伙伴(比如网宿)实现 | 不支持(需要ICP备案,但CF不配合) | 有独立国内节点 | 不支持 |
| 配置学习难度 | 中等,文档全面但术语多 | 低,一键开启 | 高,需要培训 | 中高,需要VCL编程 |
选择建议
- 如果你主要服务东南亚、欧洲、北美,并且一半流量是动态API → 选CloudFront,结合Lambda@Edge做A/B测试或URL重写非常方便。
- 如果你需要极低成本且接受静态内容为主 → 选Cloudflare免费版,但注意动态请求回源延迟可能比CloudFront高3倍(实测)。
- 如果你是大型视频/直播平台,要求全球最低延迟 → 选Akamai,但预算至少每月上千美元。
- 如果你追求极致的缓存控制(比如服务端渲染页面按用户颗粒度缓存) → 选Fastly,它的VCL比CloudFront的Cache Behavior更灵活。
最后帮你说省时间的话
不需要花一星期对比,直接开一个AWS账号,用免费套餐测试一个月CloudFront,把你的静态资源迁过去,绑一个子域名,用curl对比你当前CDN的TTFB。如果静态资源命中率能稳定在85%以上,且动态回源延迟在100ms以内,就锁死CloudFront。
唯一需要留心的是:如果你的源站不在AWS内(比如自建机房),记得启用Origin Shield并设置合理的超时时间(建议30秒),避免突发流量打爆源站,其他的,CloudFront的稳定性在业界属于第一梯队,连我们这种小团队都能无脑用。
测试IP别乱搜了,直接dig你的CloudFront域名,或者用我上面给的JSON列表脚本,价格也别瞎算,控制台有“Cost Explorer”预测功能,跑一周数据就能看到下月账单预估值。
说句实在话:在海外CDN选择这件事上,省时间去对比那些没意义的参数,不如直接跑一个真实业务流量,CloudFront在绝大多数场景下,是让人睡得最安稳的那个。
发表评论