【问题标题】:Stop (not terminate) an EC2 Instance when CPU drops below certain level当 CPU 低于某个水平时停止(不终止)EC2 实例
【发布时间】:2015-12-20 19:35:42
【问题描述】:

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

我可以使用自动缩放来仅停止实例吗(不终止;这样我以后启动服务器时就不需要 AMI);然后在 CPU 增加到 x% 以上时启动实例(我已停止的旧实例)!

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

【问题讨论】:

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


    【解决方案1】:

    我认为您可以通过以下方式做到这一点:

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

    参见与Invoking Lambda from SNS相似的Scaling ECS文章。

    【讨论】:

    • 这个答案比我的好。
    • 是的,这是正确的答案。它比我有更多的细节。
    【解决方案2】:

    目前无法使用 AutoScaling 停止实例。 AutoScaling 只能根据 CloudWatch 警报等启动新实例和终止实例。

    要做您想做的事,您需要停止使用 AutoScaling 并使用另一个“工作”EC2 实例来替换 AutoScaling。该“工作”实例需要 24/7 全天候运行,它将监控您的其他 EC2 实例的 CPU 并适当地启动和停止它们。

    【讨论】:

      【解决方案3】:

      AutoScaling 无法做到这一点。您可以禁用 AutoScaling 并让 CloudWatch 触发一些 Lambda 函数来启动/停止您的实例。

      【讨论】:

      • 通过 cloudwatch 我们可以停止实例.. 但是我们如何通过 Cloudwatch 启动实例呢?
      • @Deepak 你读过我说你会使用 Lambda 的部分吗?
      猜你喜欢
      • 2022-11-23
      • 2015-11-10
      • 1970-01-01
      • 2013-10-16
      • 2014-05-16
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多