【问题标题】:Reduce CloudFront costs when serving static S3 website over HTTPS通过 HTTPS 提供静态 S3 网站时降低 CloudFront 成本
【发布时间】:2020-08-20 23:21:13
【问题描述】:

我维护了一个“爱好”网站来试验 AWS 技术。因为它是一种纯粹的爱好,所以我试图将其成本保持在尽可能低的水平,并且只使用那些绝对必要的服务。

几个月来,该网站已经开始产生一些流量,每天大约有 30-50 次点击,在某些日子里,它每天的点击量高达 1000 次。

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

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

查看账单详情中的 CF 成本,向我展示 HTTPS 请求和尤其是带宽占成本的最大份额。

我正在寻找一种方法,让我可以继续将 CF 用于 HTTPS,并让我的域安全地从 S3 存储桶中提供服务,同时降低请求和带宽带来的成本。

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

  • index.html - 每小时自动更新
  • 10 个类别页面(每个 250 KB)- 每小时自动更新,它们包含指向详细页面的链接

我的CF配置如下:

  • 没有来源自定义标头
  • 行为:
    • 路径模式:默认 (*)
    • 查看器协议策略:将 HTTP 重定向到 HTTPS
    • 基于选定请求标头的缓存:白名单
    • 白名单标头:Referer
    • 对象缓存:自定义
    • 最小。生存时间:0
    • 最大。 TTL:31536000
    • 默认 TTL:0
    • 转发 Cookie:无
    • 查询字符串转发和缓存:无
    • 没有地域限制

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

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

【问题讨论】:

  • 图片的平均尺寸是多少?
  • 图像平均为 59 KB,页面平均为 100 KB。我没有意识到页面的大小如此之大。我将编辑我的帖子。

标签: amazon-web-services amazon-s3 amazon-cloudfront


【解决方案1】:

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

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

一些降低成本的想法:

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

【讨论】:

  • 嗨,约翰 - 感谢您快速而详细的回复。感谢您的反馈!我将阅读您提出的概念,尝试更改,然后监控我的成本。 -- 当然不那么受欢迎的网站除外 ;)
猜你喜欢
  • 2019-02-12
  • 2017-03-08
  • 2018-10-22
  • 2015-12-22
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 2019-11-17
  • 2020-07-03
相关资源
最近更新 更多