低成本的日常云容器作业执行
Posted
技术标签:
【中文标题】低成本的日常云容器作业执行【英文标题】:Low-cost daily cloud container job execution 【发布时间】:2016-12-16 21:01:23 【问题描述】:我有几项工作要在云计算平台上执行,每天大约需要 30 分钟。
我不想在剩余的 23.5 小时内为计算资源付费。
有哪些计算云平台选项可以让我以非常低的成本运行这些作业?
使用 Amazon EC2 容器服务,当我不需要时,我不希望有一个包含正在运行的实例的集群。我可以每天销毁和创建集群,但这似乎效率低下。我可以使用 ASG 将运行实例缩减到零吗?
Google Compute Cloud 似乎允许我保持集群的配置,但可以毫不费力地将容器集群中的实例数量缩减到零,然后再扩大规模。但是一旦任务完成,如何自动触发这种缩放呢?
如果我使用 Amazon EC2,我可以为此使用 AWS Lambda 函数吗?
是否有一些以容器为中心的服务,我只为容器执行时间而不是计算资源付费?
【问题讨论】:
【参考方案1】:这里有很多不正确的术语。
您可以使用带有定时缩放的自动缩放组来每天向上/向下旋转。 然后您可以运行该任务。
如果您想完全自动化,我会改用 Lambda 来启动 ECS 集群,等待它准备好,然后运行任务并终止实例。
您需要为 lambda 执行时间、实例启动时间以及您在此期间使用的任何其他服务付费。
如果您希望它更快,您可以创建 ECS 集群并将实例加入其中,然后关闭它们。当他们关闭时,您不会产生任何费用。然后你的 lambda 可以启动它们,等到 ECS 集群准备好,然后执行。
Lambda 和 Autoscaling 组具有计时器触发器。 AWS 向您收取基础设施费用,它们不是 PaaS,这意味着您不能只运行一项任务并为此付费,您可以为基础设施付费并自己执行。 Lambda 是这里提到的唯一一个不需要托管和“执行时间”收费的服务。
【讨论】:
哪些术语不正确?您的答案看起来不错,我将尝试在计划的 lambda 中使用 javascript AWS SDK 来启动实例。当实例准备就绪时,我如何启动任务?使用docs.aws.amazon.com/AmazonECS/latest/developerguide/… ?一旦任务完成,我将如何安排实例停止?还是使用aws.amazon.com/datapipeline 更好? 您提到了使用 ELB 进行扩展和其他一些细微差别。 docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ECS.html 将向您展示如何在 ECS 上启动任务。 稍微编辑了问题并删除了错误使用 ELB。自动缩放组是我一直在寻找的术语。以上是关于低成本的日常云容器作业执行的主要内容,如果未能解决你的问题,请参考以下文章