通过 HTTPS 提供静态 S3 网站时降低 CloudFront 成本

Reduce CloudFront costs when serving static S3 website over HTTPS

我维护着一个 'hobby' 网站来试验 AWS 技术。因为是纯粹的爱好,所以我尽量降低成本,只使用那些绝对必要的服务。

几个月来,该网站开始产生一些流量,每天约有 30-50 次点击,有时甚至达到每天 1000 次点击。

我使用 CloudFront (CF) 的主要目的是拥有 HTTPS 并能够将我的域与我的 S3 网站存储桶连接起来,但由于点击量的增加,成本一直在上升。

显然,在这个阶段,成本是可控的(每月几美元),但正如我所说,我的目标是将成本保持在绝对最低水平,并且 CF 开始成为我成本的最大份额.

查看 Bill Details 中的 CF 成本,向我展示 HTTPS 请求和 尤其是带宽 占成本的大部分。

我正在寻找一种方法,使我能够继续将 CF 用于 HTTPS,并能够通过 S3 存储桶安全地指向我的域,同时降低请求和带宽产生的成本。

网站是静态的,完全托管在 S3 上。它包含:

我的CF配置如下:

分析 CF 成本的大部分是带宽,这告诉我这可能是页面和图像文件导致的。 IE。当人们加载我的页面并提供图像文件时,每页总计 100 kb + 50 kb。

根据我对 CF 的研究,我怀疑 Path PatternTTL 参数是需要在此处优化以实现的降低成本。如果有人能给我指出正确的方向,那就太好了。

带宽成本与从您的网站检索的数据量成正比。

  • 亚马逊 S3:9c/GB
  • Amazon CloudFront:8.5c/GB to 17c/GB 取决于位置

降低成本的一些想法:

  • 将 CloudFront 分配更改为使用 价格 Class 100,它仅提供来自低成本位置的流量。其他地方的用户访问速度会比较慢,但是你会省钱!
  • 增加您的默认 TTL 以便内容保持缓存更长时间,从而减少重复请求。
  • 激活并检查 CloudFront 访问日志 以分析传入流量。可能是很多请求来自蜘蛛和机器人。您可以通过创建 robots.txt 文件来限制此类访问。
  • 通过降低质量来减小图像的文件大小。质量上的权衡可能值得节省成本。
  • 制作一个不太受欢迎的网站。这将降低您的成本! :)