是否有用例更适合Amazon cloudfront而不是s3,或者相反?我试着通过例子来理解两者之间的区别。
Amazon S3是为一个特定地理区域的大容量、低成本文件存储而设计的。存储和带宽成本相当低。
Amazon CloudFront是一个内容分发网络(CDN),它在尽可能靠近用户的边缘位置代理和缓存web数据。
当最终用户使用此域名请求对象时,他们将自动路由到最近的边缘位置,以高性能地交付您的内容。(亚马逊)
CloudFront提供的数据可能来自S3,也可能不是。由于它对传输速度进行了优化,因此带宽成本略高。
如果你的用户群是本地化,你不会看到使用S3或CloudFront有太大的区别(但是你必须为你的S3桶选择正确的位置:US, EU, APAC)。如果你的用户群分布在在全球范围内,速度很重要,CloudFront可能是一个更好的选择。
S3和CloudFront都允许域名别名,但是CloudFront允许多个别名,这样d1.mystatics.com, d2.mystatics.com和d3.mystatics.com都可以指向相同的位置,从而增加并行下载的容量(这过去是由谷歌推荐的,但随着SPDY和HTTP/2的引入,这就不那么重要了)。
d1.mystatics.com
d2.mystatics.com
d3.mystatics.com
CloudFront 也支持CORS作为2014年(感谢sergiopantoja)。
*注意:从2015年开始,S3现在可以自动复制到其他区域。
另一个主要区别是CloudFront允许您在服务器上镜像站点。然后Cloudfront使用其内容传输网络缓存图像、mp3或视频等文件。
这使您不必像使用Amazon S3时那样复制资产。
但是,在文件过期后,CloudFront将从您的活动站点再次获取它(以成本为代价)。因此,云前端最适合访问频繁的文件,而不太适合访问不频繁的文件。
为apache设置文件过期的一种方法是在.htaccess中。例如
<filesMatch "\\.(mp3|mp4)$"> Header set Cache-Control "max-age=648000, private" </filesMatch>
Amazon S3是一个简单的存储服务,可以使用大量的信息,如视频、图像、PDF等。
CloudFront是一个内容交付网络,它更接近最终用户,用于在尽可能短的时间内使Amazon S3上的信息可用。
一个示例用例是视频点播。
在正确的用例中使用CloudFront的一些优点:
其他可能的用例:
这里忽略的一个方面是:
在较高的使用级别上,Amazon Cloudfront还提供比Amazon S3更低的价格。
而s3更多的是每个用户使用较少的资源存储(用户图像,pdf)。
你可以从s3桶中提供Cloudfront资源,完全绕过你的web服务器。
(在您的web服务器预编译和存储图像和java脚本的情况下非常有用。将它们存储在s3上意味着减少了服务器内存占用)
例子:在Heroku Slugs上(编译的应用程序大小可以通过使用s3来减少,并将其包装为云前端CDN将提高吞吐量)
在S3上使用CloudFront的另一种情况是,您可以在CloudFront中使用SSL证书到自定义域,而在S3中则不能。一个很好的理由!
如果您正在寻找一个全球分布式存储系统来防止区域/区域宕机,那么Amazon S3是一个很好的对象存储平台。它也适用于静态/固定的非事务性和可更改的内容,如图片、视频、图像、备份等。希望有帮助!
Amazon CLOUDFRONT和S3是Amazon Web services提供的两个不同的服务。
Amazon S3是一个存储服务,我们可以在其中存储静态文件,例如:
Css,图片,javascript,视频等等…
Amazon CloudFront是一个中间件,它位于用户从AWS请求文件和特定区域的S3数据中心之间,CloudFront用于加快从S3向用户分发静态和动态web内容的速度。
你可以通过一个例子更好地理解它:-
例如,您的S3位于AWS区域美国东部(弗吉尼亚州北部),该数据中心位置用于存储您的文件。
如果来自印度的用户试图从弗吉尼亚州的AWS服务器访问一个文件,那么用户将需要通过请求访问该特定位置,这将花费大量时间。
CloudFront所做的是充当用户和AWS S3之间的中间件。
最常用的文件可以缓存在CloudFront上,它所做的是,它在边缘位置复制这些文件(为了以较低的延迟将内容交付给最终用户,Amazon CloudFront使用一个全球边缘位置网络进行内容交付)。
如果内容已经位于延迟最低的边缘位置,CloudFront将立即交付。如果内容当前不在该边缘位置,CloudFront将从Amazon S3桶中检索它,并尽可能快地将其提供给用户。
从CloudFront到S3的每个请求都被赋予一个新的DNS,因此这将导致更低的流量以及更多的并行请求处理。
以下是截至2016年7月的当前边缘位置列表:-
美国
欧洲
荷兰阿姆斯特丹(2)
爱尔兰都柏林
德国法兰克福(3)
英国伦敦(3)
马德里,西班牙
法国马赛的
米兰,意大利
法国巴黎(2)
斯德哥尔摩,瑞典
波兰华沙
亚洲
金奈,印度
香港(二)
印度孟买
菲律宾马尼拉
印度新德里
日本大阪
韩国首尔(3)
新加坡(2)
台北,台湾
日本东京(2)
澳大利亚
澳大利亚墨尔本
澳大利亚悉尼
南美
São巴西圣保罗
里约热内卢巴西,里约热内卢
由此你可以得出结论,如果受限的用户来自于你的S3所在的同一地区,那么你不需要使用CloudFront,如果用户数量在全球范围内增加了,那么你肯定应该使用CloudFront来获得更好的延迟和流量控制。
首先,我想解释一下,Amazon S3是云存储,云前端是内容交付网络(CDN)。
因此,您可以用来在S3上存储文件,并可以创建分发以通过internet提供内容。此外,您还可以为特定区域创建分布。