独立开发省钱指南 - Cloudflare

大家好,我是 jonssonyan。

我之前分享过我做网站和 App 的一些经历,也分享过如何把每月做产品的成本控制在 500 元以内。可以看这几篇文章:分享我最近一年做产品的经历独立开发后,我把月成本压到了 ¥500

对于独立开发者来说,服务器不一定是最大的成本,但是每多一个产品,就会多一套域名、服务器、对象存储、CDN、数据库、邮箱和安全防护。如果每个产品都单独买一遍,一个产品一个月可能不多,产品多了之后也是一笔固定支出。 最好的效果是随着维护的产品越来越多,边际成本越来越小

我现在很多产品都托管在 Cloudflare。除了域名需要付费,网站托管、接口、对象存储、CDN、防御和域名邮箱,前期基本都可以白嫖 Cloudflare 的免费服务,只要注册一个免费账号就可以了。有的朋友可能担心合法合规问题,Cloudflare 在中国大陆是提供服务的,访问 Cloudflare 官网也很顺畅。

Cloudflare:https://www.cloudflare.com/zh-cn/

重点来了, Cloudflare 哪些服务可以白嫖?

  1. Pages/Workers:部署官网、落地页、博客和帮助文档,提供接口、定时任务和一些简单的后端逻辑
  2. R2:保存用户上传的图片、生成结果和其他文件
  3. CDN:缓存静态资源,减少服务器流量
  4. WAF + DDoS:拦截常见攻击和异常流量
  5. D1:保存用户、任务、订单、埋点等结构化数据
  6. Turnstile:代替验证码,防止注册、登录和表单被刷
  7. Email Routing:免费接收域名邮箱

如果产品还在验证阶段,访问量不大,这套方案每月成本可以接近 0。真正需要花钱的通常只有域名,以及产品本身调用的 AI 成本。

Pages/Workers

Pages 和 Workers 功能类似,而且还提供了 CI/CD,将 GitHub 仓库连接到 Pages/Workers 后,每次提交代码都可以自动构建和部署,还会自动提供 HTTPS、CDN 和预览地址,不需要自己买服务器,也不用配置 Nginx 和证书。只要关联到 GitHub 仓库,部署好就直接是生产可访问的版本。官方还提供免费的 pages.dev 域名,也可以绑定自定义的域名。

免费版每月支持 500 次构建,单个账号可以创建 100 个 Pages 项目。纯静态资源的请求免费且不限量,对于大多数独立开发项目完全够用。不过单个静态文件最大为 25 MiB,大文件可以放到 R2。

Pages 限制:https://developers.cloudflare.com/pages/platform/limits/

Workers 免费版每天有 10 万次请求额度,每天在 UTC 0 点重置。对于产品初期,这个额度已经很大了。

Workers 限制:https://developers.cloudflare.com/workers/platform/limits/

Workers 适合做网站后端,不适合运行长时间、高 CPU 和高内存任务。例如视频转码、本地 AI 推理和 Whisper 转录。

R2

R2 和阿里 OSS 功能基本一样的,如果是做生图、生视频的产品,肯定需要有个地方存储资源,直接传到服务器上,会占用服务器带宽和硬盘。

R2 主要有以下几个优势:

  1. 网络流出流量免费,也就是在公网直接访问资源是免费的,这样可以避免流量被刷。
  2. 免费 10G 存储,对于产品前期已经足够了。
  3. 提供免费的域名,也可以自定义域名。
  4. 支持生命周期管理,可以定期删除 N 天以前的资源,节省空间。

R2 说明文档:https://developers.cloudflare.com/r2/

CDN

CDN 是 Cloudflare 的灵魂,是保护网站的第一步也是最重要的防护。即使域名不是在 Cloudflare 买的,也可以通过修改 DNS 服务器把域名托管到 Cloudflare,比如我自己的个人博客就是使用的 Cloudflare 的 CDN。

CDN 的好处就不用多说了,用户会先访问 Cloudflare,命中缓存的图片、CSS、JavaScript 等资源由 Cloudflare 直接返回,不再请求源站。这样既可以提高不同地区的访问速度,也可以减少源站的带宽消耗。

DDoS 和安全防护

不怕用户多,就怕扫描器、爬虫、CC 和 DDoS 攻击把带宽或者 CPU 跑满。

Cloudflare 免费方案已经包含不限量的 DDoS 防护,攻击流量不会计费;免费版 WAF 也提供一套基础托管规则,可以拦截一部分常见和高风险漏洞。

DDoS:https://developers.cloudflare.com/ddos-protection/frequently-asked-questions/

WAF:https://developers.cloudflare.com/waf/managed-rules/

Turnstile

登录、注册、找回密码接口很容易被机器人刷。

Turnstile 是一个免费的验证码方案,可以独立使用,不要求网站必须接入 Cloudflare CDN。免费版支持不限量验证请求,每个账号最多可以创建 20 个 Widget。

Turnstile 说明文档:https://developers.cloudflare.com/turnstile/

对于有免费生成次数的 AI 产品,Turnstile 配合 IP、设备、账号和接口限流,可以减少被薅的情况。

D1 数据库

D1 是 Cloudflare 提供的 Serverless SQL 数据库,底层兼容 SQLite,可以直接在 Workers 中使用。

免费版每天包含 500 万行读取、10 万行写入,总存储上限为 5 GB;免费方案单个数据库上限为 500 MB,最多可以创建 10 个数据库。

D1 说明文档:https://developers.cloudflare.com/d1/

如果已经有稳定的 MySQL 或 PostgreSQL,没有必要为了省几十元强行迁移。D1 更适合新产品、轻量服务和边缘接口,不适合把所有业务都塞进一个 500 MB 的免费数据库。

Email Routing

有了产品域名之后,通常还需要 support@example.comcontact@example.com 这样的邮箱。如果单独购买企业邮箱,每个域名或者每个账号都可能产生费用。

Email Routing 可以免费创建域名收件地址,然后转发到自己的 Gmail、Outlook 或其他邮箱。例如:

support@example.com → 个人 Gmail

contact@example.com → 个人 Gmail

billing@example.com → 个人 Gmail

免费版的入站邮件转发不限量。

Email Routing 说明文档:https://developers.cloudflare.com/email-service/

对于产品早期来说,先用它接收用户反馈和商务联系已经足够了,也看着更专业一点。

总结

这套方案特别适合产品验证阶段,几乎没有固定成本,有用户之后再根据真实用量升级,而不是产品还没上线,就先购买一堆服务器和云服务。

需要注意,虽然 Cloudflare 很多服务是免费的,但是有些服务需要绑卡订阅才可以使用,比如 R2。

我不建议为了“全家桶”而使用 Cloudflare,也不建议把所有业务都改造成 Workers。我的原则一直是:能明显省钱,并且不会增加太多维护成本,就用;已有方案运行稳定,迁移收益又不大,就不折腾。

对于独立开发者来说,最重要的不是一开始就搭建一套可以承载百万用户的架构,而是用尽可能低的成本把产品尽快上线,确认真的有人使用和付费,等产品真正有了流量,再花精力继续投入。

公众号