我们项目海外CDN曾经使用的是Akamai提供的,由于成本过高,考虑了迁移。
在迁移过程中,我们少量测试时是没有问题的,在推到线上时遇到了玩家更新不走的情况。就赶紧切回了原先的方案。
后续经过调查,我们发现,是由于AWS的CDN无法对阿里云的对象存储进行及时的预热,大量数据回源导致了这一问题。
最后,我们通过了迁移存储到亚马逊S3的决定。因为阿里云的回源,会有一个2Gb的小水管带宽的限制。而亚马逊CDN到S3的回源,不仅有多级缓冲,而且没有限制带宽。即使资源回源了,也是可以保证速度的。
切换到S3和AWS的配置后,下载卡顿的问题没有复现。
这一事故证明:
- CDN和存储最好使用相同供应商,便于回源
- Akamai是真的厉害,无论你存储在哪儿,都能保证你的速度
相较于Akamai,AWS不仅成本降低,而且还有更快的下载速度。
但是Akamai不需要预热,AWS则需要预热。
AWS会较多出现文件错误的问题,需要手动失效。
AWS最好使用S3的存储。
S3存储管理麻烦,上传易出现失败。
国内AWS的代理商提供了预热的网站,也可以使用它们提供的预热接口来进行预热。
上传机器要保证较好的美国网络访问性。