使用AWS S3 vs Cloudfront

dow*_*123 5 django heroku amazon-s3 amazon-web-services amazon-cloudfront

由于heroku文件系统是临时的,因此我计划在heroku上的django项目中使用AWS作为静态资产

我看到两篇相互矛盾的文章,一篇关于使用AWS S3的建议。这个说用S3

https://devcenter.heroku.com/articles/s3

下面的另一句话说,S3有缺点,而改用Cloudfront CDN

https://devcenter.heroku.com/articles/using-amazon-cloudfront-cdn

许多开发人员利用Amazon的S3服务来提供手动或通过某种形式的构建过程上传的静态资产。尽管这可行,但不建议这样做,因为S3被设计为文件存储服务,而不是为了在负载下最佳地传递文件。因此,不建议从S3提供静态资产。

Tap*_*nda 5

Amazon CloudFront 是一个内容分发网络 (CDN),它与 ​​S3 等其他 Amazon Web 服务集成,为我们提供了一种以低延迟、高数据传输速度向最终用户分发内容的简单方法。

CloudFront 使您可以从世界各地的数据中心(称为边缘位置)获取静态文件。当访问者从您的网站请求文件时,他或她会被无形地重定向到最近边缘位置的文件副本(现在 AWS 在全球范围内拥有大约 35 个边缘位置),这会导致下载时间比直接访问网站更快。访问者访问了位于特定区域的 S3 存储桶中的内容。

因此,如果您的用户群遍布世界各地,那么使用 CloudFront 是更好的选择,否则如果您的用户是本地化的,那么使用 CloudFront 与使用 S3 不会有太大区别(但在这种情况下,您需要为 S3 存储桶选择正确的位置:美国东部、美国西部、亚太地区、欧盟、南美洲等)

Amazon S3 和 CloudFront 的比较功能