AWS ECS Fargate 任务与 SQS 并行化
AWS ECS Fargate task parallelization with SQS
我有一个 SQS FIFO 队列,每次我想处理数据时都会在其中发送消息。我每天发送 1-2 次批量数据,我想用 ECS Fargate 一起处理它们,因为我处理的每条消息都需要 10 分钟。此外,每次我使用一条消息时,ECS 任务都会关闭。
所以我的计划是找到一种方法来根据 SQS 可用消息触发新任务。
我找到了这篇关于 ECS Fargate 与 SQS 并行化的文章
- https://medium.com/nbtl/deploy-low-cost-ecs-tasks-based-on-sqs-queue-size-with-aws-cdk-8f5a47fc529d
- https://peritossolutions.com/aws/scaling-aws-ecs-fargate-on-application-events-with-sqs-lambda/
两者都指的是我没有使用的 ECS 服务,因为 Desired Count 变量将始终成为一项任务 运行,这将导致不必要的成本。
关于如何实现它有什么建议吗?
both refer to ECS Services that I'm not using due to the Desired Count
variable which will make always a task run and this will lead to an
unnecessary cost.
ECS 服务正是您在这里需要使用的。当队列中没有消息时,所需计数可以为 0,这将防止产生任何费用。您应该创建一个轮询 SQS 队列的 ECS 服务,并将 ECS 自动缩放配置为根据队列中的可用消息数从 0 扩展到 N 个服务实例。
我有一个 SQS FIFO 队列,每次我想处理数据时都会在其中发送消息。我每天发送 1-2 次批量数据,我想用 ECS Fargate 一起处理它们,因为我处理的每条消息都需要 10 分钟。此外,每次我使用一条消息时,ECS 任务都会关闭。
所以我的计划是找到一种方法来根据 SQS 可用消息触发新任务。
我找到了这篇关于 ECS Fargate 与 SQS 并行化的文章
- https://medium.com/nbtl/deploy-low-cost-ecs-tasks-based-on-sqs-queue-size-with-aws-cdk-8f5a47fc529d
- https://peritossolutions.com/aws/scaling-aws-ecs-fargate-on-application-events-with-sqs-lambda/
两者都指的是我没有使用的 ECS 服务,因为 Desired Count 变量将始终成为一项任务 运行,这将导致不必要的成本。
关于如何实现它有什么建议吗?
both refer to ECS Services that I'm not using due to the Desired Count variable which will make always a task run and this will lead to an unnecessary cost.
ECS 服务正是您在这里需要使用的。当队列中没有消息时,所需计数可以为 0,这将防止产生任何费用。您应该创建一个轮询 SQS 队列的 ECS 服务,并将 ECS 自动缩放配置为根据队列中的可用消息数从 0 扩展到 N 个服务实例。