virusdefender's blog ʕ•ᴥ•ʔ

ESA 切换到 EdgeOne

本博客是一个纯静态网站,随便找个静态网站托管服务就能跑起来。不过为了自己用着舒心,前几年我一直把静态文件放在阿里云 OSS 上,再通过阿里云 CDN 对外提供访问。这套方案一直很稳定,加上博客平时也没什么访问量,每个月的费用最多也就几块钱。

阿里云 CDN 的计费方案简单来说就是流量费用 + HTTPS 请求数费用,流量费用对于普通用户来说从中国地区的 0.24/GB 到中东非洲区域的 1.31/GB 不等, HTTPS 请求是 0.05/万次,但是每个月有 500 万次免费。

24 年 7 月份,我突然收到了阿里云的欠费提醒,看了一下账单,才发现 CDN 产生了 105 GB 的下行流量,扣了 30 多块钱。 这个流量对普通网站也许不算多,但本站的访问量一直没有什么变化,显然不是正常的。通过日志查了一下 IP,才发现是 PCDN 刷量。

PCDN 用户为了平衡上下行流量,防止被运营商发现,进行了大规模的刷量行为,这个事情网上已经有很多讨论了,可以看下 https://github.com/unclemcz/ban-pcdn-ip 和里面的相关链接。PCDN 数量都是请求大文件,所以整体请求数量不是很多,不到 100 万次,所以这次没有产生 HTTPS 请求数费用。

26 年 6 月份,突然发现阿里云又欠费了,接着查日志,发现有一些非洲的 IP 在持续的使用简单的 GET 请求访问不存在的地址,总请求数量 1000 多万,导致 HTTPS 请求数直接超了免费额度 500 多万次,又被扣了 30 多块钱。。。还好 404 页面比较小,流量费用很少,这要是访问大文件再加上非洲地区 1.31/GB 的流量费,估计我就直接注销阿里云账号跑路了。

经历这两次异常账单之后,我觉得继续使用按量付费的 CDN 还是有些不太可控,于是把网站迁到了阿里云的 ESA 网站加速服务。为了省事,这时的源站仍然是 OSS。ESA 免费版目前不收取流量费和 HTTPS 请求数费用,因此日常使用基本只会产生 ESA 回源时的 OSS 出方向流量费用。

不过后来仔细研究了 CDN 和 ESA 的缓存策略,发现这样并没有完全解决问题。ESA 默认会把 URL 的查询参数纳入 Cache Key,如果有人不断构造新的随机参数,就可能让请求持续绕过缓存并回源到 OSS,最终仍然会产生大量 OSS 流量费用。为了彻底去掉这部分费用,我又把静态文件迁到了 ESA Pages,改用 ESA 直接托管网站,不再使用自己的 OSS。

不过迁移到 ESA Pages 之后,遇到了新几个问题,这些问题在之前的代理模式下是不存在的:

从截图中还能看到,响应里竟然重复出现了四个 Vary Header,不知道是什么逻辑。

我通过工单向阿里云反馈了上述问题,最后确认都是 bug。尤其是 404 和 URL 重写失效,对网站的影响还是比较大的,但两个多月过去了依然没有修复。再加上阿里云 ESA 的免费套餐默认只能添加一个站点,于是我开始尝试腾讯云的同类产品 EdgeOne

阿里云 ESA 和腾讯云 EdgeOne 都有一部分功能在对标 Cloudflare,而 EdgeOne 其实还比 ESA 早上线一两年。我的需求只是托管一个纯静态网站,暂时用不到安全防护、边缘脚本和云函数等功能,所以迁移过程很简单:配置好网站的构建命令,再修改 DNS 解析就完成了。EdgeOne 的功能和策略选项看起来没有 ESA 那么多,也少了一些让人看不懂的概念,整个控制台显得简洁了不少,但对于我的需求是完全够用的。


#其他 | 微信打赏 | 转载必须注明原文链接

欢迎评论

ᕦʕ •ᴥ•ʔᕤ

提交中...