通过OOS自动启动意外停止的ECS实例
更新时间:2020-01-06 16:27:45
极端情况下ECS实例可能会意外停止,如果通过OOS的事件触发器对ECS实例进行监控,一旦实例停止事件发生,则自动地对实例执行启动逻辑,进而实现ECS实例的快恢复,公共模版指定标签下的实例关机时自动重启。
步骤拆分
- 对阿里云账号下的ECS实例分组。
- 监控是否有ECS实例停止事件的发生。
- 一旦有ECS实例停止,检查其是否为需要启动分组的ECS实例。
- 校验停止的实例是否属于自动启动的分组。若不属于,则忽略此ECS实例的停止事件;若属于,则执行后续逻辑。
- 启动停止的实例。
- 等待停止的实例启动成功。
公共模版任务
- 监控变为停止状态ECS实例。
- 检查ECS实例是否有指定的分组标签。
- 若不带标签则忽略实例的停止。
- 若带标签则启动该实例。
模版参数
- tags :要自动启动实例的标签
- OOSAssumeRole: OOS扮演的RAM角色。
操作指南
- 首先登录到运维编排控制台 。
- 单击 公共模板,选择指定标签下的实例关机时自动重启 。
- 单击 创建执行。
- 单击 下一步,设置参数 。
单击 下一步,确定 ,单击 创建执行 。在执行管理中可查看刚刚创建的执行,若创建执行成功,且执行状态处于等待中,则表示ECS实例已开始被监控,一旦有ECS实例被停止,则会触发eventTrigger任务后面的任务执行。
那么我们现在就演示下ECS实例自启动,下图是该Tag下运行中的3台实例。
- 我们现在通过手动停止这3台实例,模拟实例意外停止。
当实例停止后,执行状态由等待中转换为运行中,开始执行对停止的ECS实例的启动。
片刻后,刷新ECS实例的状态,可发现该Tag下被停止的ECS实例已经自启动完成,又变回了运行中状态。