在AWS上管理员工

Gor*_*oro 3 python rabbitmq amazon-web-services celery

我偶尔会有高CPU密集型任务.它们被启动到一个单独的high-intensity队列中,由一台非常大的机器(大量的CPU,大量的RAM)消耗.但是,这台机器每天只需要运行一个小时.

我希望在AWS上自动部署此映像,由high-intensity队列中的未完成消息触发,然后在不忙时安全停止.有点像:

  • 一些代理(可能是我自己的软件在我的监视器服务器上运行)检查队列大小,确定有x > x_threshold新的工作要做(例如,如果有5个未完成的"大"工作,我想触发")
  • 启动特定AWS实例,向代理(RabbitMQ)注册自己并使用作业
  • 一旦工人闲置了一些t > t_idle(比如说超过10分钟),机器就会关闭.

我可以使用任何工具来简化自动化过程,还是我必须自己引导所有东西?

Ben*_*ley 5

您可以将自定义指标公开到AWS CloudWatch,然后根据自定义指标设置自动缩放触发器扩展策略.Autoscale可以为您启动实例,并根据您的策略将其终止.您必须在启动配置中包含适当的用户数据以引导主机.就像任何EC2实例的userdata一样,它可以是bash脚本或ansible playbook,也可以是你选择的配置管理工具.