AWS CloudFront *是否应该为不经常访问的文件增加*加载时间?

我是CDN新手,正在尝试使用CloudFront。 我已经设置了一切,似乎都工作正常。 我可以在页面上创build一个静态图像,并通过我的CloudFront分配来访问它。 我正在使用自定义来源(即不是一个S3桶)。

不过,我担心自己的performance可能会更差。 我有一个testing页面加载了相同的20个左右的图像与CDN和没有。 看着Firebug中的networking面板,我第一次加载这个页面时,从原始服务器直接加载的图像快得多。 在随后的页面加载CDN的好处变得明显 – 3-5次刷新后,CDN比原始服务器做得更好。

所以我可以看到,在我们网站上一直stream行的热门页面上,这将是一个好处。 我应该期待一个好处,因为我在西雅图(亚马逊附近),我的服务器在CA.

问题是,如果我离开页面几分钟,然后重新加载,事情回到原点,CloudFront比原始服务器更糟糕。 这是预期的吗? 有什么东西很快从CDN“caching”中退出?

我的设置有可能会损害性能吗? 或者说,CDN对于目前每隔几秒钟访问的内容而言只会是一个净积极的事实。

(交叉从AWS论坛张贴,因为我已经永远宠坏了SO的周转时间)

更新:

如果您对CloudFront性能有疑问,下面有两个很好的答案值得一看。 我最近发现一个解释,但我没有提到我的具体问题。 我已经离开了TTL 5分钟作为疏忽。 由于我也使用自定义来源,所以权威名称服务器需要额外往返才能将其parsing为实际的Amazon CloudFront域。 现在TTL设置已经回到了12个小时,看起来很长的负载很less发生。

Cloudfront在答复中设置了一个标题,如“X-Cache:Hit from cloudfront”。 据推测,如果你的文件不在你所指向的节点的caching中,它会说“Miss”。

您的文件可能不够stream行,即使24小时没有stream逝,它们也会被更受欢迎的内容从CloudFront的caching中popup。 IO过载或特定CloudFront节点内部的其他情况也可能导致访问速度变慢。 与Akamai或LimeLight相比,Cloudfront非常便宜。 最糟糕的performance和保证的服务水平是使用更昂贵的球员的两个原因。

我会做一个testing,将一个stream行的文件放入生产环境中的云端,然后使用定期testing来查看CloudFront是否指示命中(也logging总的事务时间)。

有可能的。 但是,CDN的一个目的是可扩展性。 如果您一次执行100次访问或者100万次访问,您可以预期CDN执行相同的操作。

至于你的设置,我没有什么可以知道你提供的信息,但我认为上面的点是什么使CDN如此宝贵。 如果您创build的网站stream量不大,那么在没有CDN的情况下可能会更好。 但是,如果由于将媒体服务传递到另一台服务器而导致大量stream量,CDN将为您的Web服务器提供较轻的负载。 最后一点,一个好的CDN(和亚马逊的)将使用他们广泛的networking来服务你的内容从最接近请求者的位置。 在很多情况下,他们可以从请求者的ISP提供内容,这意味着非常快的加载时间。

希望有所帮助。

我误解了吗? caching控制不pipe理边缘位置在边缘位置从S3重新加载之前多长时间处于边缘位置? 所以无论你使用S3还是你自己的产地,它们都与你的情况无关。 没有?

亚马逊FAQ说:“问:Amazon CloudFront在边缘位置保留我的文件多长时间?默认情况下,如果没有设置caching控制标头,每当接收到一个请求时,每个边缘位置检查文件的更新版本在上一次的24小时之后,它会检查文件更改的来源,这就是所谓的“过期期限”。你可以设置这个过期期限为1小时,或者只要你愿意,控制您的文件中的标题Amazon CloudFront使用这些caching控制标头来确定需要检查文件更新版本的来源的频率如果您的文件不经常更改,最好的做法是设置很长的到期期限,并实施版本pipe理系统来pipe理文件的更新。“

[我假设最后一句话意味着“如果你把它设置为50年,然后想要改变文件,就要运气好”。]

使用CDN的主要目的是托pipe静态内容吗? 如果是这样,TTL的使用时间会比一天长吗? 对于几乎所有的东西(所有图像和CSS),我使用Cache-Control =“max-age = 604800,public,must-revalidate”(即1周)。 根据我的经验,如果我把新版本上传到S3上,文件肯定会花费一个星期的时间。

希望这可以帮助。 [顺便说一句:就你的更一般的观点来看,我也怀疑CDN是否能够像你想象的那样帮助演出。 我将把整个网站(包括CDN)移到一个超快速的专用服务器上,并进行一些testing以查明。]

使用CDN的原因是,如果你期待

  • 静态内容 – 不经常或受控更新
  • 在世界各地浏览
  • 经常访问

我们的网站很less被访问,但我们有一个监控服务设置,要求我们的网站遍布世界各地。 所以它保持CDNcaching温暖。 我也想分享一个简单的案例,展示CDN的能力。

此外,我们预计每月支付2.2美元,而不是7美元的godaddy服务器(不能处理浪涌)

平均网页加载时间

平均页面加载时间分布