对于这个长时间运行的后台作业使用哪种 AWS 服务/解决方法?

问题描述 投票:0回答:1

因此,首先介绍一下我将要运行的作业类型,这是一个 30 分钟长的作业,无法从多处理器架构中受益(因为开源库不支持它)。

现在,我们手动配置其扩展计划,并将其作为启动类型为 EC2 的 ecs 任务运行。(它在 3 小时内扩展到 50 多个任务,然后又回到 1)。每个 ecs 任务都运行自己的作业实例。

我现在想将其转移到一种更自动化的方法,在每次调用 api 时都会启动 ecs 任务,以便它可以自动扩展并实现这一目标,同时不会在 AWS 上产生任何额外的空闲费用。

到目前为止我探索过的选项 -

  1. Lambda - 由于 15 分钟的硬运行限制,无法使用此功能。
  2. 应用程序运行程序 - 无法使用此功能,因为在后台运行作业的情况下,它将极大地限制实例的 vCPU 。
  3. Fargate - 它会产生闲置费用。

那么你们能否帮我提供一些选项/解决方法,并提供相关的链接/教程/帖子来实现相同的功能?

amazon-web-services docker aws-lambda amazon-ecs background-process
1个回答
0
投票

我可以看到三个选项。

  1. 按计划使用自动缩放组:https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scheduled-scaling.html

  2. 使用 EventBridge 计划触发 lambda 来启动/停止 EC2 实例:https://repost.aws/knowledge-center/start-stop-lambda-eventbridge

  3. 实现实例调度程序堆栈:https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws/

后者稍微复杂一些,因为您需要启动 CF 堆栈,但确实允许您在此之后管理 EC2,而无需仅通过编辑实例标签来触及该堆栈。

© www.soinside.com 2019 - 2024. All rights reserved.