首页 > 解决方案 > 在无响应系统的情况下自动启动/停止 AWS 实例

问题描述

有时我会遇到 AWS 实例正在使用 100% 的 CPU 资源——因为硬件和软件虚拟化之间存在冲突。更确切地说,它是一个名为“系统中断”的进程,它消耗了所有 CPU 资源。这可以通过停止实例、等待一段时间然后再次启动实例来简单地解决(因此它将在其他硬件上启动 - 只是重新启动不起作用)。

我现在的问题是:当系统无响应时,停止 AWS 实例并在 1 分钟后自动重新启动实例的最简单方法是什么?这可以在 AWS 生态系统本身内以某种方式完成吗?

不太简单的方法是让另一个系统 ping 服务器,如果它没有响应 - 然后我可以执行一个包含所需操作的自定义脚本。但我希望存在更简单的解决方案?

标签: amazon-web-servicesamazon-ec2interrupt

解决方案


当实例达到一定的 CPU 百分比时创建 CloudWatch 警报。

在 AlertState 期间添加触发器以触发 Lambda。Lambda 将调用 AWS CLI 来运行 StopInstance 方法,然后休眠 1 分钟,然后运行 ​​StartInstance 方法。

示例函数:https ://www.howtoforge.com/aws-lambda-function-to-start-and-stop-ec2-instance/


推荐阅读