亚马逊AWS官方博客

AWS Lambda 的新功能 – 1 毫秒计费粒度更加节约成本

我之所以喜欢 AWS Lambda ,是因为它可以让您在无需预配置或管理服务器的情况下运行代码,而且只需为实际使用量付费。自我们 2014 年推出 Lambda 以来,其收费是基于代码触发次数(请求数)和代码执行时间(四舍五入到最接近的 100 毫秒,即持续时间)。

即日起,我们将持续时间四舍五入到最接近的毫秒数不设最小执行时间。

采用这种新的定价方式后,大多数情况下您支付的费用会降低,但是当您拥有执行时间远低于 100 毫秒的功能(例如低延迟 API)时,这种优势会更加明显。

举个例子,我们来看看我正在运行的一个简单的 Web 应用程序。在 Amazon CloudWatch Logs 中,每次调用都有一个 REPORT 行。为了提高可读性,我将 REPORT 行分为三行:

REPORT RequestId: 35a7e0cb-4902-490d-b8d3-eb315dded660
持续时间:27.40 毫秒  计费持续时间:100 毫秒 内存大小:1024 MB 最大内存使用量:472 MB

采用 1 毫秒的计费粒度,则变成:

REPORT RequestId: a24d03b5-429d-4ca3-a490-878a52a0182f
持续时间:27.55 毫秒  计费持续时间:28 毫秒 内存大小:1024 MB 最大内存使用量:472 MB

我的应用程序流量不多,所以我们来做一个简单的生产场景。假设一个 Web/移动应用程序拥有 100,000 名用户。预计每个用户每天都通过该 Web/移动应用程序调用此功能约 20 次。这些调用的平均持续时间为 28 毫秒。那么每个月预计:

  • 100,000 名用户 * 20 次调用 * 30 天 = 6000 万次调用。

我们来估算美国东部(弗吉尼亚北部)区域的成本。为简单起见,不考虑使用 Lambda 免费套餐的情况。

Lambda 月度请求费用保持不变:

  • 6000 万次调用 * 0.20 USD/100 万个请求 = 12 USD

然后我要在此基础上根据持续时间加上计算费用

100 毫秒四舍五入定价方式下,Lambda 月度计算费用本来为:

  • 6000 万次调用 * 100 毫秒 * 1G 内存 * 0.0000166667 USD/GB-秒 = 100 USD

采用新的 1 毫秒计费粒度,则持续时间成本为:

  • 6000 万次调用 * 28 毫秒 * 1G 内存 * 0.0000166667 USD/GB-秒 = 28 USD

在此场景下,包括请求费和计算费用在内的总成本比以前 (112 USD) 便宜得多 (40 USD)。

这种定价方式现在更多的是一种激励手段,鼓励优化功能的持续时间,即使其已经远低于 100 毫秒。您的工程设计工作可以更进一步降低成本。

如果您通过增加内存来获得更强劲的 CPU 处理能力及提高函数速度,您现在就可以享受到 100 毫秒以下的低计费持续时间的好处。这意味着提高性能和减少延迟可以比以往降低成本。

从 2020 年 12 月起,我们将在所有 AWS 区域对持续时间应用 1 毫秒的计费粒度,包括您启用预配置并发时也适用,但位于中国的 AWS 区域除外。中国的 AWS 区域将从明年一月起实行此变化。

享受新的定价方式吧!

Danilo