AWS Fargate 是否像 Lambda 一样真正无服务器?任务完成后会自动关闭吗?

Moj*_*imi 5 amazon-web-services amazon-ecs aws-lambda serverless aws-fargate

这在文档中对我来说确实不清楚。而且控制台的配置非常混乱。

在负载均衡器关闭后以 Fargate 模式运行的 Docker 集群是否会在不使用时向我收费?

冷启动怎么办?我需要像 Lambda 一样在 Fargate 中关心这个吗?

它的水平度比 Lambda 低吗?连接到 API Gateway 的 lambda 将为每个并发请求生成一个新函数,Fargate 也会这样做吗?或者负载均衡器会决定它吗?

我已经在 Lambda 中运行 Flask/Django 应用程序一段时间了(使用 Serverless/Zappa),将它们迁移到 Fargate 有什么好处吗?

它似乎比 Lambda 更昂贵,但如果 Lambda 限制不是问题,那么 Lambda 应该总是更好的选择,对吗?

Joh*_*tts 7

在负载均衡器关闭后以 Fargate 模式运行的 Docker 集群是否会在不使用时向我收费?

  • 这将取决于您如何配置 AutoScaling 组。如果你允许它缩小到 0 那么是的。

冷启动怎么办?我需要像 Lambda 一样在 Fargate 中关心这个吗?

  • 这里已经对此进行了一些很好的研究: https: //blog.cribl.io/2018/05/29/analyzing-aws-fargate/ 但要点是对于较小的实例,您不应该再注意到,大约 40 秒的时间即可获得到运行状态。对于较大的,这将需要更长的时间。

它的水平度比 Lambda 低吗?连接到 API Gateway 的 lambda 将为每个并发请求生成一个新函数,Fargate 也会这样做吗?或者负载均衡器会决定它吗?

  • ECS 不会为每个并发请求创建一个新实例,任何扩展都将在 AutoScaling 组之外完成。负载均衡器对扩展没有任何控制,它只会平衡负载。然而,它可以提供的指标可用于帮助确定是否需要扩展

我已经在 Lambda 中运行 Flask/Django 应用程序一段时间了(使用 Serverless/Zappa),将它们迁移到 Fargate 有什么好处吗?

  • 我没有使用过 Flask 或 Django,但人们倾向于迁移到无服务器的主要原因是消除了维护服务器扩展的需要,这包括管理实例类型、集群调度、优化集群利用率

@abdullahkhawer 我同意他关于坚持使用 lambda 的观点。除非您需要某些东西始终运行并且始终在 99% 的时间内被使用,否则 lambda 会比运行 VM 便宜。

定价示例

1 个 t2.medium 按需 EC2 实例 = ~36 美元/月

256MB 3 秒运行 lambda 的 200 万次调用 = 0.42 美元/月


abd*_*wer 5

使用 AWS Fargate,您只需为容器化应用程序从拉取容器映像到 AWS ECS 任务(在 Fargate 模式下运行)终止期间请求的 vCPU 和内存资源量付费。最低收费为 1 分钟。因此,您需要在任务(一组容器)运行之前付费,这更像是 AWS EC2,但按分钟计费,而不像 AWS Lambda 那样按请求/调用付费

AWS Fargate 不会像 AWS Lambda 那样针对每个请求生成容器。AWS Fargate 的工作原理是在 AWS 内部管理的一组 AWS EC2 实例上运行容器

AWS Fargate 现在支持按计划运行任务并响应 AWS CloudWatch Events。这使得启动和停止容器服务变得更加容易,您只需在特定时间运行即可节省资金

请记住您的使用案例,如果您的应用程序不会由于任何 AWS Lambda 限制而在生产环境中出现任何问题,那么 AWS Lambda 是更好的选择。如果在生产环境中AWS Lambda调用过多(例如,每个时间点超过 1K 的并发调用),那么请选择 AWS EKS 或 AWS Fargate,因为 AWS Lambda 可能会花费更多