我在新加坡搞跨境独立站,日常就是跟全球用户抢加载时间,手头同时挂着AWS CloudFront、Cloudflare和Google Cloud CDN,最近一周把主力站的静态资源全部切到Google Cloud CDN上,跑了7天,攒了些数据,不吹不黑,直接说结论。

Google Cloud CDN实测,新加坡节点跑了一周,说点大实话
先说身份数据,站点面向北美和东南亚用户,日均PV约12万,静态资源占比六成,测试机分别选在东京、法兰克福、洛杉矶和悉尼,用同样的缓存策略(TTL 6小时,gzip开启,HTTP/2强制)对比首字节耗时和缓存命中率,Google Cloud CDN的配置界面比Cloudflare朴素,但该有的都有,比如签名URL、缓存模式、自定义请求头,最省心的是和Cloud Storage、Load Balancer深度绑定,我直接把静态文件丢在GCS bucket后面挂CDN,源站回源延迟直接忽略不计。
重点说数据,洛杉矶节点,Google Cloud CDN首字节均值42ms,CloudFront是51ms,Cloudflare是38ms,Cloudflare在北美确实快,但欧洲和东南亚就拉胯了,法兰克福节点,Google Cloud CDN稳定在35ms,CloudFront 47ms,Cloudflare到了58ms,而且波动大,下午高峰能跳到80ms,悉尼节点最明显,Google Cloud CDN是88ms,CloudFront 102ms,Cloudflare直接130ms起步,东京节点三家差不多,都在20ms上下,但Google的TTFB方差更小,不像Cloudflare那样偶尔抽风。
缓存命中率上,Google Cloud CDN没让我失望,默认的缓存键是完整URL,配合Cache-Control头,命中率干到93.7%,CloudFront是91.2%,Cloudflare是89.5%,有人会杠命中率看资源类型,但我把图片、CSS、JS都分开设置了,最终数据就是Google胜出,值得夸的是它的智能缓存失效——源站更新文件时,不用手动purge全网,它自己通过校验ETag就替换了,这点比CloudFront的老式失效省心太多。
但别急着吹,Google Cloud CDN有两个毛病挺烦人,第一,压缩策略太死板,如果源站没提前压好brotli,它不会像Cloudflare那样自动转码,导致部分资源体积大10%-15%,第二,控制台延迟数据只有全球聚合视图,不像AWS那样按边缘具体到城市,排查问题得靠日志导出,体验不友好,另外价格不便宜——每GB出流量0.12美元(北美),略高于Cloudflare的0.09美元,但比AWS的0.14美元低一点,要是流量超50TB,你可以谈折扣,但个人开发者拿不到。
最让我意外的是安全功能,Google Cloud CDN自带防DDoS的Cloud Armor,能跟CDN策略联动,我开了基础规则,拦截了某东南亚IP段的扫描攻击,每天大概省下几百MB垃圾流量,但注意,这玩意是单独计费的,别白嫖习惯了最后看账单肉疼。
总结一下我的实际感受:如果你源站已经在Google Cloud上,或者重度使用GCS/Compute Engine,那无脑选Google Cloud CDN,因为流量回源不走公网,延迟和成本双赢,如果你是全球纯静态站,且主要用户在中国以外的亚太地区,Google Cloud CDN也是靠谱选择,尤其在悉尼和法兰克福的加速效果比Cloudflare明显,但如果你在意边缘计算脚本、HTTP/3自动开启这些花活,或者预算敏感,那Cloudflare更省心,Google Cloud CDN不是万金油,可它就是把“缓存”和“回源”这两件基本功做到了极致,适合我这种不爱折腾但要求稳定的运维狗,下次要改配置,我还是会先打开GCP控制台——除非它把压缩策略改得聪明点。
发表评论