我的第一个项目在 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 | $0 | 4 核 ARM / 24GB | 免费额度很香,但被回收的案例不少,不敢把每周都要跑的东西押上去 |
| RackNerd | 约 $1.5/月 | 1 核 / 1GB | 按年付,便宜,适合练手;配置对我偏紧 |
| Vultr | $2.5/月 | 1 核 / 0.5GB | 512MB 内存跑 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,再琢磨「拿它干点啥」——那台机器最后通常就是每月扣五美元,跑着一个你半年没登录过的面板。
买之前先用费用估算器把域名、服务器、附加项勾一遍,看看年度总数。数字摆到台面上,决定会容易很多。