作为一个系统pipe理员或亚马逊aws我没有太多的经验,所以我希望有人能够简单地解释或者向我推荐一个关于如何实现下面的指导。
我有一个系统上运行ec2和亚马逊rds获取数据,并将其保存到数据库。
我需要每天运行一次脚本(在一天结束的时候)来处理所有的数据,并准备每日报告。 这个过程大概需要一个小时才能运行。 它需要在高内存实例上运行
从目前为止我所读到的内容来看,我认为最好的办法是每天运行一个高内存点实例,设置它在启动时执行脚本,并在完成时closures。
这是正确的做法吗? 如果是的话,该怎么做呢? 如何告诉现场实例每天运行? 通过另一台服务器上的cron作业还是有更好的办法吗? 如何设置启动时运行脚本? 通过cloudinit?
任何帮助,将不胜感激。
最后一件事,只要它每天运行,这项工作就不是很敏感。
谢谢
竞价型实例可能不是您的案例中最好的机制。 您需要每天执行这个过程,并且一旦启动,最有可能完成执行。
竞价型实例可能无法在您需要时运行。 如果您的出价太低,或者没有容量,那么您将无法获得您的实例。 另外,一旦你的实例已经开始,如果出价高于最高价格,那么实例将在有时间完成之前终止。
您可以使用较高的最高出价来尽量避免这些问题,但是没有保证。
根据成本的不同,你可以看一下保留的实例(在你的情况下,一个简单的保留实例可能就足够了),或者只是一个按需实例,你只需要在一天结束的时候运行。
亚马逊没有任何实例启动/停止的时间安排,所以你需要使用像cron或其他自动调度工具。
可以使用具有计划的自动缩放来安排日常处理任务。 在此可以使用指南在带有Auto Scaling的定期计划上运行EC2实例