AWS Lambda 和 AWS Elastic Beanstalk 之间有什么区别

Eri*_*ela 14 amazon-web-services amazon-elastic-beanstalk aws-lambda

我正在学习 AWS 云从业者认证,我对 AWS Lambda 和 AWS Elastic Beanstalk 之间的区别感到困惑。据我了解,对于这两种服务,您都将代码上传到 AWS,而 AWS 实质上会为您管理底层基础设施。

我知道使用 Lambda,您可以将代码上传到“Lambda 函数”,并设置代码执行时的触发器。

使用 AWS EB,您可以上传应用程序代码,EB 会自动处理部署、容量、配置等...

当您将代码上传到两者并且都处理底层实例/环境时,它们听起来非常相似。

谢谢!

小智 31

Elastic beanstalk 和 lambda 非常不同,尽管某些功能可能看起来相似。在较高级别上,elastic beanstalk 部署长时间运行的应用程序,而 lambda 部署短时间运行的代码函数

  1. Lambda 最多可以运行 15 分钟,而 EB 可以连续运行。一般来说,我们在 EB 上部署网站/应用程序,而 lambda 通常用于触发功能,例如当图像上传到 S3 时处理图像。

  2. Lambda 一次只能处理一个请求,而 EB 可以处理的并发请求数量取决于您的底层基础设施。因此,如果您有 100 个请求,则会创建 100 个 lambda,而这 100 个请求可以由 EB 中的一个底层 EC2 实例处理

  3. Lambda 是无服务器的(底层基础设施完全从开发人员那里抽象出来)。而 EB 是基础设施配置的自动化。您仍然可以在 AWS 控制台中看到您的 EC2 实例、负载均衡器、自动扩展组等。您甚至可以通过 ssh/rdp 连接到您的实例并更改正在运行的服务。AWS EB 还允许您拥有自定义 AMI。

  4. Lambda 存在冷启动问题,因为在 lambda 中,基础设施需要由 AWS 按需配置,而在 EB 中,您通常已经配置了 EC2 实例来处理您的请求。