自动挂起空闲的AWS实例

时间:2019-12-11 14:54:21

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

我必须为一个偶尔被使用的Web应用程序设置一个AWS实例,一次几个小时,每个月几次。该应用程序在虚拟cpus和内存方面需要一个较大的实例,因此使其以24/7全天候运行将耗费大量资金,并且由于使用时间少于5%,因此我正在寻找一种自动挂起的方法例如,如果CPU利用率低于10%的时间超过2小时(例如)。另外,理想情况下(但不是严格要求),如果应用程序的URL被暂停,则对应用程序URL的请求将启动该实例。

  1. 我的第一个想法是设置CloudWatch来记录对URL的任何请求以及实例的CPU使用率。然后,Lambda函数会定期检查上一个请求是否在2小时之前,并且这段时间的CPU使用率也很低;如果为true,则挂起实例。
  2. 可以通过具有特殊的“唤醒” URL(与应用程序的URL分开)来启动实例,该URL会触发lambda函数以在睡眠时唤醒实例。

是否有推荐的或更标准的方法来实现这一目标?

2 个答案:

答案 0 :(得分:1)

您可以在实例上运行一个脚本,该脚本不断地测量“使用情况”。 (此方法的实际定义由您决定,它可能取决于应用程序的使用或CPU,或者您想定义它。)

一旦脚本确定该实例未被使用,则只需发出操作系统关闭命令。如果实例为Shutdown Behavior = Stop,则该实例将正常关闭并停止。

然后您可以使用“唤醒”过程再次启动该实例。

答案 1 :(得分:0)

您可以创建自动缩放组,该组从Elastic LB后面的1个实例开始。当有给定参数的负载(例如cpu负载,内存使用情况,网络流量等)时,会自动创建新实例。当负载减少时,它也会自动关闭实例。无需使用lambda;)