通过OOS自动启动意外停止的ECS实例

极端情况下,云服务器 ECS(Elastic Compute Service)实例可能会意外停止。通过系统运维管理 OOS(CloudOps Orchestration Service)的事件触发器监控ECS实例时,一旦发现实例停止,将自动启动以快速恢复运行。相关公共模板为ACS-ECS-AutoStartECSWhenStoppedByTags。

步骤拆分

  1. 对阿里云账号下的ECS实例分组。

  2. 监控是否有ECS实例停止事件的发生。

  3. 一旦有ECS实例停止,检查其是否为需要启动分组的ECS实例。

  4. 校验停止的实例是否属于自动启动的分组。若不属于,则忽略此ECS实例的停止事件;若属于,则执行后续逻辑。

  5. 启动停止的实例。

  6. 等待停止的实例启动成功。

公共模板任务

  1. 监控变为停止状态ECS实例。

  2. 检查ECS实例是否有指定的分组标签。

  3. 若不带标签则忽略实例的停止。

  4. 若带标签则启动该实例。

模板参数

  • tags:要自动启动实例的标签。

  • OOSAssumeRole:OOS扮演的RAM角色。

操作指南

  1. 登录系统运维管理控制台。

  2. 单击自动化任务 > 公共任务模板,搜索ACS-ECS-AutoStartECSWhenStoppedByTags。

  3. 单击创建执行

  4. 单击下一步,设置参数

  5. 单击下一步,确定,单击创建。在自动化任务 > 任务执行管理中可查看刚刚创建的执行,若创建执行成功,且执行状态处于等待中,则表示ECS实例已开始被监控,一旦有ECS实例被停止,则会触发eventTrigger任务后面的任务执行。

  6. 演示ECS实例自启动。查看下图,这是该标签下运行中的3台实例。

  7. 现在,手动停止这3台实例,以模拟实例意外停止的情况。

  8. 当实例停止后,执行状态由等待中转换为运行中,开始执行对停止的ECS实例的启动。

  9. 片刻后,刷新ECS实例的状态,确认该标签下的已停止实例已自动启动并恢复到运行中状态。