Skip to main content

Command Palette

Search for a command to run...

发现 Serverless 应用中的隐形成本

Updated
1 min read

原文:Finding Serverless’ Hidden Costs

作者:Nitzan Shapira

提到 Serverless 这一概念,除了无需自行维护基础设施之外,另外一个亮点就是按使用付费。

AWS Lambda 这样的服务,代码每运行 100 毫秒,就需要支付一定的费用。例如 512 MB 内存的 Lambda 的(每 100 毫秒)费率是 $0.000000834。最好的一点是,如果代码没有运行,就无需支付费用——在一些大的组织机构中,如果服务器的使用率低于 20%,这种无服务器的方式会在财务上带来巨大的成本节约。企业已经注意到了这一点

这有问题么?没有。这个技术很有意思。然而新技术总是有风险的,必须做出识别和防范。特拉维夫 AWS Community Day 上,The Real Cost of Pay-Per-Use in Serverless 这篇谈话中,Ran Ribenzaft 说到了 Serverless 技术中几个方面的成本问题。下文将会说到其中的一部分。

服务硬件配置是否越低越好

部署一个无服务器函数的时候,第一个选择往往就是内存和 CPU。Lambda 中,这两个参数是绑定的一系列固定选择。更大的内存就对应着更高的价格。这么看来,选择较低的内存会省钱对么?不是的,过低的内存可能带来以下问题:

  • 更低的内存配置一般也对应着更低的 CPU 配置,也就意味着更长的运行时间,甚至可能造成超时。超时的严重程度可以与台式机的关机相提并论,是大家非常不愿见到的情况。

  • 更长的运行时间当然也代表着更高的成本。所以降低内存配置可能会取得一个相反的效果。

AWS Lambda 的性能测试中,发现一个令人惊奇的结果:性能和价格同步上升——直到某点之后,配置的提高不再带来性能的提升。

所以想要一次确定 CPU 和内存的最佳方案是不太实际的。函数自身也会发生变更和升级,对配置的需要也有发生变化的肯能。

所以该怎么办?

对执行时间和内存用量进行监控

一般来说在复杂系统中,在你不知道你不知道的情况下,会发生最严重的问题。可观测性是一个关键点——不仅是检测异常和性能瓶颈,还要知道函数的内存消耗和执行时间。最有用的方式之一就是,在问题发生之后的告警之外,尝试预测问题发生的可能。可以通过静态规则以及用峰值和常规行为进行对比的方式来进行这种尝试。

昂贵的 API 调用

一个主要的观察结果就是,性能和账单是直接相关的。代码运行越慢、就要付出更多。无服务器的总成本由两个因素组成:

  • 运行业务逻辑的时间

  • 等待 API 调用返回的时间

The Importance and Impact of APIs in Serverless 的演示中,对一个 Auth0 这样的常见服务的简单调用,可能会消耗 Lambda 函数中的 80% 的时间。这并不是说不应该使用第三方 API,正好相反,创建完全无服务器的可伸缩应用,使用第三方应用是一个关键。然而应该对自己的选择有深入了解,相对于传统应用,对工具的配置在无服务器应用中可能会产生更大的影响。

让账单变得可以预测

虽然从传统上来说,云计算的账单很复杂且难于理解,通常还是可以预测的——买一千个虚拟机,一般是大约知道可能发生的费用的。在 Lambda 以及一些像 Amazon Aurora Serverless 这样的新服务来说,账单变得更加动态,更难预测。

预测成本

成本预估是控制支出的有效方法。根据目前的花费情况,可以预测本月的最终成本。成本预测是一种简单有效的防止超支的方式。简单的预测公式:

月度支出 = 当前支出*(本月天数/当前日期)

例如本月有 30 天,今天是 15 号,本月已经消费了 $200,那么就可以预计到月底的花费应该是 $400。这种预测对于单独的函数或者整体成本都是有效的,在 Epsagon,函数视图中包含了每个函数的预测。

成本监控

正如使用性能监控工具来保障应用的正常运行一样,无服务器函数也需要对成本进行监控。Epsagon 的案例研究中,我们分享了一个故事,其中一个 Lambda 函数有严重的问题,它会以很高的并发方式运行,最终导致了每月 $12k 的成本。幸运的是,我们对自己的系统进行了监控。另外还发生过大公司发现过价值 $50,000 的 bug 的问题,也多亏了 Epsagon 的监控功能。

Lambda 成本计算器是一个开源工具,能帮助用户理解函数的可能花费。

写在最后

按使用付费的方式是一个绝妙的概念,让无服务器应用能够大幅降低成本。但是性能问题可能直接影响月度账单,是一个值得注意的问题。

成本的预测和监控能够降低意外高额账单的风险。特别需要指出的是,无服务器应用中的 API 应该小心使用并注意监控,因为它有成为主要的性能和成本瓶颈的可能。

More from this blog

龙虾恐慌:AIOps 又要改名了?

ChatGPT 开始,把 AI 拉近到普罗大众的面前,让无数人感受到 AI 的亲民魅力。而龙虾,则把大模型驱动的自动化能力,突然间变得水灵灵、活泼泼地走进千家万户。它不只是“风口上的猪”,而是风口本身。热度高到让 Mac mini 一度断货,不知道这在不在库克的预料之内。 每代人都有每代人的鸡蛋,春节期间,我就领了我的鸡蛋。翻出古老的 MacBook Air M1,充值各种大模型。当然了,这个工具

Mar 9, 20261 min read

再见 2025

我猜不少人以为这个号废了吧?并没有,只是今年变化有点大,一直有种抄起键盘,无从说起的感觉,所以一直偷懒到今天,2025 的最后一天。 今年是我的第四个本命年,去年末一期播客里,大内说本命年不是灾年,是变化年,有危也有机。可是讲真啊,只看到危,没看到机。 各种因缘际会,从鹅厂跳槽到前东家,已经接近四年,第一个合同期已经进入尾声。除了前两年还在云原生领域嗷嗷叫,后两年基本都是些鸡零狗碎的东西了,用老东家的术语说是——偏离主航道,可谓是前景暗淡了。 一旦确定要滚蛋,反倒心思轻松起来,每天骑着我的小红车...

Jan 5, 20261 min read

辅助编程?dora 说:我知道你很急可是请你别急

从 OpenGPT 把大模型的火烧旺了之后,这三年来,相信很多组织或摩拳擦掌、或躬身入局,希望借助聪明能干的大模型,或想偿还技术宅,或想降本增效,或想弯道超车。一时间,沉寂许久的 AIxx 又活过来了,LLM Ops、Vibe Coding、中医大模型、GPT 算命等等,全都老树发新芽,焕发了勃勃生机。那么视角拉回从业者最关注的饭碗相关的领域之一——AI 辅助开发,产生了什么触动,应该如何拥抱呢? DORA 的年度报告中给出了很有意思的结论——强者恒强。 执行摘要部分总结了几个有趣的点: 问题...

Oct 6, 20251 min read

[译]dora:ai 辅助软件开发状态报告

执行摘要 在 2025 年,科技领导者面临的核心问题已不再是“是否要采用 AI”,而是“如何实现其价值”。 DORA 的研究基于超过 100 小时的定性访谈和来自全球近 5,000 名技术专业人士的问卷调查。研究揭示了一个关键事实:AI 在软件开发中的主要角色是“放大器”。它会放大高效能组织的优势,也会凸显组织的缺陷。 关键结论:AI 是放大器 AI 投资的最大回报并非来自工具本身,而是来自组织底层系统的战略性建设: 高质量的内部平台 清晰的工作流 团队的协同能力 缺少这些基础,AI ...

Oct 2, 202514 min read

僭越了,有人在用 Rust 写 Kubernetes

一个新语言问世,最爱做的事情之一,就是重写存量软件了。 云原生喝酒 SIG 重点扶持项目——rk8s(https://github.com/rk8s-dev/rk8s) 也可以归在这个范畴里,只不过这个项目重写的东西比较大,是 Kubernetes。 从 2025 年 1 月第一个 Commit 开始,到现在有了 200 多次 Commit,十几万行代码。当然距离 Kubernetes 的几百万行代码还差得远——老马就是喜欢整这种大无畏项目。 另外该项目也是国内第一个脱离 Cargo 转向使用 ...

Sep 27, 20253 min read

【伪】架构师

342 posts