【发布时间】:2019-08-08 22:43:56
【问题描述】:
我的问题的核心是使用 Amazon 系统映像 + Micro Spot 实例运行任务与使用弹性容器服务 (ECS) 相比是否有缺点。
这是我的情况:我需要按需运行由远程 Web 挂钩触发的任务。
此任务有可能连续触发 10 次,或者持续数周而无法执行,因此我绝对想要一项仅按需运行(和计费)的服务。
我的计划是将 webhook 指向 Lambda 函数,但问题是让 Lambda 函数做什么。
虽然不需要很长时间,但这个任务需要几个不同的运行时(Powershell Core、Python、PHP、Git)来完成它的工作,所以 Lambda 是不可能的,因为我会点击部署包大小限制。但我可以使用 Lambda 来开始这项工作。
我开始做的是创建一个包含所有必要运行时和代码的 AMI,然后使用 Spot 请求启动一个实例,让它通过通过 userdata 传入的启动脚本执行操作,然后在它运行时自行关闭完毕。我必须加入一些速率控制逻辑来防止两个同时运行,但这是一个可以解决的问题。
当我意识到我可以在 ECS 上使用 Fargate 的 docker 容器来完成此解决方案时,我在开发此解决方案的过程中犹豫了。
当我不是 docker pro 并且已经配置了 AMI 时,我只是不知道将额外的开发时间切换到 docker 容器是否有任何好处。此外,ECS/Fargate 实际上比仅仅运行一个微型实例更昂贵。
对于在一天内可能触发十几个的短期(
【问题讨论】:
-
我不能直接回答这个问题,但我可以告诉你现场实例,即使你终止它,你也会支付小时费。如果您已经将所有内容放在一起,那么从中制作 docker 图像并不是一个很大的跳跃。您必须测量任务的执行时间,并据此计算价格。 Fargate 按秒计费。我知道估算价格不是最简单的任务。
标签: amazon-web-services amazon-ec2 amazon-ecs