为了视频渲染的目的,启动一个新的 EC2 实例来处理 SQS 中的每条消息是否正确?

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

我创建了一个 python 脚本,该脚本在 EC2 实例上使用 Selenium 处理视频,从 SQS 队列中获取每条消息的输入。这对于单个视频来说效果很好,但我需要同时处理数百个视频。我当前的解决方案是为 SQS 队列中的每条消息启动一个新的 EC2 实例,使用以下服务:

  • SQS 队列保存每个视频渲染任务的元数据
  • EC2 模板的 EC2 AMI
  • 用于扩展的 EC2 Auto Scaling 组
  • 用于启动新 EC2 实例的 Lambda 函数

我还想知道是否应该从 SQS 检索每个 EC2 的批次,而不是一次一条消息,以减少启动的实例数量,从而为了成本而牺牲速度。

这在架构方面是正确的方法吗?

amazon-web-services amazon-ec2 aws-lambda amazon-sqs aws-auto-scaling
1个回答
0
投票

我认为更好的方法是使用AWS Batch。甚至可以将其与 Fargate 一起使用。不过,在某些情况下,使用 EC2 而不是 Fargate 更好。您可以在这里阅读相关内容https://docs.aws.amazon.com/batch/latest/userguide/fargate.html#when-to-use-fargate。 您仍然需要 Lambda 函数来启动 AWS Batch 作业。

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