如何降低Amazon Cloudfront成本?

时间:2014-03-31 01:31:26

标签: wordpress amazon-web-services amazon-s3 wordpress-plugin

我有一个网站在过去几天流量爆炸。我使用带有W3 Total Cache插件的Wordpress和Amazon Cloudfront来提供网站上的图像和文件。

问题是Cloudfront的成本非常巨大,过去一周接近500美元。有没有办法降低成本?也许使用其他CDN服务?

我是CDN的新手,所以我可能没有很好地实现这一点。我创建了一个云端分发版,并在W3 Total Cache Plugin上配置了它。但是,我没有使用S3而且不知道我应该或如何。说实话,我不太清楚Cloudfront和S3之间的区别。

有人可以在这里给我一些提示吗?

3 个答案:

答案 0 :(得分:10)

  

我不太确定Cloudfront和S3之间有什么区别。

这很容易。 S3是数据存储。它存储文件,并且具有超级可扩展性(可以轻松扩展到同时为1000个人提供服务。)问题在于它是集中式的(即从世界上的一个地方提供服务。)

CloudFront是一个CDN。它可以在世界各地缓存您的文件,以便更快地提供服务。如果您眯着眼睛,看起来他们正在“存储”您的文件,但缓存可能随时丢失(或者如果他们启动新节点),所以您仍然需要原始文件。

如果每个文件的点击次数太少,CF实际上可能会伤害到你。例如,在东京,CF可能有20个节点。在所有20个CF节点缓存了您的文件之前,它可能需要100个文件请求(请求是随机分布的)。在这100个请求中,其中20个将占用空缓存,并在获取文件时看到额外的200ms延迟。他们通常会长时间缓存您的文件。

  

我没有使用S3而且不知道我是否应该

可能不是。如果您希望自己的网站在媒体中大量增长,请考虑使用S3。 (即大量使用照片上传。)

  

有没有办法降低成本?也许使用其他CDN服务?

这完全取决于您的网站。一些想法:

1)确保您正在为appropriate headers提供服务。并确保您的到期时间不会太短(理想情况下应为几天或几周或几个月)。

“最佳做法”是永不使页面过期,除非您的索引页面应该每X分钟或几小时或几天过期(取决于您希望它更新的速度。)确保每个页面/图像显示它有多长可以缓存。

2)如上所述,CF仅在请求每个页面时有用>每个缓存时间100次。如果您有数百万个页面,每个页面都要求几次,那么CF可能没用。

3)来自亚洲的请求比来自美国的请求贵得多。如果您在那里更受欢迎,请考虑在Toyko中启动您的服务器。

4)查看您的Web服务器日志,查看CF请求您的每个资产的频率。如果它比您预期的更频繁,则您的缓存标头设置错误。如果您设置“缓存此数月”,您应该每天只能看到少量请求(当他们启动新服务器等时),以及发布新文件时的几百个请求(即每个CF边缘节点一个请求)

根据您的设置,其他CDN可能更便宜。根据您的服务器,其他设置可能更便宜。 (即如果您提供大量小文件,最好在EC2上进行自己的缓存。)

答案 1 :(得分:2)

你可以给cloudflare一个机会。它不是一个完整的CDN,因此它可能没有像云端一样的所有功能,但基本软件包是免费的,它将从您的服务器卸载大量流量。

https://www.cloudflare.com

答案 2 :(得分:1)

基于2个因素的Amazon Cloudfront成本

  1. 请求数
  2. 以GB传输的数据

解决方案

  1. 减少图像请求。为此,将小图像合并为一个图像并使用该图像 https://www.w3schools.com/css/tryit.asp?filename=trycss_sprites_img(图像精灵)
  2. 请勿将CDN用于视频文件,因为视频大小太大,这会导致CDN海岸过大