AWS Cloudwatch调度

时间:2018-07-13 16:58:23

标签: amazon-web-services aws-lambda amazon-cloudwatch

我目前拥有一个lambda函数,该函数可以停止我的EC2实例(4个虚拟服务器),并且已经使用Cloudwatch创建了一个时间表来启动该lambda函数,以在周一至周五的6:30 PM停止我的服务器。那部分效果很好。

但是,如果我在例如3PM的服务器上运行特定于应用程序的分析批处理,则有时运行分析的应用程序需要4-5个小时才能完成,这意味着CloudWatch实际上将在6点停止服务器:在分析过程中处于下午30点。有没有一种方法可以内置异常来检查服务器上的CPU使用率是否大于10%,从而延迟cloudwatch事件?

我尝试在CloudWatch中创建警报事件,以在CPU利用率指标<10%时关闭特定的EC2服务器,但是如果不使用它,这实际上会在工作日将其关闭,这不是我所需要的。

最终,我希望能够编写一个脚本(lambda函数)来检查周一至周五下午6:30的CPU利用率是否低于10%(如果是),然后停止服务器。如果不是,则保持每小时检查一次。在这一点上,我很乐意提出任何建议。预先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我相信您可以使用AWS Step functions进行定义 您可以创建一个工作流程,

  • 每小时运行一次(请参见documentation
  • 每小时检查一次时间和服务器上的CPU负载(使用2 lambda function Tasks
  • 如果时间是从630到午夜(从星期一到星期五),请检查CPU-see resultpath doc
  • 如果CPU的<10%关闭实例。否则什么都不做