去年十月,一位客户打电话给我,有点慌张。他在前一个月推出了一个 Next.js 营销网站,流量增加了,Vercel 账单从 $0 跳到了 $94。没有警告。没有逐步上升。只是一个他没有预料到的数字。问题是,什么都没出错。他没有配置错误。这个平台正在按照设计做的事情。
那次对话是我写这篇文章的原因。Vercel 是真正出色的基础设施,我这么说是基于 Seahawk 历史上可能部署了 400 多个项目的经验。但定价结构中有陷阱,会困住那些没有读细则、或读了但没有计算实际数字的人。让我为你做这个计算。
爱好计划:免费直到它不再免费
Vercel 的免费层级叫做 Hobby,真的很有用。对于个人项目、作品集或低流量博客,它能处理一切。你每月获得 100GB 的带宽、6,000 分钟的 Edge Middleware 调用和 100GB 小时的 Serverless 函数执行。这些数字听起来很大。一旦你运行真实的东西,就不是这样了。Hobby, is legitimately useful. For a personal project, a portfolio, or a low-traffic blog, it'll handle everything. You get 100GB of bandwidth per month, 6,000 minutes of Edge Middleware invocations, and 100GB-hours of serverless function execution. Those numbers sound enormous. They're not, once you're running something real.
以下是真正消耗你的 Hobby 额度的东西:
- 无服务器函数时长。每次函数调用都会消耗你的 GB 小时数。一个数据密集的 API 路由,运行 3 秒钟,使用 512MB 内存,每次调用消耗 0.0004 GB 小时。听起来微不足道。但每天 10,000 个请求,那就是 1.2 GB 小时。你的配额是 100。还有空间。但加上三四个这样的路由,到月中就用完了。 Each function call counts against your GB-hours. A data-heavy API route that runs for 3 seconds and uses 512MB of memory burns through 0.0004 GB-hours per invocation. Sounds trivial. At 10,000 requests a day, that's 1.2 GB-hours. Your allowance is 100. You've got room. But stack three or four such routes and you're gone by mid-month.
- 带宽。如果你要提供任何类型的媒体,100GB 会很快用完。一个有产品图片、视频预览,甚至合理丰富的作品集的网站,在两周的正常流量下就能达到这个限制。 If you're serving any kind of media, 100GB goes fast. A site with product images, video previews, or even a reasonably rich portfolio can hit that in two weeks of decent traffic.
- 构建分钟数。每月 6,000 构建分钟。一个有大量静态页面的复杂 Next.js 14 应用程序每次构建可能需要 4-8 分钟。如果你频繁部署,这会很快累积。 6,000 build minutes per month. A complex Next.js 14 app with a lot of static pages can take 4-8 minutes per build. If you're deploying frequently, that adds up.
Hobby 最大的限制是这个:只能用于个人非商业用途。这不只是合同细则的填充内容。如果你在构建客户网站,即使很小的项目,你在技术上也违反了服务条款。我认识一些机构,在 Hobby 账户上运行客户项目好几个月都没有问题。但我也认识一个被暂停部署的。不值得冒这个风险。biggest restriction on Hobby is this: it's for personal, non-commercial use. That's not just fine-print padding. If you're building client sites, even small ones, you're technically violating the terms of service. I know agencies that have run client projects on Hobby accounts for months without issue. I also know one that got their deployments suspended. Not worth the risk.
Pro 计划:$20/月,然后事情变复杂了
Pro 计划每个成员每月起价 $20。一个独自工作的开发者支付 $20。四人团队仅座位费就要 $80。这是基础费用,还算合理。
但 Vercel 的定价在这些基础限制之上是基于消费的。Pro 层级给你:
- 1TB 带宽(相比 Hobby 的 100GB)
- 1,000 GB 小时的无服务器函数执行时间
- 24,000 构建分钟
超出这些包含的额度之外,您需要支付超额费用。带宽超额为每GB $0.15。无服务器执行超额为每GB小时 $0.18。构建分钟超额为每分钟 $0.01。Bandwidth overages run at $0.15 per GB. Serverless execution overages are $0.18 per GB-hour. Build minute overages are $0.01 per minute.
真实中等规模项目是什么样的
去年,Seahawk 为一家英国时尚客户构建了 Next.js 13 电商前端。单个开发者账户,因此每月座位费为 $20。该网站月访问量约 80,000,产品目录通过 API 路由从无头 Shopify 实例提供,ISR(增量静态再生成)在约 3,000 个产品页面上运行。
平均月账单:$47。$47.
明细如下:座位费 $20,带宽超额约 $18(他们在我们推动他们使用 Cloudinary 之前在提供大量高分辨率图像),函数执行费约 $9。一旦我们将图像传输转移到 Cloudinary 并为 API 路由添加了一些缓存逻辑,费用降至 $26/月。小小的架构改变,账单有意义的变化。
这就是 Vercel 成本的特点。它们不是固定的。它们响应您构建内容的质量。
Edge Functions 变量
如果您使用 Vercel Edge Functions(与无服务器函数不同),定价方式不同。Edge 在 V8 隔离模型而非 Lambda 风格容器上运行,因此每次调用更快更便宜。Pro 版本每月提供 500,000 次 edge function 调用。之后,每百万次调用 $2。Vercel Edge Functions (not the same as serverless functions), pricing works differently. Edge runs on the V8 isolate model rather than Lambda-style containers, so it's faster and cheaper per invocation. You get 500,000 edge function invocations per month on Pro. After that, it's $2 per million.
对于大多数团队,edge function 成本可以忽略不计。危险的是无服务器。始终检查您的函数使用哪个运行时。
图像优化:隐形线项
这个坑能捉住几乎所有人。Vercel内置的Next.js图片优化(<Image />组件调用/_next/image端点)会消耗你包含的快速源站传输额度,在某些配置下还会额外产生费用。<Image /> component hitting the /_next/image endpoint) counts against your included fast origin transfer and, in some configurations, generates its own usage charges.
Pro计划下,你每月获得5,000张源图片和50,000次优化额度。每张图片的每个新尺寸组合都会消耗一次额度。一个有200个产品的产品网格,在三个断点处各渲染一次,首次加载就会产生600次优化。缓存命中不收费。但冷部署或频繁更新的商品目录会很快耗尽额度。
解决方案很简单:在Vercel优化器前面放置一个CDN或图片服务,比如Cloudinary、Imgix,甚至Bunny.net。或者配置自定义图片加载器,完全绕过Vercel的管道。我现在在每个新Next.js项目上都默认这样设置。
团队账户和按座位收费的陷阱
这是代理商会吃亏的地方。Pro是每个成员每月$20。如果你把客户加入Vercel团队让他们查看部署预览、管理环境变量和检查分析,他们每个人都占一个座位。
六个客户联系人加上你的四个内部开发者:还没产生任何超额使用费就已经是$200/月。
大多数人的变通办法是只在团队内保留内部成员,手动与客户共享部署预览链接。你会失去实时协作的便利,但能省不少钱。
有些代理商给每个客户各开一个Vercel Pro账户。那就是每个客户$20/月,账单寄给客户。其实更清楚。每个客户拥有自己的基础设施,你只是部署者。我们在Seahawk在2022年左右转向了这个模式,从客户交接的角度来说也更省事。
什么时候选择Enterprise才划算?
Vercel的Enterprise计划没有公开价格。你得和销售团队谈。根据我参与过的一些讨论和看过的账单,团队通常在Pro账户加超额费用达到$1,500-$3,000/月左右时才会进入Enterprise谈判,到那时Vercel通常会协商一份承诺消费合同,最终的单位成本会更低。 has no public pricing. You talk to sales. Based on conversations I've had and bills I've seen, teams tend to hit the Enterprise conversation at around $1,500-$3,000/month on Pro with overages, where Vercel will often negotiate a committed-spend contract that ends up cheaper per unit.
企业版增加:
- SSO 和 SAML
- 自定义支出限制和承诺使用定价
- SLA 保证(99.99% 正常运行时间承诺)
- 更高级别的 DDoS 缓解
- 高级可观测性集成
对于大多数构建客户端网站的代理商来说,企业版过度了。需要它的客户通常是运行高流量消费者应用、具有严格安全要求的内部 SaaS 工具,或任何 10 分钟的宕机都会直接影响收入的场景。
如果你持续在 Pro 上花费超过 $500/月,且不预期工作量会下降,那么花费 30 分钟进行销售电话是值得的。
Vercel 在实际水平上的比较
我不会逐一详细分析每个替代方案(那是单独的文章),但这是诚实的背景。
Netlify 的定价结构类似:免费套餐,然后是 $19/月 Pro(按座位计费),各自有带宽和函数超额费用。根据我的经验,Netlify 在较简单的静态网站上略便宜一些,在复杂的无服务器工作负载上略贵一些。开发者体验对于 Next.js 来说也只是略低于 Vercel,这很合理,因为 Vercel 开发了 Next.js。 is structured similarly: free tier, then $19/month Pro per seat, with its own bandwidth and function overages. In my experience, Netlify ends up slightly cheaper for simpler static sites and slightly more expensive for complex serverless workloads. The developer experience is also just a notch below Vercel's for Next.js specifically, which makes sense given that Vercel built Next.js.
Railway、Render 和 Fly.io 按纯计算能力定价,而不是按座位。对于需要持久进程的服务端应用,通常便宜得多。但它们并不是 Next.js 前端的 Vercel 替代品。不同的工具。
如果成本是你的主要考虑,并且你愿意接受更多配置,Cloudflare Pages 的性价比非常出众。无限带宽、Workers 无服务器、真正可在生产环境使用的免费套餐。通过 Cloudflare 适配器的 Next.js 兼容性还不错但并不完美。我经历过顺利部署也经历过棘手的边界情况 bug。值得了解。Cloudflare Pages is remarkable value. Unlimited bandwidth, Workers for serverless, free tier that's genuinely usable in production. The Next.js compatibility via the Cloudflare adapter is decent but not perfect. I've had smooth deployments and I've had gnarly edge case bugs. Worth knowing about.
降低实际账单的战术
以下是基于真实项目而非阅读文档能带来实际改变的方法:
- 在 CDN 层积极缓存。Vercel 内置的 CDN 很好,但如果你重复提供相同的无服务器响应,你就是在按调用次数付费。正确设置缓存头。即使是高流量路由上 60 秒的缓存也能大幅降低成本。 Vercel's built-in CDN is good, but if you're serving the same serverless response repeatedly, you're paying per invocation. Set cache headers properly. Even a 60-second cache on a high-traffic route can cut costs dramatically.
- 将静态资源移出 Vercel。使用 S3 + CloudFront、Bunny.net 或 R2(Cloudflare 的存储,没有出站费)来存储图像、视频和其他大型资源。带宽超额费用 $0.15/GB 会累加。Bunny.net 的欧洲带宽费用约 $0.01/GB。 S3 + CloudFront, Bunny.net, or R2 (Cloudflare's storage, which has no egress fees) for images, videos, and other large assets. Bandwidth overage at $0.15/GB adds up. Bunny.net charges around $0.01/GB for European bandwidth.
- 审计无服务器函数地域。在某些配置中,函数默认在所有地域运行。如果你的用户在欧洲,数据库在 eu-west-1,通过 us-east-1 路由函数会增加延迟和调用次数。将函数固定在正确的地域。 Functions run in all regions by default in some configurations. If your users are in Europe and your database is in eu-west-1, routing functions through us-east-1 adds latency and invocations. Pin your functions to the right region.
- 对轻量逻辑使用边界运行时。身份验证令牌验证、头部操作、重定向。这些在边界运行比在无服务器上更快更便宜。 Auth token validation, header manipulation, redirects. These are faster and cheaper on edge than on serverless.
- 每季度审查你的团队座位。每月 $20 的闲置座位纯粹是浪费。 Stale seats at $20/month each are just waste.
常见问题
Vercel 对商业项目是否免费?
不免费。Hobby 计划明确禁止商业用途。如果你在为付费客户构建产品,或者构建能产生收入的产品,你需要使用 Pro 计划。这不是模糊的灰色地带;Vercel 的服务条款对此很明确。
如果我在 Pro 计划上超过了限额会怎样?
Vercel 不会切断你的服务。它会按照定价页面上列出的费率向你收取超额费用。带宽是 $0.15/GB,无服务器执行是 $0.18/GB-小时。默认情况下没有硬上限,但你可以在计费设置中配置支出限制以获取警报或停止部署。我总是在新项目上设置支出警报。发现一个月后才知道账单这种情况是可以避免的。
我能在 Vercel Pro 上运行高流量的 Next.js 应用而不升级到 Enterprise 吗?
可以,绝对可以。决定因素通常不是流量量,而是架构。一个缓存充分、边缘优化的 Next.js 应用,配合适当的 ISR 和外部图像交付,每月可以在 Pro 上处理数百万访客,费用仅为 $30-60/月。一个构建不当的应用,充斥着频繁的无服务器函数调用且没有缓存,成本会是这个的五倍,但流量只有四分之一。
$20/月的 Pro 计划是按项目还是按团队收费?
按团队中的成员。你为 Vercel 团队中的每个成员支付 $20,该团队可以拥有无限个项目。如果你是独立开发者,无论你部署多少个项目,你每月都要支付 $20。
Vercel 对预览部署收费吗?
预览部署本身不会产生单独费用。但它们会消耗构建分钟数,预览测试期间调用的任何Serverless函数都会计入你的执行限制。在一个有大量拉取请求的繁忙团队中,构建分钟数可能会成为一个真实的成本项目。
---
坦诚的总结:Vercel是很好的基础设施,尤其对Next.js来说,在开发体验上很难有对手。但它不是按固定费率收费的服务,如果你在为客户提供服务或扩展产品,你需要在上线前而不是上线后对使用情况建模。运行你预期的函数调用、带宽、图像优化。预留20%的缓冲空间。然后决定Pro是否值得,或者架构是否需要先调整。
那个打电话给我惊慌失措的客户?他仍然在用Vercel。现在账单是31美元/月。物有所值。
