jan*_*Dro 19 amazon-ecs aws-lambda serverless aws-fargate
我对整个无服务器环境都很陌生,而且我正试图在使用Fargate和Lambda时解决这个问题.
我知道Fargate是ECS的无服务器子集,Lambda也是无服务器的,但是由事件驱动.但我希望能够以简单的方式向其他熟悉容器的人解释这两种范例,而不是那些使用AWS和无服务器的人.
目前,我们有几个物理服务器负责接收文本文件,解析它们,并用结果填充几个数据库表.根据我的理解,我认为这将是一个更适合Lambda的用例,因为解析文本文件的过程是由计划触发的,不会长时间运行,并且在不使用时会减少.
但是,如果我们要移植一个接收API调用的服务器,我们可能会想要使用Fargate,因为我们总是需要至少一个映像实例启动并运行.
就容器而言,如果容器的设计是这样设计的话,可以安全地说:
docker run <some_input>
Run Code Online (Sandbox Code Playgroud)
然后这是Lambda的工作.
但是,如果容器设计为执行以下操作:
docker run --expose 80
Run Code Online (Sandbox Code Playgroud)
然后这是Fargate的工作.
这是一个很好的比喻吗?
Mar*_*k B 14
这是一个很好的类比的开始.但是,Lambda在可用CPU和RAM方面也有局限性,每次调用的最大运行时间为5分钟.所以任何需要更多资源或需要运行时间超过5分钟的东西都更适合Fargate.
此外,我不确定为什么你说某些东西更适合Fargate,因为你"总是需要至少一个实例运行".Lambda + API Gateway非常适合API调用,API Gateway随时可以接收API调用,然后它将调用Lambda函数来处理它(如果响应尚未缓存).
小智 11
重要的是要注意,使用Lambda,您不需要构建,保护或维护容器.你只是担心代码.现在已经提到过,Lambda有5分钟的时间限制和3GB内存限制(CPU按比例增加).此外,如果偶尔使用它,可能需要预热(按计划调用)以获得额外的性能
Fargate管理您需要定义,维护和保护的docker容器.如果您需要更多地控制代码运行的环境中可用的内容,则可能使用容器(或服务器),但管理层再次使用该容器.您还可以选择内存/ CPU大小以及运行运行所需的时间长度.
即使对于您提到的API服务器,您也可以将API网关放在前面并调用Lambda
| 归档时间: |
|
| 查看次数: |
9246 次 |
| 最近记录: |