在AWS自动扩展组上运行crontab

我有以下设置:1应用程序X的服务器,每小时运行一次crontab。 crontab连接到数据库并运行一些繁重的计算,并将数据导出到特定的数据文件并重新启动应用程序。 导出可以在10分钟到40分钟之间运行。

我要:

我没有一个关于如何做这个或任何AWS特定解决scheme的“简单”的想法。

这是我的想法:

  • 在自动缩放组外运行一台服务器。 只在该服务器上执行crontab。 所有的数据文件将被上传到S3。

  • 所有自动缩放服务器都将有一个每分钟运行一次的crontab并检查一个唯一文件“please_download_me_TIMESTAMP”

  • 一旦文件被下载,脚本将重新启动服务。

  • 如果新服务器启动,在启动时它将自动从S3中获取所有文件。

你认为这会起作用吗?

这是AWS EC2中的常见问题,已解决。 有关实现的示例,请参阅https://gist.github.com/kixorz/5209217

承认这是从2015年起的老问题,乔碰到了,所以我不妨回答一下。

如果这项工作每小时一次,需要10-40分钟,那么无论如何你都要支付一整小时。 启动和closures服务器没有意义,只是让服务器运行。

如果不是那么频繁的,你可以有一个定时事件,把一条消息放到一个SQS队列中 – 这可以通过t2.nano完成,也可以有一个更便宜的方式来与亚马逊服务 – Lambda? 基于队列大小的自动缩放。 当有数据需要处理时,服务器被创build,处理数据,随时随地移动数据,然后closures数据。

另一种方法是基于时间的缩放,但是再一次只有在小时的情况下。