Vibe Tutorial
无服务器部署与 CI CD 自动化

11.13 成本优化策略

Tip

云计算是按量计费的。如果不加节制,"云计算"就会变成"云算计"。


1. 为什么要学这个?

新手惨案: 你写了一个死循环,或者被 DDoS 攻击了。 一个月后,你收到的不是用户的感谢信,而是亚马逊 (AWS) 发来的 $5,000 账单。 对于独立开发者来说,这可能是毁灭性的打击。 FinOps (云成本优化) 不仅仅是为了省钱,更是为了生存。


2. 核心概念:按量 vs 包年包月

1. Pay-as-you-go (按量付费)

  • 水龙头模式:用多少水交多少钱。
  • 风险:忘关水龙头(死循环),或者水管爆了(流量攻击),房子能给你冲没了。
  • 适用:Serverless Function, S3 存储, CDN 流量。

2. Fixed Pricing (包月/固定)

  • 宽带模式:不管你用不用,每个月固定交 100 块。
  • 风险:用得少也是亏(但不会破产)。
  • 适用:VPS (Coolify), 数据库 (Railway/Render)。

3. 解决方案 (HOW) - 省钱大法

策略 1:Billing Alert (保命符)

在写第一行代码之前,先去云平台设置账单告警。

  • Vercel: Spend Cap (消费上限)。
  • AWS: Budgets (当账单预计超过 $10 时发短信)。 这一步能救你的命。

策略 2:Free Tier (白嫖)

利用好大厂的免费额度 (薅羊毛是美德):

  • Vercel: 100GB 流量/月 (个人项目根本用不完)。
  • Cloudflare: 免费 CDN + WAF (良心企业,必须套在最前面)。
  • MongoDB Atlas / Neon: 512MB 免费数据库。

策略 3:资源清理 (TTL)

不要存垃圾。

  • 日志: 设置 30 天自动删除。
  • 图片: 使用 Next.js <Image /> 组件,自动把 5MB 的 PNG 压缩成 50KB 的 WebP。图片流量通常占带宽费的 80%。

成本构成图

pie
    title "典型 Serverless 应用成本构成"
    "数据库 (最贵)" : 50
    "流量/CDN (不可控)" : 30
    "计算 (Function)" : 15
    "存储 (S3)" : 5

4. 真实案例

Story

"无限循环的 3000 美刀"

2022 年,一个 React 新手在 useEffect 里请求 API,但忘了写依赖数组 []。 导致组件每渲染一次就请求一次 API。 这个页面正好是首页。 他的 Firebase 数据库读操作在一天内达到了 2 亿次账单:$3,000。 虽然 Google 最后出于对新手的同情免除了这笔单子(One-time refund),但他吓得差点当场退圈。

Vibe 心法: 手抖一下,云上就是真金白银的流失。 每一个 useEffect,每一个 while(true),每一张高清大图,都是在向你的研发预算发起掠夺。 代码不仅要跑得通,还要跑得便宜。


5. 本章小结

  1. 告警:Billing Alert 是第一道防线。
  2. CDN:是最好的省钱工具 (Cloudflare 帮你挡流量)。
  3. 敬畏:在绑定信用卡的那一刻,就要对每一行代码的性能负责。