一、成本意识觉醒:为什么无服务器不等于免费?理解按需付费的底层逻辑

1.1 那个让我惊醒的账单

我记得刚接触无服务器架构那会儿,心里想的是:「太好了,终于不用管服务器了!」

结果呢?第一个月账单下来,我差点从椅子上跳起来。不是几块钱,是几千美金。

为什么会这样?说白了,我把「无服务器」和「免费」划等号了。这是个天大的误会。

无服务器(Serverless)不是没有服务器,而是你不用管服务器。服务器还在跑,只是换成了云厂商在管。你想想看,云厂商又不是做慈善的,他们帮你管服务器,肯定得收费。

1.2 按需付费的底层逻辑

无服务器的计费模型,核心就四个字:按需付费

但「按需」到底按的是什么?我拆开来讲:

  • 计算时间:你的函数跑了多久,就付多少钱。精确到毫秒。
  • 调用次数:每触发一次,计一次费。百万次调用和十次调用,价格天差地别。
  • 资源分配:你给函数分配了多少内存、多少CPU,直接决定单价。
  • 数据传输:进出的流量,尤其是出站流量,往往是隐藏的大头。

核心公式
总费用 = 调用次数 × 每次执行时间 × 资源单价 + 数据传输费 + 其他附加服务费

我在项目中遇到过一位客户,他把一个定时任务写成了无服务器函数,每5秒跑一次。一个月下来,调用次数超过50万次。账单出来的时候,他问我:「不是说无服务器很便宜吗?」

我问他:「你算过每5秒跑一次,一个月要跑多少次吗?」

他沉默了。

1.3 免费额度:甜蜜的陷阱

各大云厂商都提供免费额度。AWS Lambda 每月有100万次免费调用,400万GB-秒的计算时间。听起来很多,对吧?

但你要注意:

  • 免费额度是按账户算的,不是按函数算的。你开10个函数,共享这100万次。
  • 免费额度有时效,通常是12个月。过期后,一切按标准价收费。
  • 免费额度不覆盖所有服务。API Gateway、DynamoDB、S3 的流量费,都不在免费额度里。

我曾经踩过的坑

我曾经帮一个创业团队做架构,他们用免费额度跑了一个月,觉得无服务器真香。第二个月,免费额度到期,账单直接翻了20倍。团队差点因为这个事吵起来。

从那以后,我养成了一个习惯:上线前先算清楚成本,别等账单来了再后悔

1.4 隐藏成本:那些你容易忽略的收费项

无服务器的成本,远不止函数本身。我列几个常见的「隐形杀手」:

成本项 说明 典型场景
API Gateway 费用 每次请求都要经过网关,按请求数和数据传输量计费 REST API、WebSocket
数据库读写费用 DynamoDB 按读写容量单位计费,冷热数据差异巨大 频繁查询、大表扫描
日志存储费用 CloudWatch Logs 按存储量和写入量收费 高并发函数、调试日志
VPC 网络费用 函数在 VPC 内运行,会产生 NAT 网关费用 访问 RDS、ElastiCache
冷启动惩罚 虽然不是直接收费,但冷启动会延长执行时间,间接增加成本 低频调用、定时任务

你想想看,一个简单的 CRUD API,背后可能涉及 API Gateway + Lambda + DynamoDB + CloudWatch。每个环节都在计费,加在一起就不是小数目了。

1.5 成本意识:从设计阶段就要考虑

我个人的习惯是,在画架构图的时候,就把成本估算表画在旁边。这不是多此一举,而是让你从一开始就清楚:

  • 这个功能值不值得用无服务器?
  • 有没有更便宜的替代方案?
  • 流量高峰时,成本会涨到什么程度?

一个小技巧

我建议你在每个函数里加一行日志,记录执行时间和内存使用量。这样月底对账时,你能清楚地知道钱花在了哪里。

说白了,成本控制的前提是成本可见。看不见,就控不住。

1.6 无服务器到底省不省钱?

这个问题没有标准答案。我见过用无服务器省了80%成本的案例,也见过比传统服务器贵3倍的案例。

关键看场景:

  • 适合无服务器的场景:低频、突发、短任务。比如图片处理、消息推送、定时任务。
  • 不适合无服务器的场景:高并发、长连接、持续运行。比如实时流处理、WebSocket 长连接、后台批处理。

我记得有一次,一个客户想把一个24小时不间断的数据处理任务迁移到 Lambda。我算了一笔账:

  • 传统方案:一台 EC2 t3.medium,每月约30美金。
  • 无服务器方案:Lambda 持续运行24小时,每月约200美金。

结果很明显。我直接建议他别用无服务器,老老实实用 EC2。

嗯,这里要注意:无服务器不是银弹。它适合特定场景,不是所有场景。

1.7 总结:成本意识是第一课

说了这么多,其实就想表达一个意思:

无服务器不等于免费,按需付费也不等于便宜。

你只有理解了底层计费逻辑,才能在设计阶段做出正确的决策。否则,等到账单出来再后悔,那就晚了。

下一章,我会讲具体的成本估算方法,教你如何在上线前就算清楚每一分钱。到时候,我会拿一个真实的项目案例来拆解。

先记住今天这句话:成本意识,从理解账单开始