Amazon S3 跨区域复制和 Cloudfront 之间的区别

Difference between Amazon S3 cross region replication and Cloudfront

阅读了一些 AWS 文档后,我想知道如果我想在亚洲(包括中国)、美国和欧盟。

  1. 将我的图像和静态文件存储在 S3 美国区域并设置欧盟和亚洲(日本或新加坡)跨区域复制以与美国区域 S3 同步。

  2. 将我的图像和静态文件存储在 S3 美国区域,并设置 cloudfront CDN 以在初始请求后将我的内容缓存在不同的位置。

  3. 执行以上两个操作(如果有显着的性能改进)。

如果我需要实现全球部署,最具成本效益的解决方案是什么?以及如何让来自中国的请求保持一致和稳定(我试过cloudfront+s3(us-west),速度很快,但性能不稳定)?

PS。在早期,我不希望有太多的用户请求,但用户遍布全球,我希望他们有类似的体验。我的大部分内容都是全景图像,我希望每次访问时按顺序加载 ~30MB(10 张高分辨率图像)数据。

跨区域复制会将一个区域的桶中的所有内容复制到另一个区域的不同桶中。这实际上仅用于额外的 backup/redundancy,以防整个 AWS 区域出现故障。它与性能无关。请注意,它会复制到不同的存储桶,因此您需要使用不同的 URL 来访问每个存储桶中的文件。

CloudFront 是一个内容分发网络。 S3 只是一个文件存储服务。直接从 S3 提供文件可能会出现性能问题,这就是为什么在 S3 之前放置 CDN 是个好主意。听起来您肯定需要 CDN,而且您已经测试过 CloudFront 并且对它不以为然。听起来您还需要一个在中国拥有更大影响力的 CDN。

没有理由仅仅因为您正在使用其他 AWS 服务就必须选择 CloudFront 作为您的 CDN。您应该看看其他 CDN 服务,看看它们的边缘网络是什么样的。鉴于您的要求,我强烈建议您看看中国的 CloudFlare. They have quite a few edge network locations

另一种选择可能是使用您可以实际将文件推送到的 CDN。我过去曾在 MaxCDN 中使用过此功能。您可以通过 FTP 将文件推送到 CDN,文件将自动推送到所有边缘网络位置并缓存,直到您推送更新。对于大型图像下载的用例,这可能会提供性能更高的缓存机制。 MaxCDN 似乎在中国并没有很大的影响力,而且带宽费用会比 CloudFlare 贵。

如果您想将S3 存储桶中的文件提供给全世界,那么我相信您可以考虑使用S3 传输加速。它可用于您上传到 S3 存储桶或从 S3 存储桶下载的情况。或者您也可以尝试 AWS 全球加速器