Vercel 的定价体系是"账号计划 + 按用量计费"混合模式,对刚上手的开发者来说,免费 Hobby 计划几乎感知不到成本;但一旦项目进入商用阶段,账单可能迅速膨胀。本文基于 Vercel 官方定价页面和大量生产项目的实际账单数据,系统性拆解三档计划、逐项分析计费项、给出真实成本估算和优化建议,让你在选型时心中有数。
一、三档计划总览
Vercel 将用户按规模和用途分成了三个明确的档位:
| 维度 | Hobby(免费) | Pro(专业版) | Enterprise(企业版) |
|---|---|---|---|
| 月费 | $0 | $20/用户/月 | 定制报价 |
| 适用对象 | 个人、非商业项目、学习/实验 | 独立开发者、小团队、生产项目 | 中大型组织、合规要求企业 |
| 并发构建 | 1 个 | 6 个 | 定制 |
| 团队成员 | 个人使用(可邀请 Guest) | 无限制 | 无限制 |
| 域名绑定 | 无限 | 无限 | 无限 |
| 优先级支持 | 社区论坛 | Email Support | 专属 Slack/工单 + SLA |
| 合规认证 | 无 | SOC2 Type 2 | SOC2、ISO 27001、GDPR 等 |
| SSO / SAML | ❌ | ❌ | ✅ |
| 专属支持 | ❌ | ❌ | ✅(Success Manager) |
| 自定义 SLA | ❌ | ❌ | ✅ |
1.1 关键认知:Hobby 不是"免费版社 SaaS"
Vercel 的 使用条款 对 Hobby 有明确限制:
“Hobby 计划面向个人学习和非商业项目。如果你将 Hobby 计划用于商业目的,Vercel 保留要求你升级到 Pro 的权利。”
翻译一下:
- ✅ 个人博客、技术 Demo、开源项目、学习笔记 → Hobby
- ✅ 初创公司 MVP 开发阶段(没有收入)→ Hobby 勉强可用
- ❌ 有付费客户的正式产品 → 应该升级到 Pro
- ❌ 团队多人协作 → 需要 Pro
实用建议:即使初期用 Hobby,也要在环境变量里保留一个 Plan 切换开关,确保项目随时可以无缝迁移到 Pro。
1.2 Pro 计划 “$20/用户/月” 到底贵不贵?
给出几个对比视角:
| 对比项 | Vercel Pro | Netlify Pro | Cloudflare Pages | Render | Railway |
|---|---|---|---|---|---|
| 起步月费 | $20/用户 | $19/用户 | 基本免费 | $19/月 | 按用量 |
| 包含流量 | 1TB | 1TB | 无限 | 100GB(免费) | $5 额度 |
| 构建时长 | 14,400 分/月 | 25,000 分/月 | 500 次/月 | 无限 | 无限 |
| 并发构建 | 6 | 3 | — | 1 | 按付费 |
| 基于框架的 DX | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
Vercel Pro 不算便宜,但也不算离谱。它的核心溢价在于:
- Next.js App Router / ISR / Middleware / Edge 的一等公民支持
- CI/CD + Preview + 团队协作的无缝体验
- 全球 CDN 自动分发(无需额外配置 Cloudflare)
比较基准:自己运维一台 1C1G 的云服务器(AWS t3.micro 约 $8/月),但你需要自己配 Nginx、CI/CD、CDN、SSL、HTTPS 重定向、缓存策略……Vercel $20/月买下的是开发体验 + 运维减负 + 性能优化工程,对于追求效率的团队来说,这个价格合理。
1.3 Vercel 计费体系的底层逻辑
理解了三个档位的价格标签后, worth 追问一个更本质的问题:为什么 Vercel 不采用像 Cloudflare Pages 那样近乎免费的纯用量模式,也不采用像传统虚拟主机那样一刀切的套餐模式,而是选择了"基础计划 + 超量计费"的混合模型? 这一模型的设计背后,包含了产品经济学、技术架构和用户体验的多重考量。
混合计费模式的战略意图
Vercel 的计费指标大致可分为两类:
- 刚性资源:团队席位(Seat License)、并发构建数、单构建时长上限、合规认证等。这些与组织的规模和流程深度强相关,无论流量高低都必须付费,适合用固定订阅覆盖。
- 弹性资源:数据传输、函数执行、Edge 请求等。这些与业务实际活跃度直接挂钩,适合用按量计费精确匹配。
将两者拆开,可以让小团队和个人用户以极低门槛($0)启动项目,同时为高流量客户提供可扩展的收费路径。相比之下:
| 计费模型 | 代表服务 | 优点 | 对开发者的缺点 |
|---|---|---|---|
| 纯用量计费(Pay-as-you-go) | AWS Lambda、Cloudflare Workers | 极致灵活、起步零成本 | 账单极度不可预测,需要专职 FinOps |
| 纯计划计费(Tiered SaaS) | Netlify Pro、传统虚拟主机 | 账单可预测、简单 | 资源分配僵化,容易为未使用的额度付费 |
| 计划 + 用量混合 | Vercel、Render | 兼顾可预测性与弹性 | 需同时理解两种计费规则 |
为什么要区分 Edge vs Serverless?
Vercel 把函数执行拆成两条独立计费线(Edge Functions vs Serverless Functions),这在行业中并不多见。其本质原因是两者的资源调度成本结构完全不同:
- Edge Functions 运行在 Vercel Edge Network 的轻量级 V8 Isolate 上,启动时间趋近于零(<1ms),CPU 和内存受限,成本极低但单次收费额度小。Vercel 对 Edge 请求的定价策略类似于 Cloudflare Workers——用极低的边际成本换取海量调用次数,再通过基数收费。
- Serverless Functions 运行在 AWS Lambda(或其他底层 provider)的完整容器上,冷启动成本更高(Node.js 冷启动 200-500ms),内存配置更灵活,单次执行的资源消耗更大。Vercel 对 Serverless 的计费采用 GB-秒模型,与 AWS Lambda 保持一致。
将两者分离,实质上是把不同成本结构的资源用不同的价格信号传递出去。如果一个开发者把所有逻辑都跑在 Edge 上,虽然请求数暴增,但 Vercel 的边际成本并没有线性增长;而如果把重计算任务放到 Serverless,高内存 × 长时间执行会产生真实的底层云资源消耗,按 GB-秒计费才公平。
计费粒度与行业对标
Vercel 的计费粒度算得上精细,以下是各维度的最小计量单位:
| 计费项 | Vercel 粒度 | AWS 对标 | Cloudflare 对标 |
|---|---|---|---|
| 数据传输 | 按 GB | 按 GB | 按请求 / 不单独计 |
| Edge 请求 | 按百万次 | CloudFront 按 10K 请求 | Workers 按百万次 |
| Serverless 执行 | 按 GB-秒 | Lambda 按 GB-秒 | Workers 按 CPU-毫秒 |
| 构建时间 | 按分钟 | CodeBuild 按分钟 | 按构建次数 |
Vercel 的数据传输按 $0.15/GB 计算,与 AWS CloudFront 标准定价($0.085/GB 起,区域不同有差异)相比略贵,但 CloudFront 需要额外配置 Origin、缓存规则、SSL 证书,且没有 Next.js 原生集成优势。如果把 DevOps 人力成本折算进去,Vercel 的综合性价比对中小团队仍然更高。
一个容易被忽略的细节:Vercel 的超量定价是"惩罚性"的
Vercel Pro 包含 1TB 数据传输,超出后 $0.15/GB。乍一看与 AWS 相差不大,但如果你把"基础计划"看作一个固定成本,再把超量部分单独拎出来看,超量的边际价格实际上远高于 AWS。
例如:某个 Pro 团队月流量 2TB,总费用 = $20 + (1024GB × $0.15) = $173.6。如果纯用 AWS CloudFront + Lambda,2TB 流量可能只需要约 $120。Vercel 的溢价来自它的 DX(Developer Experience)和运维节省。对预算敏感的团队来说,在 Vercel 上跑前端,在 AWS/R2 上走后端存储,是常见的成本套利策略。
总结来说,Vercel 的计费体系是精心设计的:它用着按量计费的"外衣",收着 SaaS 订阅的"内核"。超量费用本质上是一种用钱包投票的机制——如果你的项目真的到了需要大量资源的阶段,Vercel 希望你认真评估是否继续留在这个平台上,或者采用混合架构把重资源拆出去。
二、按用量计费项逐项拆解
Vercel 的账单由账号月费 + 超出配额后的按量计费组成。下面逐项分析每个计费项的含义、配额和实际成本。
2.1 Fast Data Transfer(数据传输 / 带宽)
这是最容易让账单失控的计费项。
| 项目 | Hobby | Pro | Pro 超出价格 |
|---|---|---|---|
| 数据传输(出网) | 1GB/月 | 1TB/月 | $0.15/GB |
| 请求数 | 无限 | 无限(但 Edge 请求单独计费) | — |
⚠️ 认知误区:
- “1TB 很大,我肯定用不完” → 如果你的站点有大量图片/视频,或部署了下载工具,1TB 很可能在一个月内耗尽
- “流量只是 HTML 文本” → Next.js 项目的 JS Bundle(
/_next/static)通常 100KB-500KB/页面,加上图片,一个 PV 可能产生 1-5MB 流量
示例估算:
| 项目类型 | 平均页面大小 | 日活 1K 月流量 | 日活 10K 月流量 | 日活 100K 月流量 |
|---|---|---|---|---|
| 个人博客(文字为主) | 200KB | ~6GB | ~60GB | ~600GB |
| SaaS 应用(JS 重) | 1MB | ~30GB | ~300GB | ~3TB |
| 图片站 / 作品集 | 5MB | ~150GB | ~1.5TB | ~15TB |
| 视频/音频站 | 50MB | ~1.5TB | ~15TB | ~150TB |
结论:
- 文字博客:Hobby 的 1GB 勉强够,但上 Pro 的 1TB 绝对安全
- SaaS 应用:Pro 的 1TB 对日活万级以下够用,但监控很重要
- 图片/视频站:不能用 Vercel 直接托管大文件,必须用 S3/R2/阿里云 OSS 等外部存储,否则账单不可控
2.2 Edge Functions(边缘请求)
| 项目 | Hobby | Pro | Pro 超出价格 |
|---|---|---|---|
| Edge 请求次数 | 100 万/月 | 2500 万/月 | $2.50/百万次 |
Edge 请求包括:
- Next.js Middleware 执行(每次页面请求都会触发 Middleware)
- Edge API Routes(
runtime: 'edge'的 API 请求) - Vercel 的 Analytics 和 Speed Insights(也会产生微量请求)
示例估算:
| 场景 | 月均 Edge 请求 | 所在计划 | 额外费用 |
|---|---|---|---|
| 个人博客(1000 PV/日) | ~3 万 | Hobby | $0 |
| SaaS(1万 PV/日,Middleware + API) | ~150 万 | Pro(含 2500 万) | $0 |
| 高并发 API 服务(100万 PV/日) | ~3000 万 | Pro | ~$1.25 |
| AI Chat(10万消息/日) | ~300 万 | Pro | $0 |
对于大多数应用,Edge 请求基本不会产生超额费用。
2.3 Serverless Functions(无服务器函数执行)
| 项目 | Hobby | Pro | Pro 超出价格 |
|---|---|---|---|
| 执行时间 | 100 GB-小时/月 | 1000 GB-小时/月 | $0.0001/GB-秒 |
Serverless 执行时间计算公式:
GB-小时 = 函数运行时间(秒) × 分配内存(GB) / 3600
Next.js API Route(Node.js Runtime)默认分配的内存不同区域和配置可能不同,一般在 1024MB(1GB)左右。
示例估算:
| 场景 | 单次平均耗时 | 每日调用量 | 月均 GB-小时 | 费用 |
|---|---|---|---|---|
| 轻量 API(查询数据库) | 50ms | 1K/天 | ~0.04 | $0 |
| 中等 API(聚合+计算) | 200ms | 10K/天 | ~0.56 | $0 |
| 重任务(图片处理/报表生成) | 3s | 500/天 | ~0.21 | $0 |
| 高频 API(电商下单链路) | 100ms | 100K/天 | ~2.78 | $0 |
绝大多数 SaaS 的 Serverless 执行费几乎为 0(在 1000 GB-小时内)。只有在极端场景(如定时爬虫、批量数据处理)才会接近上限。
2.4 Build Time(构建时间)
| 项目 | Hobby | Pro | Pro 超出价格 |
|---|---|---|---|
| 构建时间 | 6000 分钟/月 | 14,400 分钟/月 | $0.05/分钟 |
构建时间统计的是 Vercel 在云端运行 npm run build 的实际耗时。
示例:
- 一次 Next.js 构建:2-5 分钟(取决于项目大小)
- 每日 10 次部署(频繁 push/PR):30-50 分钟/天
- 月构建时间:900-1500 分钟 → Pro 的 14,400 分钟绰绰有余
什么场景会超出?
- 超大单体项目(百万行代码):单次构建 20-30 分钟
- 大量并行 PR 构建(团队 10 人以上同时提交)
- 构建中集成大量重型编译(Rust/WASM、大规模图片优化)
2.5 其他计费项
| 项目 | Hobby | Pro | 说明 |
|---|---|---|---|
| Web Analytics | 2500 事件/月 | 10万 事件/月(需开启) | 超出后 $2/10万事件 |
| Speed Insights | 100K 次/月 | 1000万 次/月 | 性能采样分析 |
| Image Optimization | 内置但无独立计费 | 同上 | Next.js <Image> 组件自动生成多尺寸 |
| Password Protection | ❌ 不可用 | ✅ | 为预览环境加密码 |
| Preview Comments | ❌ 不可用 | ✅ | PR 上讨论预览部署 |
| SAML SSO | ❌ 不可用 | ❌ | Enterprise 才有 |
2.1 2025 年定价更新追踪
Vercel 的定价并非一成不变。回顾过去几年的调整,可以观察到一条清晰的趋势:免费额度逐步缩紧,增值服务持续拆分,超量计费项的颗粒度越来越细。 作为长期使用 Vercel 的团队,必须了解定价变化的规律,并提前做好迁移和锁定策略。
近期定价变化趋势
Hobby 计划的免费额度持续收紧
- 早期 Hobby 的数据传输曾高达 100GB/月,后来被压缩到 1GB/月。这意味着任何非纯文本的个人项目,都必须时刻关注流量是否接近红线。
- Edge 请求从早期的"几乎不设限"调整为明确的 100 万/月上限,虽然对大多数博客仍够用,但已经开始约束 Hobby 用户在高并发场景下的使用。
- 官方明确在条款中重申:Hobby 仅面向个人学习和非商业项目。这并非法律措辞的空泛声明,Vercel 客服确实会在检测到商业流量后发送升级提醒邮件。
Pro 计划引入更多细分限制
- 过去 Pro 的 1TB 数据传输被视为"无限",但随着客户规模扩大,1TB 在电商和视频类应用中并不充裕。
- Serverless 函数的默认超时时间和内存上限在 Pro 中未公开承诺 SLA,实际表现可能因区域而异。Vercel 越来越倾向于引导高负载用户走向 Enterprise 定制方案。
- Image Optimization 虽未独立计费,但已出现在 Usage Dashboard 中独立统计的趋势,未来可能成为新的收费项。
迁移策略:当定价变化时怎么办?
如果你发现自己的用量即将触及新的限制,建议按以下优先级处理:
- 用量分析先行:先通过 Vercel Dashboard → Usage 确认到底是哪一项在增长。不要凭猜测迁移。
- 架构优化优先:如果是数据传输超量,优先考虑把静态资源拆到 R2 / S3 / Cloudflare(见第四节的优化建议)。升级计划应该作为最后手段,而非第一反应。
- 评估竞品成本:在决定升级 Pro 或 Enterprise 前,用 Render、Railway、Netlify 的定价页做快速对标。有时候迁移成本比升级费用更低。
如何锁定旧定价
Vercel 的定价调整通常不会影响已经订阅的旧用户(grandfathering),但这个惯例并非 100% 保证。以下策略可以帮助你在一定程度上锁定成本:
- 年付优于月付:年付合同通常在你付费的 12 个月内锁定当前价格档位。如果 Vercel 在年中调价,年付用户至少在下一次续费前不受影响。月付用户则可能在任何账单周期被新价格覆盖。
- 尽早开通 Pro:即使当前 Hobby 够用,如果项目明显在增长,提前升级 Pro 可以让你获得 grandfather 保护。Vercel 很少对已付费用户做" rollback “式降价,但 upward adjustment 相对常见。
- 保留用量截图:每月在 Usage Dashboard 截图保存,如果某次计费异常,这些记录是申诉的重要依据。
Vercel Pricing Calculator 的使用方法与局限性
Vercel 官方提供 Pricing Calculator 帮助估算月度成本。Calculator 的使用方法很直观:
- 选择计划(Hobby / Pro / Enterprise)
- 输入预估的团队成员数、PV、数据传输量、Edge 请求数
- 获得本月预估总费用
但 Calculator 有三大局限,不可盲目信任:
- 它假设流量均匀分布:实际流量通常有波峰波谷,突发事件(如产品被 Hacker News 推荐)可能在一天内烧掉半个月的流量。
- 未计入 Web Analytics、Speed Insights 等附加项:如果你的项目开启了 Analytics,Calculator 的默认估算不会自动包含这部分。
- 不反映真实账单周期:Vercel 按 UTC 自然月结算,而你的业务活动可能与日历月错位,导致跨月统计时出现偏差。
建议做法:将 Calculator 的输出作为基准,再额外上浮 30%-50% 作为安全余量预算。同时设置 Spend Cap(见第五节),作为最后一道防线。
三、典型项目月度成本估算
3.1 场景一:个人技术博客
| 项目 | 指标 | 费用 |
|---|---|---|
| 计划 | Hobby | $0 |
| 月 PV | 5000 | — |
| 页面大小 | 200KB | — |
| 数据传输 | ~1GB | 在 1GB 免费额度内 |
| Edge 请求 | ~5万 | 在 100万免费额度内 |
| Serverless | 几乎为 0 | — |
| 月总费用 | $0 |
Hobby 对个人博客完全够用。如果流量增长到日均万级,可以考虑升级 Pro 获得更多安全余量。
3.2 场景二:Next.js SaaS 产品(日活千级)
| 项目 | 指标 | 费用 |
|---|---|---|
| 计划 | Pro(2 人团队) | $36/月(年付 9 折) |
| 月 PV | 30 万 | — |
| 页面大小 | 1MB(JS 重 + 图片) | — |
| 数据传输 | ~300GB | 在 1TB 内 ✅ |
| Edge 请求 | ~150 万 | 在 2500 万内 ✅ |
| Serverless 执行 | ~100 GB-小时 | 在 1000 GB-小时内 ✅ |
| 构建时间 | ~1000 分钟(每日 3-5 次部署) | 在 14,400 内 ✅ |
| Web Analytics | 开启 | 含在 Pro 中 ✅ |
| 月总费用 | ~$40/月 |
这是绝大多数 SaaS 产品的真实成本区间。比自行运维一台云服务器 + 自己配 CI/CD + CDN 要省心得多。
3.3 场景三:高并发 AI Chat 应用(日活万级)
| 项目 | 指标 | 费用 |
|---|---|---|
| 计划 | Pro(3 人团队) | $54/月(年付) |
| 月消息量 | 100 万条 | — |
| 数据传输 | 每条消息平均 5KB → ~5GB/月 | 远低于 1TB ✅ |
| Edge 请求(流式输出) | 300 万/月 | 在 2500 万内 ✅ |
| Serverless 执行(AI 调用) | 每条 2s × 1GB = ~555 GB-小时 | 在 1000 GB-小时内 ✅ |
| 月总费用 | ~$55/月 |
AI 应用的数据传输通常不大(文本为主),但流式响应会产生大量 Edge 请求。Pro 计划的 2500 万次通常足够。
3.4 场景四:电商/图片站(日活万级,图片多)
| 项目 | 指标 | 费用 |
|---|---|---|
| 计划 | Pro(5 人团队) | $90/月 |
| 月 PV | 30 万 | — |
| 平均页面大小 | 5MB(大量商品图) | — |
| 数据传输 | ~1.5TB | 超出 1TB → +$75 |
| Edge 请求 | ~50 万 | 在配额内 ✅ |
| Serverless | ~200 GB-小时 | 在配额内 ✅ |
| 月总费用 | ~$165/月 |
图片/视频站的数据传输很容易超标。必须借助外部存储(S3/R2/阿里云 OSS)+ CDN,否则 Vercel 的 $0.15/GB 会让你肉疼。改为图片走 R2 + Cloudflare,HTML/JS 走 Vercel,可以降 80%+ 成本。
3.5 场景五:企业级多项目(Vercel Enterprise)
Enterprise 没有公开定价,通常为年付 $5 万-$50 万/年不等,取决于:
- 团队人数(通常 50+ 用户起)
- 项目数量(单体/微前端/多站点)
- 数据传输量(企业站通常 TB 级)
- 合规需求(SOC2、ISO、SLA 等级)
- 专属支持级别(TAM、Success Manager、紧急响应时间)
适合:
- 大型电商(如 Shopify 上的 headless 前端)
- SaaS 独角兽(多站点、多团队)
- 金融机构(合规要求严格)
- 对部署 SLA 有硬性要求的组织
3.6 成本对比:自建 vs Vercel vs 竞品
上文的五个场景给出了在 Vercel 体系内的费用估算。但很多团队在做技术选型时,真正想问的是:“同样的事情,我自己搭要花多少钱?换 Railway 或 Render 呢?” 本节以一个中型 SaaS(日活 1 万,月 PV 30 万,5 人团队)为例,做一份全栈 TCO(Total Cost of Ownership,总拥有成本)对比。
场景基准
| 指标 | 数值 |
|---|---|
| 日均活跃用户 | 10,000 |
| 月均 PV | 300,000 |
| 平均页面大小 | 1MB(JS 重 + 少量图片) |
| 月数据传输 | ~300GB |
| Edge 请求 / 月 | ~150 万 |
| Serverless 执行 | ~100 GB-小时 |
| 构建频率 | 每日 3-5 次 |
| 团队人数 | 5 人 |
方案一:Vercel Pro
| 费用项 | 金额/月 |
|---|---|
| Pro 计划(5 人,月付) | $100 |
| 数据传输(300GB < 1TB) | 含在 Pro |
| Edge 请求(150 万 < 2500 万) | 含在 Pro |
| Serverless 执行 | 含在 Pro |
| CI/CD、CDN、SSL、Analytics | 含在 Pro |
| 月度基础设施费用 | $100 |
| DevOps 维护人力 | ~0(全自动) |
| 年度总成本 | ~$1,200 |
方案二:自建 AWS 架构
自己搭建等效服务,常见组合是:
- EC2(应用服务器):t3.medium × 2(主备或双 AZ)
- CloudFront(CDN)
- Lambda(API / 后台任务)
- Route 53(DNS)
- ACM(SSL 证书,免费)
- GitHub Actions / CodeBuild(CI/CD)
- S3(静态资源)
| 费用项 | 金额/月 |
|---|---|
| EC2 t3.medium × 2(按需) | ~$60 |
| CloudFront(300GB 流量) | ~$26 |
| Lambda(轻量 API,100GB-秒级) | ~$5 |
| S3 存储 + 请求 | ~$3 |
| Route 53 | ~$0.50 |
| GitHub Actions(CI/CD) | ~$5(免费额度内) |
| 月度基础设施费用 | ~$99 |
| DevOps 维护时间 | 每月 10-20 小时 |
| DevOps 人力成本(按 $50/小时折算) | ~$500-$1,000 |
| 年度总成本 | $7,200-$13,200 |
看起来 AWS 基础设施费只有 Vercel 的一半不到,但加上人力后,自建的成本是 Vercel 的 6-11 倍。
方案三:Railway / Render
| 费用项 | Railway/月 | Render/月 |
|---|---|---|
| 应用实例(2 vCPU / 4GB RAM) | ~$20 | ~$25 |
| 数据库(Postgres) | ~$15 | ~$15(免费额度可能够) |
| 出网流量(300GB) | 含在计划中 | ~$15(超出免费额度) |
| CI/CD | 含在计划中 | 含在计划中 |
| 月度基础设施费 | ~$35-$50 | ~$40-$55 |
| 人力维护 | 极低(PaaS 托管) | 极低 |
Railway 和 Render 在纯价格上比 Vercel Pro($100/月)便宜,但它们的功能覆盖面和 DX 成熟度略逊于 Vercel:
- Railway:没有原生 Next.js App Router / ISR / Edge 的一等支持,需要自己配缓存和构建逻辑。
- Render:冷启动时间比 Vercel 长,没有 Preview Deployment 的原生集成,CDN 性能和覆盖不如 Vercel Edge Network。
隐性成本:冷启动与用户体验
这是很多人忽略的成本。Vercel 的 Serverless Functions 虽然理论上存在冷启动,但 Next.js + Vercel Edge 的优化已经将其控制在 100ms 内。而自建 AWS Lambda 如果没有 Provisioned Concurrency,冷启动可能达到 1-3 秒。
假设你的 SaaS 有一个"注册转化漏斗”:每 100ms 的延迟提升可以带来约 1% 的转化率提升(行业公认经验值)。如果冷启动导致页面首屏延迟增加 500ms,对于日活 1 万、转化率 3% 的产品:
- 每天潜在流失用户:~150 人
- 若 LTV 为 $20,每月隐性的收入损失 ≈ $3,000
这个数字远远超过了任何基础设施费用的差距。这也是 Vercel 敢定价比纯 IaaS 更高的底气之一:它把性能优化做成了开箱即用的默认配置。
TCO 对比总结
| 维度 | Vercel Pro | 自建 AWS | Railway / Render |
|---|---|---|---|
| 月度基础设施费 | $100 | ~$99 | $35-$55 |
| 月度人力成本 | $0(内置) | ~$750 | ~$50(少量配置) |
| 隐性性能成本 | 极低 | 中等(需自行调优) | 中等 |
| 开发体验(DX) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 上线速度 | 分钟级 | 天级 | 小时级 |
| 综合年度 TCO | ~$1,200 | ~$10,000+ | ~$1,500 |
结论:对于日活万级的中型 SaaS,Vercel Pro 的综合 TCO 极具竞争力。只有当团队内已经有专职 DevOps、且对延迟不敏感时,自建 AWS 才可能在长周期内持平。Railway/Render 适合预算紧张、且能接受一定功能妥协的项目。
四、账单优化建议
4.1 避免数据传输爆炸
这是优化空间最大的计费项。
策略 1:图片/视频/大文件从 Vercel 剥离
不要这样:
/public/images/hero.jpg → 走 Vercel CDN → 计流量费
应该这样:
https://cdn.yourdomain.com/images/hero.jpg → 走 Cloudflare/R2/阿里云 CDN → 免费/极便宜
在 Next.js 中,next.config.js 配置 external image domain:
module.exports = {
images: {
remotePatterns: [
{ protocol: 'https', hostname: 'cdn.yourdomain.com' },
{ protocol: 'https', hostname: 'your-bucket.r2.cloudflarestorage.com' },
],
},
};
策略 2:使用 Next.js Image 组件的远程加载
import Image from 'next/image';
// 图片从外部 CDN 加载,不走 Vercel 带宽
<Image
src="https://cdn.yourdomain.com/hero.jpg"
alt="Hero"
width={1200}
height={600}
priority
/>
策略 3:开启 Vercel Edge 缓存
在 API Route 中设置正确的 Cache-Control:
// edge/api/data.ts
export const config = { runtime: 'edge' };
export default async function handler(req) {
const data = await fetchSomeData();
return new Response(JSON.stringify(data), {
headers: {
'Content-Type': 'application/json',
'Cache-Control': 'public, s-maxage=60, stale-while-revalidate=300',
},
});
}
这样 Cloudflare 或 Vercel Edge 会缓存响应,重复请求不再执行函数。
策略 4:纯静态资源用 Cloudflare Pages 或直接 R2
如果你的项目有大量纯静态文件(文档 PDF、下载包),不要放 public/ 目录,直接上传到 Cloudflare R2:
# 使用 wrangler 上传
wrangler r2 object put bucket-name/assets/guide.pdf --file ./guide.pdf
R2 的存储和出网流量有免费额度,即使有费用也远低于 Vercel。
4.2 减少 Edge Function 调用
策略 1:合理使用 Middleware
Middleware 在每页请求时都会执行(包括 _next/static/* 资源请求也会被匹配),过度复杂的 Middleware 会消耗 Edge 执行时间但不一定计入请求次数。关键是减少不必要的逻辑:
// middleware.ts — 只匹配需要的页面,排除静态资源
export const config = {
matcher: [
'/((?!api|_next/static|_next/image|favicon.ico|robots.txt|sitemap.xml).*)',
],
};
策略 2:把重计算逻辑放到 Serverless Functions
Edge Functions 适合轻量逻辑(路由、A/B 测试、认证检查),如果涉及数据库查询或大计算量,放到 Node.js Serverless Functions,再设置 s-maxage 让结果缓存。
4.3 控制构建时间
策略 1:优化构建速度
# next.config.js — 启用 SWC 并关闭不必要的分析
module.exports = {
swcMinify: true,
eslint: { ignoreDuringBuilds: true }, // CI 里单独跑 ESLint
typescript: { ignoreBuildErrors: false }, // 保持启用,但不要等待类型检查太久
};
策略 2:使用 turbo 缓存
Vercel 支持 Turborepo 远程缓存。对于 monorepo 项目,设置 TURBO_TOKEN 和 TURBO_TEAM 环境变量后,未变化的子包会直接命中缓存,大幅缩短构建时间。
策略 3:减少不必要的构建
在 Vercel Dashboard → Git → Ignored Build Step 中设置忽略条件:
# 只在 src/ 或 packages/ 变更时触发构建
if git diff --quiet HEAD^ HEAD -- src/ packages/; then
exit 0 # 忽略构建
fi
4.4 监控用量
Vercel Dashboard → Usage 是核心监控入口,应每周检查一次:
- 关注 “Data Transfer” 曲线,如果出现异常上升,检查是否有盗链或爬虫大量访问
- 关注 “Edge Requests”,如果突然飙升,检查是否有 Bot 攻击或页面循环引用
- 在 Cloudflare Dashboard 同步查看流量分布,确认 “Cache Hit Ratio” 在 80% 以上
4.5 团队级成本治理
当组织内有多个项目、多个团队共用 Vercel 时,单靠个人的用量监控是不够的。你需要建立一套组织级的成本治理机制,把云支出纳入可管理的轨道。
设置组织预算与 Spend Cap
Vercel Teams 本身提供基础的预算管理功能:
- Dashboard → Team Settings → Usage → Budget:可以为整个 Team 设置月度预算上限。
- Spend Cap:这是最关键的功能。当总费用(含超量计费)达到设定的 Cap 值时,Vercel 会停止服务的计量计费。注意:Spend Cap 不会立即断开用户访问,但超量部分的资源会被限制。
Spend Cap 配置最佳实践:
- 初始设置为预期月均费用的 2 倍(给突发流量留余量)
- 三个月后根据实际账单调整为 1.5 倍
- 大促/活动前临时上调,活动结束后恢复
- 绝对不要设置无 Cap,除非你的业务已经大到 $2,000+/月 且进入 Enterprise 谈判阶段
多项目的成本分摊策略
如果你的组织在一个 Vercel Team 下维护了多个项目(如官网、博客、SaaS 主站、文档站),建议按以下方式分摊和追踪成本:
- 项目级隔离:为每个业务线创建独立的 Vercel Project。虽然它们共用同一个 Team 的计费池,但 Usage Dashboard 支持按项目筛选,便于归因。
- 环境级标记:通过环境变量为不同环境的构建打上标签,例如
COST_CENTER=marketing、COST_CENTER=product。虽然 Vercel 没有原生成本标签系统,但你可以在内部的费用分摊表中手动映射。 - 独立 Team 隔离:如果不同业务线的预算审批流程完全不同(例如市场部和技术部各自有预算),建议拆分到独立的 Vercel Teams。虽然每个 Team 的基础费用是重复的($20/人/月),但避免了预算纠缠和审批摩擦。
成本异常告警机制
Vercel 本身不提供自动告警(截至 2025 年),但你可以通过以下方式搭建告警体系:
方案 1:用量周报(推荐)
每周一通过 Vercel REST API 拉取上周各项目的用量数据:
# 需要 Vercel Access Token
curl -H "Authorization: Bearer $VERCEL_TOKEN" \
"https://api.vercel.com/v2/teams/{team_id}/projects/{project_id}/usage" \
--gzip
然后用 Python/Node.js 脚本对比上周数据,如果增长率超过 50%,自动发送到 Slack 或企业微信群。
方案 2:账单日自动对比
在每月账单生成日(Vercel 通常是月初),用脚本提取上月的 total cost,与上上月的 cost 做环比。如果增幅超过 200%,立即触发告警。
一个简单的告警阈值参考:
| 指标 | 告警阈值 | 说明 |
|---|---|---|
| 数据传输周环比增长 | > 100% | 可能被盗链或页面 size 暴涨 |
| Edge 请求突增 | > 200% | 可能是 Bot 攻击 |
| Serverless 执行时间突增 | > 300% | 可能有死循环或 N+1 查询 |
| 构建时间周环比增长 | > 150% | 项目依赖膨胀或构建缓存失效 |
月度成本审查会议清单
对于投入在生产环境的团队,建议每月举行一次 15 分钟的"云成本站会":
- 上月总费用 vs 预算,偏差原因
- 各项目费用占比,是否有异常波动
- 数据传输 Top 3 来源,是否有优化空间
- Edge 请求和 Serverless 用量趋势,是否需要架构调整
- 团队成员变动:是否有人加入/离开,席位费用是否同步调整
- 下月预期费用(是否有大促、发布、营销活动)
- Spend Cap 是否需要调整
这个会议不需要很多人参加,Team Lead + 1 名 Developer 即可。关键是养成定期审视云支出的习惯,而不是等账单爆炸后才被动反应。
五、升级技巧与隐藏规则
5.1 年付 vs 月付
- Vercel Pro 年付约为 9 折(即 $216/年 = $18/月)
- 月付更灵活,年付更便宜。不确定用多久先选月付,稳定后用年付
5.2 邀请 Guest vs 付费成员
- Hobby 计划可以邀请 Guest(外部协作者,只能访问特定项目)
- Pro 计划每个付费成员都可以访问组织下的所有项目
- 小团队技巧:核心开发 2-3 人付费用 Pro,其他成员用 Guest 访问,减少人数成本
5.3 多账号组合(不推荐但可行)
有些开发者用多个人账号的 Hobby 计划分摊不同项目,这违反 Vercel 的服务条款。被检测到可能导致账号封禁。正式项目请直接购买 Pro。
5.4 教育/开源折扣
Vercel 对教育机构和非营利组织提供折扣:
- 申请 Vercel for Education 可获 Pro 的免费额度
- 开源项目可以申请 Vercel Sponsorship,获得 Pro 功能免费使用
5.5 Enterprise 谈判指南
如果你的团队月账单已经超过 $2,000,或者团队规模达到 50+ 人且需要 SSO、SLA 和专属支持,是时候考虑 Enterprise 了。与大多数 SaaS 不同,Vercel 的 Enterprise 定价不透明,需要通过 Sales 团队定制报价。以下是谈判的核心策略和注意事项。
如何联系 Vercel Sales
- 在 Vercel Dashboard 中点击"Contact Sales",或直接访问 vercel.com/contact
- 填写公司信息、团队规模、项目数量、当前月用量
- 通常在 1-3 个工作日内会有 AE(Account Executive)联系你
谈判前的数据准备:
- 过去 3-6 个月的 Usage Dashboard 截图(特别是 Data Transfer、Edge Requests、Build Time)
- 团队当前和未来 12 个月的人员增长计划
- 合规需求清单(SOC2 Type 2、ISO 27001、GDPR、HIPAA 等)
- SLA 要求(99.9% 还是 99.99%)
- 竞品报价(如果有 Netlify Enterprise 或 Cloudflare Enterprise 的报价,可以作为谈判筹码)
Enterprise 报价的构成要素
Vercel Enterprise 的报价通常由以下几个模块组成:
| 模块 | 说明 | 谈判空间 |
|---|---|---|
| 用户席位数 | 需要 Pro/Enterprise 功能的成员数 | 可以按实际活跃用户计费,而非总成员 |
| 数据传输承诺 | 承诺的月流量(如 5TB、10TB、50TB) | 承诺量越大,单价越低 |
| Edge 请求承诺 | 承诺的月均 Edge 请求数 | 可以与数据传输打包谈判 |
| Serverless 执行配额 | GB-小时或 vCPU-小时承诺 | 通常按实际用量弹性计费 |
| SLA 等级 | 99.9% / 99.95% / 99.99% | 更高 SLA = 更高溢价 |
| 专属支持级别 | TAM / Success Manager / 紧急响应时间 | 可以降配到 Email + Slack |
| 合规认证包 | SOC2、ISO、GDPR 审计报告 | 通常包含在基础包内 |
| 上线护航(Onboarding) | 专属工程师协助迁移 | 通常前 3 个月免费 |
Committed Use Discount(承诺使用量折扣)谈判策略
Enterprise 计价中最大的优惠空间来自 CUD:
- 月度承诺:承诺每月至少消费 $X,获得 Y% 折扣。适合用量稳定的团队。
- 年度承诺:承诺 12 个月总消费不低于 $X,获得更高折扣(通常 15%-25%)。适合对下一年增长有明确预期的团队。
- 阶梯定价:承诺量分档(如 0-10TB、10-50TB、50TB+),每档单价不同。适合用量快速增长但不确定终值的团队。
谈判技巧:
- 不要接受第一个报价:Vercel Sales 的第一轮报价通常有 20-30% 的下浮空间。
- 用竞品施压:如果你有 Cloudflare Pages Enterprise 或 Netlify Enterprise 的报价,明确告诉 AE。Vercel 在 Enterprise 层面的竞争非常激烈,愿意匹配或超越竞品条件。
- 分阶段承诺:如果对未来用量不确定,承诺一个较低的起步额度,并约定 6 个月后重新评估。避免在用量未验证前签下大额的年度承诺。
- 要求"True-up"条款:如果实际用量超出承诺量,超量部分是否按同等单价计费,还是按更高的惩罚性单价计费。争取让超量部分也享受承诺单价。
Enterprise 合同关键条款审查清单
签署 Enterprise 合同前,务必让法务或技术负责人审查以下条款:
- 自动续约:合同是否默认自动续约?提前多久可以发出不续约通知?
- 价格调整权:Vercel 是否保留在合同期内单方面调价 10%-15% 的权利?
- 用量超额处理:超出承诺量后,是按继续滚动计费还是立即限制服务?
- 数据归属与迁移:合同终止后,数据保留期多久?能否免费导出?
- SLA 赔偿:如果可用性未达标,赔偿方式是账单折扣还是现金退还?有上限吗?
- 不可抗力排除:哪些情况(DDOS、第三方云故障)被排除在 SLA 之外?
- 最小承诺的灵活性:如果团队裁员或项目下线,承诺量是否可以按比例下调?
- 专属支持响应时间:P0(生产宕机)的 SLA 响应时间是多少分钟?是"首次回应"还是"问题解决"?
什么时候才应该真正购买 Enterprise?
Enterprise 不是"大号的 Pro"。以下情况证明你确实需要它:
- 团队人数 > 50,且需要 SAML SSO 和细粒度角色权限(RBAC)
- 月账单已经在 $3,000+,CUD 折扣能让总成本低于 Pro 的按量叠加
- 客户合同中要求你的托管平台具备 SOC2 Type 2 或 ISO 27001 认证
- 无法接受"支持工单排队",需要专属 Slack Channel 和 15 分钟内的 P0 响应
- 需要自定义部署区域(如仅限中国区 Edge Node)或专属容量预留
如果你的月账单只有 $500-$1,500,即使团队人数到了 30 人,先优化架构降低用量,再考虑 Enterprise。过早购买 Enterprise 的很多企业,最终发现 80% 的 Enterprise 功能从未被启用。
六、常见问题(FAQ)
Vercel 的 $20/月是按项目还是按账号?
按团队组织中的成员数。创建 Vercel Team(组织)后,每个加入团队的成员都按 $20/月计费。如果只用个人账号(Personal Account)绑定了 Pro,那就是 $20/月(单人)。
超出配额后 Vercel 会停止服务还是继续计费?
默认继续计费。Vercel 不会在配额用完后立即停止服务,而是继续按超出的用量收费。如果你想设置硬上限,需要在 Dashboard → Usage → Budget 中配置 Spend Cap,达到设定金额后停止服务(避免账单爆炸)。
⚠️ 强烈建议所有 Pro 用户在项目上线第一天就设置 Spend Cap!
Vercel 的账单是预付还是后付?
后付(月结)。每月结束后根据上月的实际用量生成账单,从绑定的信用卡扣款。如果有超量费用,次月账单会一并结算。
为什么我的账单比预期高很多?
排查顺序:
- 检查 [Dashboard → Usage] 看哪个计费项超了
- 最常见原因:数据传输超出 1TB($0.15/GB,1TB 内免费)
- 检查是否有大文件在
public/或未经优化的图片被大量访问 - 用 Cloudflare Dashboard 检查 “Top Traffic Sources”,确定是否有盗链/Bot
- 检查团队人数:是否不小心邀请了不需要的成员到 Pro Team
我可以只升级 Data Transfer 额度而不买 Pro 吗?
不可以。Vercel 的计费模型是计划绑定,无法单独购买某项额度。比如 Hobby 的 1GB 流量用完就只能升级 Pro(获得 1TB),或者减少流量消耗。
Enterprise 值得买吗?
如果你满足以下任一条件,值得联系 Vercel Sales:
- 团队 > 30 人,需要 SSO/SAML 和角色权限管理
- 对 SLA 有硬性要求(如 99.99% 可用性)
- 需要 SOC2/ISO 审计报告给大客户
- 月账单已经在 $2000+,Enterprise 的量大折扣可能比 Pro 更划算
Hobby 项目被 Vercel 要求升级的真实案例
2024 年,一位独立开发者在 Reddit 分享了自己的经历:他用 Hobby 计划部署了一个开源的 AI 图片生成工具,由于项目在 Product Hunt 上获得推荐,单日流量暴涨至 50 万 PV。三天后,他收到了 Vercel 的邮件:
“Your usage exceeds the intended scope of the Hobby plan. Please upgrade to Pro within 7 days or your deployments may be paused.”
这位开发者在升级 Pro 后查看账单,发现那三天内数据传输量达到了 1.2TB,按 Pro 的超量计费会被收取约 $30,但 Hobby 的 1GB 免费额度根本无法覆盖。Vercel 的做法实际上避免了用户产生巨额账单后才得知。
经验教训:
- Hobby 的流量限制不是摆设,商业流量一旦暴增就会触发审查
- 即使是"免费版开源工具",如果被大量商业用户使用,也可能被认定为商业用途
- 建议在项目主页加上"Powered by Vercel"标识但绝不代表获得了无限免费额度
- 预期到流量可能暴增的项目,应该在上线前就在 Dashboard 中设置好升级路径和 Spend Cap
如何追踪具体页面/路由的资源消耗?
Vercel Dashboard → Usage 只提供项目级的聚合数据,无法直接看到"哪个页面消耗了最多流量"。要追踪路由级消耗,需要借助以下工具:
方案 1:使用 Vercel Analytics
启用 Vercel Analytics 后,可以在 Dashboard 中看到各页面的访问量、加载性能以及大致的资源消耗。Pro 计划包含 10 万事件/月的免费额度,对于追踪路由级数据基本够用。超出后 $2/10 万事件,性价比尚可。
方案 2:日志分析
在 Vercel Functions 中使用自定义日志,记录每个请求的 URL + 响应大小 + 执行时间:
export default function handler(req, res) {
const start = Date.now();
// ... 业务逻辑
const duration = Date.now() - start;
const responseSize = JSON.stringify(data).length;
console.log(JSON.stringify({
route: req.url,
method: req.method,
duration,
responseSize,
timestamp: new Date().toISOString(),
}));
}
将日志导入 Datadog / Loki / CloudWatch 后,按 route 字段聚合,就能得出哪个端点消耗最多资源。
方案 3:Cloudflare 日志
如果你的域名解析经过 Cloudflare,可以在 Cloudflare Analytics 中按 URL 路径查看请求数和带宽消耗。这是目前最省心的路由级监控方案。
Vercel Analytics 的额外费用详解
Vercel Analytics 是一个独立的附加服务,在 Pro 中已经包含一定额度,但超出后会产生额外费用:
| 指标 | Hobby 额度 | Pro 额度 | 超出价格 |
|---|---|---|---|
| Analytics Events | 2,500/月 | 100,000/月 | $2/100,000 事件 |
什么算作一个"Event"?
- 页面浏览(Page View)
- Web Vitals 采样(每次页面加载时 LCP、FID、CLS 的采样上报)
- 自定义事件(如果你手动调用
va.track())
是否值得开启?
- 对于 SEO 敏感站点:值得。Vercel Analytics 提供比 Google Analytics 更精确的 Core Web Vitals 数据。
- 对于内部工具:不值得。内部工具的访问量通常不需要精细的性能采样。
- 成本控制技巧:在
next.config.js中调整采样率,降低事件上报频率。
关闭方法:Dashboard → Analytics → 选择项目 → Disable。但已上报的事件数据会被保留,关闭后只是停止新采样。
Pro 计划取消/降级策略
如果你决定不再使用 Vercel Pro,或想从 Pro 降级回 Hobby,需要注意以下规则:
取消路径:
- Dashboard → Team Settings → Billing → Cancel Plan
- 取消后,当前付费周期的剩余时间不会退款,但下一个周期不再计费
- 取消后,项目不会立即被删除,但如果资源超出 Hobby 额度,功能会被限制
降级回 Hobby 的注意事项:
- 如果你在 Pro 期间开启了 Password Protection、Preview Comments 等功能,降级后这些功能会被禁用,相关配置不会丢失但不再生效
- Pro 期间生成的 Build Cache 可能失效,降级后首次构建时间会变长
- Analytics Event 额度会从 10 万降至 2,500/月,之前采集的数据仍可查看,但不再采集新事件
数据备份:
在降级前,建议导出以下数据:
- Deployment 历史(虽然项目保留,但旧部署可能被清理)
- Environment Variables(建议提前复制到本地密码管理器)
- Analytics 数据(Dashboard 中的 Web Vitals 报告截图保存)
临时降级策略:
如果你的项目只是季节性空闲(例如活动网站只在季度末运行),可以选择 Pro 月付,在淡季取消,旺季重新开通。虽然会有几天的不便,但对于预算紧张的小团队来说是一种务实的灵活策略。
相关阅读
- Vercel 详解:前端与 AI 应用的一站式云平台
- 用 Vercel 部署 Next.js + Postgres SaaS 实战
- Vercel 国内访问优化指南
- Vercel 与 Netlify、Render、Railway、Cloudflare Pages 对比
- Vercel Edge Functions 深度指南
- Vercel 部署故障排查
- Vercel 专题导航
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。