AWS Lambda VS AWS CLI

时间:2018-11-07 11:35:40

标签: aws-lambda aws-cli

我想知道在这两种技术中哪个是更好的选择:

  • 使用 AWS CLI
  • 在EC2实例中编写函数
  • 使用 AWS Lambda
  • 编写函数

我更喜欢在AWS Lambda中编写代码,但是我想知道使用Lambda是否有任何特定的优势。

P.S:我必须执行的功能几乎相同(它们使用相同的算法),因此功能上没有差异。

致谢

2 个答案:

答案 0 :(得分:0)

我了解您想知道使用AWS Lambda而不是使用EC2实例是否有任何特殊优势。

以下是AWS Lambda的一些优点:

  • 降低了成本。 Lambda遵循按需付费定价模型,与AWS EC2不同,前一百万次调用属于免费套餐类别[1]。根据您的用例,您也许可以在生产环境中使用AWS Lambda节省很多。

  • 无系统管理有效负载。 AWS Lambda遵循无服务器计算范例,无需启动服务器,根据需要配置服务器并进行维护。

  • AWS Lambda函数可以非常方便地执行自动化任务,并且可以由许多服务触发[2]。例如:如果您将文件上传到AWS S3存储桶,则可以选择触发Lambda函数,该函数压缩文件并将其存储在另一个S3存储桶中。

但是,与EC2 / ECS相比,Lambda也有一些缺点:

  • Lambda函数容易出现冷启动问题。当Lambda函数在相当长的一段时间内没有被调用时,通常会发生冷启动问题。 AWS在后端的Lambda函数中部署了一个新容器,有时可能会延迟调用[3]。

  • 在Amazon CloudWatch中调试AWS Lambda函数日志和指标可能会很费力。

  • Lambda函数支持的最大执行时间为15分钟,并且存在时间限制。因此,可能无法将Lambda函数用于耗时的操作(例如:处理大型平面文件)。

Amazon EC2具有系统管理有效负载,它的成本可能会更高一些,但没有Lambda冷启动问题,它甚至可以用于长时间运行的任务。 因此,您可以根据自己的实际使用情况选择使用EC2或Lambda。

希望此答案对您有所帮助。

参考

[1]。 https://aws.amazon.com/lambda/pricing/

[2]。 https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html

[3]。 https://docs.aws.amazon.com/lambda/latest/dg/running-lambda-code.html

答案 1 :(得分:0)

AWS Lambda作为无状态服务运行,这意味着我们无法在函数内部存储文件。我们使用60个lambda函数构建了整个应用程序。在60个中,有54个lambda函数由API网关触发,其余的则充当服务模块(即由另一个lambda函数调用的模块)。

如果将lambda函数用作微服务,则可以在性能和价格方面获得更多。

我的建议:不要创建单个lambda函数来运行整个系统。使用微服务方法。