AWS Lambda 容器镜像支持与 Fargate

AWS Lambda Container Image Support Vs Fargate

我正在评估使用 Docker 容器的解决方案。现在 lambda 也支持容器镜像,这也在我的考虑范围内。

我根据以下因素进行评估

  1. 2 项服务的定价模式
  2. 冷启动问题
  3. Lamda 与其他 AWS 服务的轻松集成
  4. 使用 docker 容器简化离线开发(我认为现在不那么相关)

这两项服务之间我还需要考虑其他因素吗?

虽然这两种服务现在都允许您 运行 Docker 图片,但它们都有不同的目标应用程序类型。

通常,您需要 Docker 容器 运行 一段时间,而不是几秒钟。此外,您通常会在 Docker 图像中拥有“整个”应用程序。

Lambda 为小型任务提供较短的 运行ning 计算能力(秒到分钟),而不是整个应用程序(它们称为 Lambda 函数)。因此,使用您的“指标”比较它们可能不是正确的方法。

首先,您需要了解 您希望容器 运行 多长时间。如果答案超过 900 秒,则无需将 Fargate 与 AWS Lambda 进行比较,因为 Lambda 最多只能 运行 900 秒。

其次,您需要检查您实际想要运行容器中的内容。正如我之前所说,Lambda 是为小而短的 运行ning 功能而设计的,而不是“托管”整个应用程序(例如带有 Node/Rails/Django 应用程序的 Web 服务器)。如果您想 运行 Lambda 上的整个应用程序,您需要将其分解。 S3 等上的静态文件,后端 API 使用 AWS API 网关和 AWS Lambda。

就是说,如果您真的希望容器 运行 小于 900s 并且想比较两者,那么这里还有一些想法:

  1. 可用资源量(内存、vCPU)
  2. 易于部署(取决于您的开发实践)
  3. 它们的测试效果如何?
  4. 您的团队对这两种技术的熟悉程度如何?
  5. 安全模型的差异?保护起来有多容易?

其中一些在很大程度上取决于您的经验、团队和您的实践,但应该考虑在内。