# 如何计算无服务器软件托管成本

- 作者：知晓云
- 发布时间：2022-06-01 08:00
- 原文：https://www.ifanr.com/minapp/1492185

![](https://s3.ifanr.com/wp-content/uploads/2022/06/pexels-mikhail-nilov-8296974-copy-1024x576.jpeg)

> 编者按：对您的业务场景来说，云服务采用无服务器托管服务是否更便宜？本文向您推荐一套成本计算方法。虽然本文以 AWS Lambda 无服务器为用例，但国内主流无服务器服务例如「[知晓云](https://cloud.minapp.com/)」的计费规则大同小异，具备同等参考价值。

我们在讨论无服务器后台服务采购时，成本节约和可自动扩展是我们首先想到的无服务器服务的好处。您的企业希望减少运营时间和降低成本，从而为对其数字化业务至关重要的功能提供更多价值。

一个梦想（至少对投资者而言）。

我想你已经好几次读过这个理论了。而且，**您如何确定无服务器适合您**？您的具体业务如果使用无服务器是否确实更便宜？

本文中，我将阐明 **AWS 无服务器架构可能会花费您多少成本**。为了解决这个问题，我们（[Theodo 公司](http://theodo.com/global)）创建了一个易于使用但完整的 AWS 无服务器成本计算器！希望它能给您带来一点动力，让您在技术上进行更多投资。

> ⚠️ 如果你已经了解 TCO、FinOps 和 Serverless 架构，你应该直接跳到本文计算器部分（链接在手机上不起作用，手机浏览者请直接滑到本文页面后半部分）。

### 要了解无服务器的价值，请考虑总体拥有成本

谈论无服务器成本时经常提到的一个核心概念是**总拥有成本 (TCO)**：

![Total Cost of Ownership](https://s3.ifanr.com/wp-content/uploads/2022/05/1_cD4HBbBoZYR_3sDJ3841tg-1024x110.png)

在月底，当您收到无服务器账单时，您主要会看到一个数字。如果您想将此数字与非无服务器应用程序成本进行比较，则不应简单地将其与基础设施成本进行比较，您应该扩大比较范围并包括：

- 一大笔运维人员的工资支出
- 云服务监控工具等 SaaS 服务账单
- 通用功能（如身份验证）的开发工作，或与技术成熟度和技能积累相关的工作

在评估无服务器的经济价值时，这种高层级观点是关键，因为**无服务器在一份账单中包含了 TCO 的 3 个变量**。

我举两个具体例子来说明：

- 像 AWS Lambda 这样的服务的管理、监控和自动扩展是刻意设计来实现的，这意味着减少处理经典性能问题和系统维护的操作负担——目的是帮助数字业务开发者（客户）实现技术后台的「零运维」。
- 像 Cognito 这样的另一项服务，是预打包一种始终保持最新的行业标准软件包来帮助您的数字业务处理身份验证、用户和授权，并无缝自动连接到其它 AWS 服务，这意味着您不必花费软件开发时间在你的业务架构中重复建设用户身份认证和鉴权的这套标准化组件。

Yan Cui 写了一个[很好的案例](https://theburningmonk.com/2019/01/you-are-thinking-about-serverless-costs-all-wrong/)，从 TCO 的角度解释了 Serverless 如何确实降低了成本。德勤发布了一份关于[该主题的白皮书](https://pages.awscloud.com/rs/112-TZM-766/images/AWS_MAD_Deloitte_TCO_paper.pdf)，他们在其中使用真实案例比较了每个 TCO 组件上的无服务器与更传统的方法。

### 无服务器成本控制：借助正确的技能，该技术可实现功能级成本优化

有很多例子展示了云成本是如何失控的（[比如这个新的例子](https://chrisshort.net/the-aws-bill-heard-around-the-world/)）。使用 AWS，您无法定义成本上限。您只能创建成本警报。这并不像应该的那样令人放心，[例如「钱包拒绝服务」网络攻击导致的损失](https://portswigger.net/daily-swig/denial-of-wallet-attacks-how-to-protect-against-costly-exploits-targeting-serverless-setups)。

您遭受云服务费用超支网络攻击的可能性是真实存在的。就像经典架构中，由于计划外流量而导致系统缓慢或更糟糕的崩溃的可能性是一样的。这是无服务器范式发生重大转变的直接后果。这也是一个了不起的机会：云提供商让我们能够立即扩展，从而减少雇佣和管理专门运维团队的成本。

为了应对这种过度支出的恐惧，**一些 Ops 和 Architect 的任务正在转向 [FinOps](https://aws.amazon.com/blogs/enterprise-strategy/introducing-finops-excuse-me-devsecfinbizops/)**。作为 FinOps，出于性能和维护原因，您对系统的优化「略微」较少，而出于财务原因则更多。一个很好的例子是 [Alex Casalboni](https://dev.to/aws/deep-dive-finding-the-optimal-resources-allocation-for-your-lambda-functions-35a6) 通过定义正确的资源分配来优化 Lambda 执行时间和成本的分析。

无服务器为您提供了对每个后台计算功能和架构的每个部分进行完整且精细的成本控制的工具。你可以看到哪些开支项超出你的预期。**您可以评估一项无服务器后台功能的投资回报率，以更好地了解其对业务的影响。**这是一家公司最终会关注的问题。云服务商「只是」将一般复杂性抽象出来，并为了能提供更多的财务控制创造一条捷径。

### **一些固定的架构意见有助于估算无服务器项目成本**

为了帮助人们估算无服务器项目的成本并分享最佳 FinOps（财务运营）实践，我们**决定构建一个 AWS 无服务器成本计算器**。该计算器旨在易于使用，同时包含完整架构的每个组件。

为什么它与您已经在网上找到的不同？**因为它依赖于对无服务器架构应该是什么样子的看法**。这就是我们使用 FinOps 技能的地方——评估不同服务分类以及如何使用它们来简化估算 AWS 无服务器应用托管成本的过程。

我同意：所有架构都是不同的，并且由于某些差异，成本可能会发生许多倍的变化。但与此同时，**大多数 Web 应用共享许多共同元素**：身份验证、带有一些业务模型的数据库、获取和更新这些业务模型的一些 API 代码、一些系统文件、一些异步任务和一些高级工作流（例如：购物车结账业务流或多因子身份验证）。

在对典型的无服务器架构进行标准化时，可以更轻松地估算典型用例的成本。它还为社区内的深度讨论、吸引评论和各方的挑战创造了一个氛围，旨在围绕持续优化系统达成更多共识。

这些带着我自己偏见的原则我已写到之前的文章中：[AWS 典型的 100% 无服务器架构是什么样的](https://medium.com/p/40f252cd0ecb)！也请您回头读一下它以便完全理解这套计算器的设计。

### 使用计算器，您有两种估算方法：根据预定义的场景进行估算，或者您自己定义参数来确定

> ⚠️ 这项计划是一项持续进行的工作，它基于我们在 Theodo 的经验。因此，某些场景或假设可能无法很好地反映您自己的用例。简化和概括计算复杂系统成本的方法很困难，并且需要从经验中学习更多。
> 
> 🙏 请与我们分享您的经验！我们会为您提供有关更好做法的提示，或者您会教我们一些有助于改进社区计算器的内容。要做出贡献，您可以在原始电子表格、本文中留下评论或[在 Twitter 上与我联系](https://twitter.com/xavi_lefevre)。

计算器「电子表格文件」[可在此处访问🤘](https://docs.google.com/spreadsheets/d/1WBeA0CfLqo0aT_js3e6XFljX9mSI22mwksVr16qt5tU/edit?usp=sharing)。您可以将其作为「评论者」访问，然后复制并使用（注意：下拉菜单在「评论者」模式下不起作用）。

电子表格分为两种类型的选项卡：**第一个选项卡是主仪表板，您将在其中获得总成本估算。**您填写尽可能简单的输入并获得总成本和每个 AWS 服务的详细信息。

![AWS Serverless Cost Calculator](https://s3.ifanr.com/wp-content/uploads/2022/05/1_obcUBXpocpGePgYWeLeJZA-1024x688.png)

您在这里有两个选择：

- **预定义：**选择一个场景以获得非常普遍的成本概念。您可以选择流量大的电子商务，让我们进行其余的估算，然后在右侧的「Pre-defined」绿色框中查看最终结果。
- **自定义：**根据您的业务特性（功能类型和用户行为）输入更细粒度的变量，然后在「Custom」蓝框中查看结果。

**其它选项卡是您使用的每个 AWS 服务的详细计算**。它有一个 AWS 成本常数列表、我们为计算变量所做的假设、计算的渐进细节，当然还有最后的总数。

这就是我们计算器的魔力真正发挥作用的地方。使用[官方 AWS 成本计算器](https://calculator.aws/#/)时所需的变量数量巨大。即使您对这些服务了如指掌，但仍然需要时间来正确填写每一项服务。因此，根据经验，通过缩小基本用例的范围，我们固定了某些服务、某些变量，从而简化了估算过程。

### 中小型项目的直接成本收益显而易见，但在考虑 TCO 时，大型和复杂项目仍然受益于该技术。

让我们通过一些例子一起来看看它。我们将尝试查看无服务器是否值得，您将能够将这些成本与您自己的成本进行比较。

#### 对于平均流量或以下，我们不需要计算 TCO 来见证 Serverless 的价值

***低流量：50 次/天***

![](https://s3.ifanr.com/wp-content/uploads/2022/05/1_g9QqC2rx8paVhTnNbR799g-1024x559.png)

使用计算器，在这种流量下，电子商务应用程序的费用约为每月 1.6 美元（包括免费套餐），而托管博客的费用约为 0.5 美元。

相比之下，最小的 EC2 虚拟机 t3a.nano 的每月成本为 3.43 美元（[此处为 EC2 官方定价](https://aws.amazon.com/ec2/pricing/on-demand/)）。

**结论：**Advantage serverlss，甚至更多，因为它提供了额外的服务。与基本的 VM 相比，您必须自己添加数据库、监控、管理可扩展性等。

***中等流量：2k sessions/天***

![](https://s3.ifanr.com/wp-content/uploads/2022/05/1_OVLutszIPoeh_DUUMI-EpQ-1024x533.png)

无服务器电子商务应用程序的费用约为每月 70 美元，博客费用约为 20 美元。

一个相应的 EC2 虚拟机（如 m6g.large）的成本约为 62 美元。

**结论**：Advantage serverless，原因与低流量类似。

#### 高流量和超高流量更难评估，但认为 TCO 开启了无服务器的潜力

***高流量：40k sessions/天 — 非常高的流量：1 million sessions/天***

![](https://s3.ifanr.com/wp-content/uploads/2022/05/1_AGpZuhP5jKvVSRkqD8KrJg-1024x561.png)

高流量的无服务器电子商务成本约为 1.7k 美元/月，非常高的约为 49k 美元。

一个博客，分别约为 475 美元和 1.2 万美元。

非常高流量的注意事项：AWS 提供了此处未反映的重要折扣。

对于这样的流量，成本估算变得更加危险。与面临现实世界经验的社区和 AWS 人员的三次确认显示出相似的成本（数量级）✅。

现在，将虚拟机与这种规模的无服务器架构进行比较并没有代表性。这些系统在规模和技术组合方面要复杂得多。

这就是我们可以再次带出 TCO 概念的地方。 Deloitte 在一个报告中指出：[使用 serverless，系统维护时间可以除以 8](https://pages.awscloud.com/rs/112-TZM-766/images/AWS_MAD_Deloitte_TCO_paper.pdf)。所以为了练习，让我们考虑一个 Serverless Ops 团队的规模是更传统的一半，而高流量的传统网站需要一个 2 人名运维工程师的团队。

其中一名工程师在巴黎的一家公司的成本将为 14 万美元/年。 该员工成本包括：她/他的工资、公司缴纳的税款、参加医疗保健、办公空间租金等。 使用无服务器，我们的 Ops 团队减少到 1 个 Ops，这使我们能够「节省」12k 美元/月。

**结论：**对于无服务器仍然非常有利：当您每月向 AWS 支付 1700 美元时，能够将 12000 美元/月重定向到业务差异化任务看起来是个好主意！

### 试试看吧，挑战你的现状，如有任何问题或改进，请联系我！

我希望这个倡议能给你一些新的视角，并回答或提出问题！ 这就是重点：退后一步，用具体的例子和公式着眼大局，共同见证无服务器的潜力。

下一步是什么？ 在第一个版本中，我们希望收集大量反馈，并力争在年底前推出更广泛、更易于使用的版本（Web 应用程序会很整洁）。 我们肯定希望添加其他云提供商，以提供更好的供应商选择背景。 如果您对该工具的未来发展感兴趣，[请在 Twitter 上关注我](https://twitter.com/xavi_lefevre)。

（作者：Xavier Lefèvre；封面摄影：Mikhail Nilov）

## 参考资源：

### **成本计算器**

- Lambda vs EC2: [https://servers.lol](https://servers.lol/)
- Official AWS calculator: [https://calculator.aws](https://calculator.aws/#/)
- Lambda, Gateway, S3, CloudFront calculator: [https://cost-calculator.bref.sh](https://cost-calculator.bref.sh/)
- Cross-cloud FaaS calculator: [http://serverlesscalc.com](http://serverlesscalc.com/)

### **参考文章/书籍**

- A crazy AWS bill story: <https://chrisshort.net/the-aws-bill-heard-around-the-world/>
- Beg 2018 — Focus on FaaS, light detail about other services cost like gateway and vpc, plus the extra time needed to code (more lines): [https://medium.com/@amiram\_26122/6ced7844780b](https://medium.com/@amiram_26122/6ced7844780b)
- Very detailed Azure Functions cost calculus, applied to a simili-Facebook product which is way too expensive: <https://dev.to/azure/is-serverless-really-as-cheap-as-everyone-claims-4i9n>
- A more complete but fixed AWS serverless example with some warnings: <https://techbeacon.com/enterprise-it/economics-serverless-computing-real-world-test>
- AWS Hero famous article about the theory of TCO: <https://theburningmonk.com/2019/01/you-are-thinking-about-serverless-costs-all-wrong/>
- Lumigo’s FaaS focused ebook: <https://lumigo.io/learn/aws-lambda-cost-guide/> or <https://info.lumigo.io/serverless-cost-guide-ebook>
- A very advanced FaaS vs EC2 comparison with calculus and graphs: [https://www.bbva.com/en/economics-of–serverless/](https://www.bbva.com/en/economics-of--serverless/)
- Deloitte’s white paper splitting the analysis of TCO in 3 sub-parties with concrete use cases on FaaS only: [https://pages.awscloud.com/rs/112-TZM-766/images/AWS\_MAD\_Deloitte\_TCO\_paper.pdf](https://pages.awscloud.com/rs/112-TZM-766/images/AWS_MAD_Deloitte_TCO_paper.pdf)
- A serverless research around economic and architectural impact: <https://www.doc.ic.ac.uk/~rbc/papers/fse-serverless-17.pdf>
- Serverless too expensive experience: [https://www.theregister.com/2019/09/24/serverless\_tech\_slower\_and\_8\_times\_more\_expensive/](https://www.theregister.com/2019/09/24/serverless_tech_slower_and_8_times_more_expensive/)
- Comparison between a Beanstalk .NET API (cheaper) and the same with Lambda and API Gateway: <https://einaregilsson.com/serverless-15-percent-slower-and-eight-times-more-expensive/>
- 2019 O’Reilly serverless landscape result: <https://www.oreilly.com/radar/oreilly-serverless-survey-2019-concerns-what-works-and-what-to-expect/>
- Serverless Coca Cola Case Study: <https://dashbird.io/blog/serverless-case-study-coca-cola/>
- Financial Engines Cuts Costs 90% Using AWS Lambda and Serverless Computing: <https://aws.amazon.com/solutions/case-studies/financial-engines/>
- Slower and more expensive: <https://einaregilsson.com/serverless-15-percent-slower-and-eight-times-more-expensive/>
- Estimating the Lambda + Gateway bill when migrating: <https://serverlessfirst.com/ec-2-to-serverless-migration-calculator/>
- Denial-of-Wallet: <https://portswigger.net/daily-swig/denial-of-wallet-attacks-how-to-protect-against-costly-exploits-targeting-serverless-setups>

### **财务运营工具**

- Lambda cost analyser: <https://github.com/alexcasalboni/aws-lambda-power-tuning>
