技术分享 | EC2自动恢复系统

在 MSP 托管运维的生产环境中,EC2 实例可能因操作系统异常、内核崩溃、网络栈故障、底层硬件问题等原因导致实例健康检查失败(Status Check Failed)。

传统处理方式通常依赖人工排查,易存在以下问题:

• 故障发现不及时

• 夜间无人值守

• 恢复耗时长

• 运维流程割裂

• Case 提交依赖人工操作

公众号封面 (25)

为提升系统高可用性与运维自动化能力,我们构建了一套基于亚马逊云的自动故障恢复与智能告警闭环系统,当 EC2 实例健康检查失败时,系统自动恢复实例,通过 Kiro 创建 Amazon Support Case,并通过飞书机器人发送通知。

整体修复流程图

image1

具体步骤

本文介绍了如何在 ec2 机器故障时,利用检测机制实现自动恢复和 case 创建调查。

1.Kiro 服务器部署

1.1   系统更新

sudo apt-get update && sudo apt-get upgrade -y

sudo apt-get install -y python3 python3-pip curl wget git

Python 配置

image2

image3

1.2   Kiro 安装

image4

1.3   Amazon CLI安装,并配置亚马逊云凭证

image5

1.4   Kiro HTTP 服务配置

image6
配置完成后启动服务,检查 HTTP 服务是否正常运行

image7

2.通过 Cloudformation 创建亚马逊云资源

在创建 cloudformation 请把 FeishuWebhookURL 填写(可直接在飞书群内拉机器人获取 WebhookURL)

image8

image9

image10

3.对需要在健康检查异常时重启的机器创建标签,通过标签判断能否执行重启,主要是 AutoRecovery 标签。

image11

4.手动向 lambda 发送故障测试,触发 AutoRecovery role 对机器执行 stop/start 操作,以代表机器健康检查失败时恢复操作。

image12

恢复后 Kiro 创建 case,并同步飞书

image13

image14

总结

通过构建基于 CloudWatch、Lambda、Step Functions、Kiro 与飞书通知的 EC2 自动恢复闭环体系,实现了故障自动检测、实例自动恢复、Support Case 自动创建以及告警自动通知,大幅提升了生产环境故障响应效率与运维自动化能力,减少了人工介入与业务中断时间。

posted @ 2026-06-01 11:26  伊克罗德信息  阅读(6)  评论(0)    收藏  举报