我对整个 Serverless 环境还是很陌生,我正在努力思考何时使用 Fargate 与 Lambda。
我知道 Fargate 是 ECS 的无服务器子集,而 Lambda 也是无服务器的,但由事件驱动。但我希望能够向其他熟悉容器但不太了解 AWS 和无服务器的人解释这两种范式。
目前我们有几个物理服务器负责接收文本文件,解析它们,并用结果填充几个数据库表。根据我的理解,我认为这将是一个更适合 Lambda 的用例,因为解析文本文件的过程是由计划触发的,运行时间不长,并且在不使用时会下降。
但是,如果我们要移植到我们的一台接收 API 调用的服务器上,我们可能希望使用 Fargate,因为我们总是需要至少一个映像实例启动并运行。
就容器而言,笼统地说,如果容器的设计目的是:
docker run <some_input>
然后这是 Lambda 的工作。
但是,如果容器被设计为执行以下操作:
docker run --expose 80
然后这是 Fargate 的工作。
这是一个很好的类比吗?