上周刚把公司在新加坡和雅加达的静态资源全部切到Google Cloud CDN,跑了三天生产流量,总请求量大概4700万次,趁热乎,把真实感受说清楚,不吹不黑,都是拿数据说话。
先说测试环境:源站在Google Cloud Storage(东京区域),边缘节点测了新加坡、雅加达、曼谷、马尼拉四个东南亚核心城市,客户端用的是本地4G+光纤混合流量,测了三天午高峰和晚高峰,对比对象是之前用的Cloudflare(企业版)和AWS CloudFront(也挂了东京源)。
首字节延迟:Google赢在东南亚,但没赢太多
| 城市 | Google CDN | Cloudflare | CloudFront |
|---|---|---|---|
| 新加坡 | 38ms | 42ms | 45ms |
| 雅加达 | 61ms | 78ms | 74ms |
| 曼谷 | 55ms | 69ms | 80ms |
| 马尼拉 | 72ms | 95ms | 89ms |
注意,这是“边缘命中”时的首字节,不是回源,Google在东南亚有自己的海缆和边缘节点(尤其是印尼和菲律宾,用了很多本地Peer),所以雅加达和马尼拉的优势明显,Cloudflare在新加坡很强,但往南走就有点飘,CloudFront中规中矩,没有惊喜也没有翻车。

东南亚实测,Google Cloud CDN到底行不行?从延迟到回源,一个跨境运维的真心话
命中率:Google的“缓存玄学”让我头疼
静态资源(图片、CSS、JS)理论上应该跟着Cache-Control走,但Google Cloud CDN的默认缓存策略比Cloudflare保守得多,我设置了Cache-Control: public, max-age=86400,结果在Google上首次命中率只有68%,而Cloudflare能到85%,后来发现Google对查询字符串的处理很敏感,就算你加了?v=1,它也倾向于回源验证,而CloudFlare会直接缓存带查询参数的URL(默认情况下),AWS CloudFront则是可以通过行为配置轻松搞定。
跑了一天后,我把Google CDN的“缓存模式”从“使用源站缓存”改成了“强制缓存”,并设置了自定义缓存键(忽略查询参数),命中率才提到89%,但这个过程消耗了我两个小时,文档写得够详细,但确实不如Cloudflare开箱即用。
回源带宽:贵,但是稳
Google Cloud CDN的带宽定价比Cloudflare高(Cloudflare企业版流量包更划算),但比AWS CloudFront略微便宜一点,我们这次三天总回源流量约1.2TB,从东京存储桶出来,账单差不多86美元,如果全走Cloudflare,按我们协议价大概要110美元(但Cloudflare有缓存优惠,实际上回源很少),为什么我们回源这么多?主要是动态API请求(需要带Cookie)没法缓存,这部分占了总流量的31%,Google的回源链路质量很好,东京到雅加达的跨海专线,高峰期的丢包率低于0.3%,而Cloudflare在同样时段偶尔会跳到0.8%。
一个真正的大坑:API加速(动态请求)
我们20%的流量是动态API(比如购物车、登录状态),Cloudflare有免费的Argo Smart Routing(实际付费但效果显著),能把动态请求走更优的骨干网,Google Cloud CDN本身没有直接对应的动态加速功能,只能配合Cloud Load Balancing的Premium Tier网络,说实话,Google的Premium Tier确实牛,从雅加达直连到东京的HTTP请求,RTT稳定在95ms左右,比Cloudflare的Argo快了15ms,但是成本高出约两倍,如果你有很多动态请求,得算清楚这笔账。
跨云对比结论:
- 静态资源为主、东南亚用户偏多:选Google Cloud CDN,延迟低,尤其印尼和菲律宾,用户体验会有肉眼可见的提升(我们转化率提高了2.3%)。
- 业务简单、不想折腾缓存策略:Cloudflare依然是省心神,默认缓存做得最好,自带防御,适合小团队。
- 全球均衡、而非东南亚特化:AWS CloudFront更稳妥,毕竟边缘节点数量最多,虽然没有单项特别突出,但胜在没短板。
最后说个真话
Google Cloud CDN的控制台用起来像在写代码,不适合鼠标点点点的运维,但如果你本来就用了GCP,比如我们,那直接开CDN不用多拉一条专线,还能省去源站跨云的费用,我建议先跑一周灰度,把缓存命中率调上去再全量切换,别信官方宣传的“零配置”,那是理想状态,实际做下来,我花了半天,踩了三个坑:查询参数缓存键、强制缓存模式、以及Structured Logs里怎么看命中率(需要在Logging中启用CDN日志,默认不开,这很GCP)。
如果你追求极致延迟,又愿意花时间调参,Google Cloud CDN在东南亚确实有两把刷子,但如果你是“部署完就下班”的心态,那还是Cloudflare吧,省下的时间比省下的带宽值钱多了。
发表评论