amazon-web-services - 在无响应系统的情况下自动启动/停止 AWS 实例
问题描述
有时我会遇到 AWS 实例正在使用 100% 的 CPU 资源——因为硬件和软件虚拟化之间存在冲突。更确切地说,它是一个名为“系统中断”的进程,它消耗了所有 CPU 资源。这可以通过停止实例、等待一段时间然后再次启动实例来简单地解决(因此它将在其他硬件上启动 - 只是重新启动不起作用)。
我现在的问题是:当系统无响应时,停止 AWS 实例并在 1 分钟后自动重新启动实例的最简单方法是什么?这可以在 AWS 生态系统本身内以某种方式完成吗?
不太简单的方法是让另一个系统 ping 服务器,如果它没有响应 - 然后我可以执行一个包含所需操作的自定义脚本。但我希望存在更简单的解决方案?
解决方案
当实例达到一定的 CPU 百分比时创建 CloudWatch 警报。
在 AlertState 期间添加触发器以触发 Lambda。Lambda 将调用 AWS CLI 来运行 StopInstance 方法,然后休眠 1 分钟,然后运行 StartInstance 方法。
示例函数:https ://www.howtoforge.com/aws-lambda-function-to-start-and-stop-ec2-instance/
推荐阅读
- r - 为什么 dplyr group_by、summarise 和 weighted mean 会引发错误
- javascript - 如何更改可见地址
- c# - JwtBearerAuthentication 没有设置 HttpContext 用户
- c - C中带有插入排序程序的双向链表
- xml - 无法从嵌套的多人游戏 XML 创建数据框
- php - Laravel 通过 eloquent 存储多对多关系
- r - 我可以对主成分分析进行事后分析吗?
- pandas - 根据列名删除重复列
- java - mvn dependency:go-offline 在升级几个依赖项后失败
- matlab - 试图将 8 个数字放入 2 个窗口中