我应该让我的cdn来自s3或cloudfront吗?

时间:2015-12-29 11:02:14

标签: amazon-s3 cdn amazon-cloudfront

所以我开始使用maxcdn cdn服务, 现在我把我的s3桶端点作为原点,所以当cdn中有一个未命中时它将从s3中提取文件。

为此存储桶启用CloudFront是否明智,并使maxcdn从CloudFront中提取文件?所以这将是“双cdn” 比如maxcdn(miss?)->CloudFront(miss?)->s3

我认为这是无用的,如果在maxcdn中有一个错过,可能它也会错过CloudFront吗?

1 个答案:

答案 0 :(得分:3)

这似乎有点不寻常,但它可能值得尝试。

将S3与CloudFront配对的一个有时被忽视的好处是,即使请求导致缓存未命中(以及相关的上传),S3(或EC2,AWS内的任何源服务器)之间的流量也是如此。 CloudFront在亚马逊拥有和管理的高性能IP网络上传输。

数据必须在从S3到另一个CDN请求边缘节点的距离上从S3传输到第三方CDN,并且通过CloudFront运行请求将导致流量花费更多全球亚马逊网络上的距离比直接向S3发出请求时的距离要大。这应该可以减轻在互联网上穿越远距离所涉及的一些变幻莫测和变量,并且应该等同于某种的性能优势,尽管它可能有些微妙且难以量化。很难推测。

中间的CloudFront也会更改您为下载带宽支付的定价。如果您将远程CDN直接连接到S3作为它的来源,那么传输的每GB AWS带宽费用仅基于S3区域,这是区域之间不同的费用 - 但您的存储桶是仅在一个地区,该地区的费用将适用于所有转帐。

但S3和CloudFront之间的下载传输是免费的,因此您的下载带宽费用基于远程CDN用于获取内容的CloudFront边缘位置。此价格也因地区而异,您可以使用CloudFront定价类进一步控制价格/性能。在某些情况下,来自CloudFront的带宽费用低于直接访问S3的费用,但在其他情况下,它们更高。

远程CDN上的缓存未命中是否可能与CloudFront上的缓存未命中相对应,这在很大程度上取决于您的网站访问者的全球分布,以及远程CDN边缘的数量,分布和路由。位置,以及MaxCDN如何处理不受欢迎的对象的驱逐(以及CloudFront的工作方式)。 MaxCDN似乎比CloudFront具有更少的边缘位置,因此MaxCDN缓存未命中与CloudFront缓存未命中的几率似乎相当高。

但是,尝试它很容易,您可以分析CloudFront统计信息和日志以确定它的交互方式。