无服务器定价和成本:AWS Lambda

哈Ha! 我会尽力使翻译更好,对于您的批评我将感到高兴。
(注:价格截至2018年8月为准)

AWS Lambda有263个具有唯一价格标签的订单项。 例如,它们可能被称为“使用美国,欧洲或日本以外的边缘位置(从欧盟(巴黎)到欧盟(伦敦))使用加速的区域间入境”,并且存在于17个地区中的每一个地区。 总共,您可以在完成Lambda时向您开出4,471个独立职位的发票。

此外,EC2服务有635,035个职位,Route53有12,261个职位,API网关有15,283个职位。 总体而言,Amazon Web Services针对各种服务的单独费率超过一百万。 他们的定价政策是如此复杂,以至于有一个用于检查价格的完整API。 有了它,我得到了这些数字(尽管价格计算器中未包含Lambda)。

Lambda的价格非常重要:首先,使用前百万个请求的免费级别,其后每个后百万个请求的价格标签为0.20美元,加上当月使用的“计算时间” GB秒的0.00001667美元,超过了这需要网关API(每百万个请求3.50美元)来向Lambda发送HTTP请求。 您还需要为Lambda的任何数据传输(每GB 0.09美元)以及对Dynamo DB的任何查询付费。

什么是“计算时间”?


我们发现,每GB每秒Lambda计算时间需要支付0.00001667美元。 千兆秒单位有点奇怪,您找不到吗? 这可能意味着您使用1 GB内存时的秒数,但实际上是执行计算时的秒数,乘以为这些计算分配的GB数。

对于那些不喜欢将微中心作为度量单位的用户,我将数字汇总在一个图表中,该图表显示每百万个请求1-6美元,您可以获得多少内存和CPU时间:

图片

亚马逊发布的价格不包括0.20美元的基本费用,但我已将其包括在计算中。

处理器时间是一毫秒是多少? Apple II上的毫秒计算代表3,000个处理器周期。 在我的Intel i7笔记本电脑上,这是400万次循环。 对于Amazon,它们会根据您使用的内存量来提高处理器的速度。 换句话说,您的性能是内存* CPU周期时间 ,其中CPU周期时间与所使用的内存成比例地减少。 CPU加速将一直持续到一个处理器内核的资源用完为止,然后为您提供第二个内核的资源,根据应用程序的构建,第二个内核的资源可能有用或根本不使用。

考虑到这些细节,我调整了图表以显示您获得了多少实际CPU时间。 我专注于比较测试中使用的普通服务器处理器。

图片

从图表中可以看出,无论Lambda是从1024 MB运行100毫秒还是从128 MB运行800毫秒都没关系,您将获得相同的计算量并支付相同的费用。 超过1024 MB,您可以实现一个处理器内核的性能,并开始获得第二个处理器内核的功能(如果您的应用程序是多线程的并且可以使用它)。

四舍五入


此外,处理器时间四舍五入到最接近的100 ms,这意味着即使返回我们测试中当前时间的简单lambda,也要花费我们0.41美元/百万次调用。 当然,您的Lambda很少能精确到毫秒数(即100的倍数)。更常见的是,您将使用Amazon会舍入的一定数量的ms来计算您将支付的费用。 鉴于它们总是被四舍五入,这意味着您将为每个调用平均多支付50毫秒的CPU:

图片

API网关


AWS Lambda可以在Amazon内部执行各种任务。 但是首先,它们对于我们在没有服务器的情况下创建Web应用程序很感兴趣。 为此,lambda无法直接使用,因为它需要某种能够将请求转换为调用 Lambda API的HTTP服务器。 最简单的方法是使用Amazon Gateway API。

API网关的成本为每百万个请求3.50美元,这通常超过Lambda本身的成本。 这是上面的图表,但已针对API网关进行了调整:
图片

您会注意到1美元,2美元和3美元的线从图表中消失了。 假设您的Lambda消耗的CPU很少,则绝对最小值为3.91 USD /百万个请求。
如果要使用缓存,还必须支付流量和每小时的额外费用。

53路


Amazon Route53 DNS也不免费。 在前十亿个查询中,成本为每百万个DNS查询$ 0.40。 这使我们的最低总费用达到$ 4.31 /百万。

更多费用


计算所有成本可能很乏味。 CloudWatch日志每GB成本$ 0.50。 同时,每GB流量$ 0.09会对帐户产生重大影响。

Lambda @ Edge


亚马逊提供了一种通过Cloudfront CDN服务运行代码的方法。 不变和可变成本是传统Lambda的三倍。

要使用Lambda @ Edge进行HTTPS请求,您首先必须以每百万次请求1美元的价格购买Cloudfront。 您还需要为带宽付费,这很容易成为主要支出项目。 如果您的站点占用1 MB,则最终您将仅为Cloudfront带宽支付$ 85 /百万,或者为南美等地区支付$ 250。 再加上额外的20美元/每百万必须返回给发件人的请求。

以下是您最终只需要为Lambda @ Edge计算支付的费用:

图片

Source: https://habr.com/ru/post/zh-CN481664/


All Articles