根据 EC2 实例上运行的进程数进行扩展

根据 EC2 实例上运行的进程数进行扩展

我有一个用例,其中多个 python 脚本将在 ec2 上并行运行。它们读取 SQS 队列并执行操作,例如从 S3 下载、解析文件、拆分、处理和更新数据库。脚本每 5 分钟运行一次。如果 SQS 为空,脚本将不执行任何操作并退出。如果 SQS 有消息,它将由脚本处理,该脚本可能会运行一个多小时。因此运行持续时间会有所不同。

在自动缩放中,我看到有基于平均 CPU 利用率进行缩放的选项,但是 CPU 使用的随机性使其不能成为何时进行缩放的好指标(例如,python 脚本在执行磁盘 io 操作时将占用更多 CPU。但其他时候它占用内存但不需要 CPU)

有没有办法根据 ec2 实例上运行的 python 进程数量进行扩展?这样当并行调用数达到 10 时,实例就会扩展?

此外,有没有办法指定缩小比例应该不是如果 ec2 实例中至少有一个 python 进程正在运行(即使该进程占用的 CPU 不到 5%),则会发生这种情况,因为缩减规模会终止正在进行的进程,如果缩减规模可以在 python 进程完成后发生,效果会更好

图中没有负载均衡器。

相关内容