返回探索
指南VibeFix 编辑部更新于 2026年10月15日

别让 Serverless 账单教你做人:vibe 项目的 Serverless 成本优化实战

AI 默认把你的 vibe 项目部署到 serverless,然后账单就多了一个零。本文拆解 Vercel、Cloudflare Workers、AWS Lambda 的真实计费模型,给出可计算的成本拐点公式(何时 serverless 比 VPS 贵),曝光 AI 生成代码最爱踩的五大架构陷阱(长连接、本地状态、定时任务当常驻、大包冷启动、egress 流量费),并附六步可落地优化清单——先省钱,再谈迁移。

Serverless 成本优化指南封面:serverless 成本曲线与 VPS 固定成本线的拐点

你让 AI 写了个项目,它顺手点了 deploy——大概率落在了 Vercel、Cloudflare Workers 或者 AWS Lambda 上。这就是 2026 年 vibe coding 的标准开局:一键上线,零运维,免费额度先顶着。甜蜜期通常持续到第一个真正的用户进来,或者第一个 agent 开始 7×24 小时跑任务。然后账单来了,数字常常比你预期的多一个零。

这不是 serverless 的错。Serverless 是个好工具,但它是个按秒表计费的工具——而 AI 恰恰最擅长写出"看起来能跑、跑起来烧钱"的代码:每次请求都冷启动、每个 agent 循环都调一次函数、内存里攒状态、定时任务每分钟扫全表。本文不讲"怎么自托管"——那是本站另一篇指南 《别再给云厂商交"AI 税"了:vibe 项目的自托管(Coolify/Dokku)落地实战》 的事,它手把手教你 7 步把项目迁到自己的服务器上。本文回答它前面的那个问题:你的项目到底适不适合继续待在 serverless 上?拐点在哪?在拐点到来之前,怎么把 serverless 用便宜?两篇是配套的:这篇是"决策",那篇是"执行"。

Serverless 成本优化指南封面:serverless 成本曲线与 VPS 固定成本线的拐点" alt="Serverless 成本优化指南封面:账单曲线与成本拐点" />先说结论:serverless 是"起步税",不是"成功税"。起步时它最便宜,长大后它最贵,关键是你得知道拐点在哪。

一、先看清你在为什么付钱:三家计费模型

很多人把 serverless 当成"按流量付费",这是第一个误解。三家主流平台,没有一家是单纯按流量计费的,它们计的都是调用次数 × 计算量,只是"计算量"的定义各不相同。计费模型没吃透,后面所有优化都是瞎忙。

Vercel(Fluid 计算模型)。Pro 计划约 $20/月起,含 $20 的用量额度,额度用完转按量计费。额度内含:每月 100 万次 CDN 请求、100GB 流量、4 小时 Fluid Active CPU、360 GB-小时预置内存、100 万次函数调用。关键概念是 Active CPU:只按 CPU 真正在干活的时间计费,等数据库、等 AI API 返回的 I/O 等待时间按更低的费率算——这对 I/O 密集型应用是 20–30% 的降本。超出额度后的按量单价(社区多次引述官方文档,写稿时交叉核对过:约 $0.60/百万次函数调用、约 $0.128/小时 Active CPU、约 $0.15/GB 流量——单价以官方最新定价页为准)。另外两个保命设置:新团队默认有 $200 的按量预算封顶提醒,可配置达到 100% 时自动暂停项目;还有 Flat Rate CDN 附加包,给流量大户一个固定月费选项。

Cloudflare Workers(按请求 + CPU 时间)。逻辑最干净的一家:付费计划 $5/月起,含每月 1000 万次请求和 3000 万 CPU 毫秒;超出部分 $0.30/百万次请求、$0.02/百万 CPU 毫秒。注意两个细节:第一,计的是 CPU 时间不是墙钟时间,等 I/O 不花钱(免费档单次调用限 10ms CPU,付费档默认 30 秒、上限 5 分钟);第二,出站流量(egress)完全免费,这是它跟 AWS 系最大的区别。WebSocket 连接按 1 次请求计费(只算最初的 Upgrade 握手),之后的消息不计费。官方自己算过一笔账:每月 1500 万次请求、平均每次 7ms CPU,总成本是 $5 + $1.50(请求)+ $1.50(CPU)= $8/月。

AWS Lambda(按请求 + GB-秒)。最贵也最灵活的标尺:$0.20/百万次请求(每月前 100 万次免费),计算按 $0.0000166667/GB-秒(每月前 40 万 GB-秒免费)。注意 Lambda 计的是墙钟时间 × 内存——你的函数等 LLM 返回 30 秒,这 30 秒按满内存照单全收。官方例子:每月 300 万次请求、平均 120ms、配 1536MB 内存,一个月 $2.73。便宜吧?但别忘了 AWS 的 egress:每月前 100GB 免费,之后 $0.09/GB 一直收到 10TB——做图片、视频、下载站的,这一行经常比计算本身还贵。另外 VPC 里的 Lambda 要上外网还得过 NAT 网关(约 $0.045/小时 + $0.045/GB),低流量项目里 NAT 经常是最大的一行账单。

三句话总结:Vercel 卖的是"省心+生态",单价最高;Cloudflare 卖的是"请求便宜+流量免费",适合高频小请求;Lambda 卖的是"AWS 生态+弹性",但墙钟计费和 egress 是两个暗坑。你的 AI 大概率默认选了 Vercel——因为它对 Next.js 最顺手,不是因为它最便宜。

二、成本拐点公式:什么时候 serverless 比 VPS 贵

这是全文最有用的部分。先给公式,再给三个速算例子,最后给一条可以直接抄进 README 的决策规则。

公式。serverless 月成本 ≈ 固定订阅 + max(0, 月请求 − 免费请求额度) × 请求单价 + max(0, 月总计算量 − 免费计算额度) × 计算单价 + 出站流量费。而一台 2 vCPU / 4GB 的 VPS(Hetzner CX23 级别,约 €5/月,含 20TB 流量;DigitalOcean、Vultr 入门款 $4–6/月,价格以各家最新定价为准)是固定成本:跑满和空转一个价。拐点就是这两条线的交点。

Serverless 成本优化指南封面:serverless 成本曲线与 VPS 固定成本线的拐点" alt="Serverless 三家平台与 VPS 的月成本拐点曲线图:横轴月请求量,纵轴月成本" />图1:按官方单价建模的成本曲线(I/O 型 API 场景,见 evidence.md 的建模假设)。VPS 是水平线,serverless 是斜线——交点就是你的迁出闹钟。注意 Lambda 在这个场景下看着便宜,是因为还没算它墙钟计费的 agent 等待陷阱和 egress,见第三节。

速算例 1:个人博客/作品集站。月 5 万次访问, mostly 静态。Vercel Hobby 免费档或 Cloudflare $5/月搞定,VPS 也要 €5/月+你自己的运维时间。结论:serverless 胜,别折腾。这个量级谈"自托管省钱"是算错了账——你的时间比 €5 贵。

速算例 2:有点起色的 SaaS。月 1000 万次 API 请求,每次 50ms Active CPU。按模型估算:Cloudflare 约 $5 + $0 + CPU 部分 ≈ $8–10/月;Vercel 约 $20 订阅 + 调用与 CPU 超额 ≈ $40+/月;Lambda(256MB、200ms 墙钟)请求 $1.8 + 计算约 $1.7 ≈ $3.5/月+流量费。同等 VPS 一台 €5/月绰绰有余。结论:Cloudflare 和 Lambda 在这个量级依然便宜,Vercel 开始显贵——贵的不是计算,是 $20/月的起步订阅和更高的调用单价。

速算例 3:agent 常驻任务。这才是 vibe coder 的重灾区:一个 agent 每 5 分钟调一次函数,每次等 LLM 返回 20 秒,一个月就是 8640 次 × 20 秒 = 48 小时墙钟。Lambda 按 1GB 内存算:48×3600×1GB = 172,800 GB-秒,减去 40 万免费额度——还在免费额度内?等等,免费额度是全账号共享 40 万 GB-秒,单个 agent 就吃掉 17 万,三个 agent 并行就超了。超额部分 $0.0000166667/GB-秒,看着小,乘上 24/7 的等待时间就不是小钱。结论:凡是"长时间等待外部返回"的 workload,serverless 的墙钟/Active 计费都在悄悄放大你的等待成本。

决策规则(抄走)。连续两个月满足 serverless 月账单 > 同等 VPS 月租 × 1.5,就启动迁移评估。1.5 是留给"我自己运维的时间成本"的缓冲系数——别为了省 $10/月把周末搭进去。评估时去读配套指南 《自托管落地实战》,它里面的 7 步 SOP 和回滚方案就是为这一刻准备的。反过来,只要账单还在 VPS 月租以下,就老老实实待在 serverless 上——省下的运维时间拿去做功能,这才是 vibe coding 的正道。

三、Serverless 的五大架构陷阱(AI 最爱踩的)

下面五个坑,有一个共同点:AI 生成的代码默认按"有一台一直开着的服务器"来写,而 serverless 恰恰不是。Cursor、v0、Claude Code 生成的样板代码里,这五个问题出现的概率高得惊人。逐个拆。

Serverless 成本优化指南封面:serverless 成本曲线与 VPS 固定成本线的拐点" alt="Serverless 五大陷阱与正确姿势对照图" />图2:五大陷阱 × 正确姿势对照。核心思想就一句:把"状态"和"长耗时"从函数里搬出去。

陷阱一:长连接与 WebSocket。AI 给你生成的聊天室、实时协作、游戏对战,十有八九是 WebSocket 长连接。放在 Lambda 上就是灾难:连接保持 1 小时 = 按 1 小时墙钟 × 内存计费,1000 个在线用户就是 1000 个并发计费实例。Vercel 函数还有最长执行时间上限(Hobby 10 秒级、Pro 可配到 800 秒),长连接根本撑不住。正确姿势:Cloudflare Workers 对 WebSocket 友好得多——一次连接只算 1 次请求,消息不计费,配合 Durable Objects 做有状态协调;或者干脆把实时部分拆出来,放到一台常驻的小 VPS/自托管服务上,HTTP 部分继续 serverless。这叫"混合架构",不是"全迁"。

陷阱二:把状态放在本地。AI 写的代码里全是 const cache = new Map()、写 /tmp 文件、用内存做会话。serverless 实例随时被回收、请求随机打到不同实例:本地缓存命中率约等于玄学,/tmp 跨调用不保证存在。更贵的是另一种:有人为了"解决"这个问题,给每个请求都重建连接、重查数据库——省了状态,烧了计算。正确姿势:状态一律外置——KV 用 Cloudflare KV/Upstash Redis,会话用 cookie+签名或外部存储,文件用对象存储(R2/S3)。记住判断句:凡是函数实例重启会丢的东西,都不许放在函数里。

陷阱三:定时任务当常驻 worker 用。Cron 触发一次就是一次(或多次)函数调用,AI 生成的"每分钟扫一次全表、算完再说"的任务,在 serverless 上是按调用次数 × 每次的计算量双重计费。Cloudflare 官方例子:每小时跑一次、每次 3 分钟 CPU 的报表任务,一个月 $6.99——看着不贵是因为频率低;改成每分钟跑、每次 30 秒,一个月就是 43200 次 × 30 秒 CPU,直接起飞。正确姿势:低频轻任务放 cron;高频重任务迁到常驻 worker(VPS 上一个 systemd 服务/容器,成本固定);或者先做增量——只处理新增数据,把"扫全表"改成"扫变更"。

陷阱四:大包依赖与冷启动税。AI 特别喜欢 npm install 一整套:一个简单 API 路由拖进 200MB 的依赖(含 puppeteer、sharp、整个 AWS SDK)。Lambda 冷启动按"初始化时间 × 内存"计费,大包 = 每次冷启动都在烧双倍的钱(初始化慢 × 为了跑快配的内存大)。Vercel/Workers 也有冷启动延迟税——用户体验先受害。正确姿势:依赖瘦身(按需 import、换轻量库:dayjs 换原生、sharp 按需加载),Lambda 用分层(Layers)+ SnapStart,Node 项目检查打包体积,超过 50MB 就该动手了。

陷阱五:Egress 流量费——最隐蔽的一行。这是全文最值得划线的数字:AWS 系出站流量每月前 100GB 免费,之后 $0.09/GB。一个 AI 生成的图片站/播客站/短视频工具,用户每天看 10GB,一个月 300GB,光流量费就是 (300−100)×$0.09 = $18/月——可能比你全部计算费加起来还贵。Cloudflare 这边 egress 是 $0,这是它真正的杀手锏;Vercel Pro 每月含 1TB 流量(额度内),超出按量。正确姿势:流量型应用优先选 egress 免费或额度大的平台;图片/视频走专用 CDN 或 R2(Cloudflare R2 出站免费);给大文件加缓存头,别让每个请求都回源。

四、可落地的优化清单:先别迁,先省

看到账单先别急着迁服务器。按下面清单过一遍,多数 vibe 项目能先省 30–70%,剩下的才是真拐点。

1. 让请求根本不进函数:边缘缓存优先。这是性价比之王。Vercel 上缓存命中的响应不计函数调用(但计 CDN 请求);Cloudflare 上静态资源请求免费且无限。AI 生成的页面默认全是动态渲染——把不常变的页面改成 ISR/静态生成,一个 revalidate = 3600 可能砍掉你 80% 的函数调用。检查方法:看账单里"函数调用次数"是不是远大于"独立访客数",是就说明大量可缓存的请求在烧计算费。

2. 批量与合并调用。agent 场景重灾区:循环里调 100 次函数,每次 50ms。改成一次调用处理一批(batch endpoint),调用次数从 100 降到 1,冷启动也只付一次。Lambda 按请求 $0.20/百万看着便宜,但 100 倍的调用量在 Cloudflare($0.30/百万)和 Vercel($0.60/百万)上都是真金白银。

3. 数据库连接:serverless 的隐形杀手。每个函数实例都直连 Postgres,突发流量 = 几千个连接打爆数据库,然后你被迫买更大的数据库实例——这笔钱经常记在"数据库"账上,让人误以为 serverless 很便宜。正确姿势:连接池是必选项——Cloudflare 用 Hyperdrive,Supabase 用 Supavisor(transaction mode),自托管用 PgBouncer。AI 生成的 new Client() 每次请求都建连的代码,第一个就要改。

4. 预置并发:只在你真的"一直忙"时买。冷启动受不了?Lambda 的预置并发(Provisioned Concurrency)能让实例常驻待命,但闲置也计费,免费额度不覆盖。经验法则:实例利用率长期 >60% 才划算,低于这个数不如接受冷启动或做预热。别被 AI 建议的"开预置并发优化体验"带偏——那是拿你的钱换它的省事。

5. 花费护栏先行,事后看账单是侥幸。Vercel 给新团队默认 $200 按量预算,到 100% 可自动暂停项目——去打开它。AWS 用 Budgets + Billing Alarm,Cloudflare 看 Workers 用量面板设告警。被爬虫刷爆、被递归调用烧穿(Vercel 有递归保护但别全指望它)的故事,每个月都在上演。护栏的成本是零,事故的成本是四位数。

6. 定期重算拐点。每季度花 15 分钟,把过去三个月的账单套进第二节的公式算一遍。触发"连续两月 > VPS 月租 × 1.5"就启动迁移评估——评估和执行去读 《自托管落地实战》。记住:迁出去是为省钱,不是为折腾;账单没到拐点,迁移就是亏。

五、结尾:把 serverless 当"起步税"交

最后说点观点。Vibe coding 社区里有两种极端声音:一种是"serverless 是智商税,统统自托管",另一种是"都 2026 年了还管服务器"。两种都错了。

Serverless 真正的定价是:用"单价贵"换"零起步成本+零运维"。项目月收入为零、用户两位数的时候,€5 的 VPS 加你两小时的运维,就是比 $5 的 Workers 贵——贵的是你的时间。等项目月请求过千万、agent 7×24 跑、流量上 TB 的时候,serverless 的斜线成本一定会超过 VPS 的水平线,这是数学,不是观点。

所以正确的姿势不是二选一,是分阶段:serverless 起步(快)→ 按本文清单优化(省)→ 算着账长大(盯着拐点)→ 到拐点迁出(配套指南教你迁)。AI 帮你把"起步"做到了 10 分钟,你要做的只是别让"长大"变成"烧钱"。账单是最好的架构评审——每月看一次,比任何 AI 建议都诚实。

本文所有单价均在 2026-10-16 写稿时打开官方定价页核实,云厂商随时可能调价,动手前请以官方最新定价页为准。建模假设与核验记录见随附 evidence.md。

阅读 0评论 0

评论 (0)

ME
0/1000
评论加载中...
浏览项目广场发布你的项目

相关文章

审计日志实战封面:深色背景上的审计事件哈希链,四个事件块按 append-only 顺序链接
指南
出事之后才发现没记日志:vibe 项目的审计日志独立实战

审计日志≠业务日志≠运维日志。本文是审计日志独立实战:actor/action/resource 三元组数据模型、哈希链+WORM 不可变存储、“谁删了数据/谁导出了报表/谁改了价格”三类取证查询、删除权 vs 审计留存的法务平衡,以及一人团队一个下午能落地的最小实现(中间件+归档脚本,附可运行代码)。

数据工作流部署上线后端工程
慢查询与索引实战指南封面:发现、定位、修复、验证、巡检的慢查询定位闭环
指南
AI 生成的查询把数据库拖死了:vibe 项目的索引与慢查询实战

项目上线后 API 的 p99 从 300ms 涨到 3 秒,问题八成在数据库。本文给你一套闭环打法:用 pg_stat_statements 揪出真凶、5 分钟读懂 EXPLAIN、按查询模式选 B-tree/GIN/BRIN/部分索引/覆盖索引、避开 AI 代码的 6 个经典慢查询坑,再用 CREATE INDEX CONCURRENTLY 安全上线。每周 15 分钟巡检清单附后。

PostgreSQL性能优化数据库