AWS Lambda 容器镜像支持与 Fargate

Kap*_*oor 4 amazon-web-services amazon-ecs aws-lambda aws-fargate

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

我根据以下因素进行评估

  1. 2 服务的定价模型
  2. 冷启动问题
  3. 轻松将 Lamda 与其他 AWS 服务集成
  4. 使用 docker 容器轻松进行离线开发(我认为现在没有那么重要了)

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

Jen*_*ens 10

尽管这两种服务现在都允许您运行 Docker 映像,但它们的目标应用程序类型不同。

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

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

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

其次,你需要检查什么你真的想在容器中运行。正如我之前所说,Lambda 是为小型、短期运行的功能而设计的,而不是“托管”整个应用程序(例如,带有 Node/Rails/Django 应用程序的 Web 服务器)。如果您想在 Lambda 上运行整个应用程序,则需要对其进行分解。S3 等上的静态文件,以及带有 AWS API Gateway 和 AWS Lambda 的后端 API。

也就是说,如果你真的希望你的容器运行时间少于 900 秒并想在两者之间进行比较,那么这里还有一些想法:

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

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