当CPU降至某个水平以下时,停止(不终止)EC2实例

时间:2015-09-23 13:01:24

标签: amazon-web-services amazon-ec2 autoscaling amazon-cloudwatch

我有两个服务器(我的应用程序已经运行)从Ubuntu AMI创建。 使用自动缩放时,它使用AMI启动新实例。

我可以使用自动缩放来仅停止实例(不终止;以便将来启动服务器时不需要AMI);然后每当CPU增加到x%以上时启动实例(我已停止的旧实例)。

如果没有自动缩放;我也可以使用任何其他解决方案。我可以使用Cloudwatch停止实例,但如何重新启动呢?

3 个答案:

答案 0 :(得分:5)

我认为你可以用以下方法做到这一点:

  • CloudWatch指标:记录CPU使用率
  • CloudWatch警报:当CPU指标高于/低于此值时发出警报 一些门槛
  • SNS主题:触发CloudWatch警报时发送通知
  • Lambda函数:由SNS调用以停止/启动相关的EC2实例

请参阅类似的Scaling ECS文章和Invoking Lambda from SNS

答案 1 :(得分:1)

目前无法使用AutoScaling停止实例。 AutoScaling只能基于CloudWatch警报等启动新实例并终止实例。

要做你想做的事,你需要停止使用AutoScaling并使用另一个" worker" EC2实例替换AutoScaling。那个"工人"实例需要全天候运行,它将监视其他EC2实例的CPU并适当地启动和停止它们。

答案 2 :(得分:0)

无法使用AutoScaling完成。您可以停用AutoScaling并CloudWatch触发一些Lambda功能来启动/停止您的实例。