返回博客
4 分钟

免费托管够用,直到我需要一个定时任务

免费静态托管能撑很久,久到你会以为永远不用花钱。记录我第一次被逼着买服务器的那天,以及每月到底多掏了多少。

上线服务器成本
本文目录

我的第一个项目在 Cloudflare Pages 上跑了七个月,账单是 0 美元。

不是省着用,是真的没花。免费额度给的是无限带宽、每月 500 次构建。对「一个文档站加几个工具页」这个体量来说,约等于无限。

所以我一直觉得买服务器是别人的事。

需求是这么冒出来的

我想做个每周摘要:周一早上八点,把这周新增的内容整理成一封邮件发给自己。

写起来不难。麻烦的是「周一早上八点」这五个字。

静态托管的工作方式是:有人访问,才执行代码。没人打开页面的时候它什么都不做——它根本没有一个一直开着的地方在等你。

而我这个需求,恰恰要在没人访问的时候主动跑起来。

我先试了两条绕路

GitHub Actions 定时任务。 最省事,不用花一分钱。

我用它跑了两个月。问题不是不能跑,是不准。免费版的 schedule 是尽力而为,官方文档自己就写了高峰时段可能延迟。我设的八点,实际执行时间在 8:10 到 8:50 之间飘。

如果只是备份数据库,飘一会儿无所谓。但那封邮件我是当早报看的,九点才到就没意义了。

Cloudflare Workers + Cron Triggers。 这个真能用,而且还在免费额度里。我又跑了一个月。

卡住的是另一件事:摘要里有一段要处理音频,把新发布的播客片段转成波形图,得调 ffmpeg。Workers 有 CPU 时间上限:免费版 10 毫秒,付费版 30 秒。注意这是 CPU 时间,不是墙上时间,ffmpeg 正好是纯 CPU 的活儿。要么拆成另一个服务,要么换地方。

到这一步我才想明白:不是托管方式选错了,是我的需求变了。

半年前它确实只是个静态站。现在它需要一个能跑任意命令、跑多久都行的地方。

我买了什么

Hetzner Cloud 最低配:1 vCPU、2GB 内存、20GB 硬盘。

为什么不是最便宜的那个?我对着站里那张便宜 VPS 对比表一行行看下来:

服务商起步价配置我的判断
Oracle Cloud$04 核 ARM / 24GB免费额度很香,但被回收的案例不少,不敢把每周都要跑的东西押上去
RackNerd约 $1.5/月1 核 / 1GB按年付,便宜,适合练手;配置对我偏紧
Vultr$2.5/月1 核 / 0.5GB512MB 内存跑 ffmpeg 会很难受
Hetzner Cloud$4.5/月1 核 / 2GB选它:同价位内存给得最多,按小时计费可以先试一个月

我的取舍一句话说完:这台机器每周只干一次活,所以我不需要它快,我需要它别跑到一半死掉。 内存比 CPU 重要。

多花了多少钱

真实账单,美元:

项目费用
域名(.com)$12 / 年
服务器(Hetzner 最低配)$4.5 / 月,约 $54 / 年
对象存储(音频放 R2 免费额度)$0
合计约 $66 / 年,折合 $5.5 / 月

按现在的汇率算下来,一天一块三。

这个数字我是这么说服自己的:每天早上那封邮件,成本不到五毛。但更该说出口的是另一面——如果我没有那个定时需求,这 $66 一分都不该花。

什么时候你不需要服务器

反过来讲,下面这几类项目继续用免费静态托管就行,别因为「感觉该有个服务器了」去下单:

  • 展示站、营销页、作品集
  • 前端 SPA,或者用 SSG 生成的博客和文档
  • 后端全在 Serverless 和托管数据库上的应用
  • 唯一目标就是「让别人能访问到」的项目

判断标准我用一句话概括:

你的功能里,有没有哪一部分必须在没有任何人访问的时候也执行?

没有 → 静态托管,收工。 有 → 该买机器了,去购买服务器看配置怎么挑。

还有一种情况值得先等等:你要的只是固定出口 IP,或者一个能跑几小时的批处理。先翻翻 发布到公网那篇,里面列了三种托管方式各自能做什么、边界在哪。有些需求 Serverless 平台早就支持了,不用为它专门养一台机器。

最后

顺序别搞反。

我是先有了需求,发现免费方案撑不住,才去挑机器。反过来做——先买台 VPS,再琢磨「拿它干点啥」——那台机器最后通常就是每月扣五美元,跑着一个你半年没登录过的面板。

买之前先用费用估算器把域名、服务器、附加项勾一遍,看看年度总数。数字摆到台面上,决定会容易很多。

相关文章