运维编排服务系列-----自动启动意外停止的ECS实例

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 有时ECS实例可能因为某些意外原因被停止,可通过OOS的事件触发器对ECS实例进行监控,一旦实例停止,则对实例自动地执行恢复逻辑,比如自动启动,进而实现ECS实例的快恢复。

有时ECS实例可能因为某些意外原因被停止,可通过OOS的事件触发器对ECS实例进行监控,一旦实例停止,则对实例自动地执行恢复逻辑,比如自动启动,进而实现ECS实例的快恢复。

步骤拆分

  1. 对账号下的ECS实例进行监控。
  2. 一旦有ECS实例停止,则检查其是否为要自动启动的Tag下的ECS实例。
  3. 若不是该Tag下的实例,则忽略此ECS实例的停止,若是该Tag下的ECS实例,则执行后面逻辑。
  4. 对实例做一些恢复逻辑,此处对实例进行启动。
  5. 等待恢复逻辑执行成功,此处等待停止的实例启动成功。

OOS模版任务

  1. 通过OOS事件触发器监控所有的ECS实例是否停止。
  2. 若有实例停止,检查该实例是否为要被自启动Tag下的ECS实例。
  3. 若不是则忽略,实例的停止,若是则对该实例进行启动。
  4. 等待实例状态变为运行中。

模版内容

FormatVersion: OOS-2019-06-01
Description: Start ECS instance when instance is stopped.
Parameters:
  tagKey:
    Description: The tag key for query ECS instances.
    Type: String
    MinLength: 1
    MaxLength: 30
    Default: oostt
  tagValue:
    Description: The tag value for query ECS instances.
    Type: String
    MinLength: 1
    MaxLength: 30
    Default: oostt

Tasks:
- Name: whenInstanceStopped
  Action: 'ACS::EventTrigger'
  Properties:
    Product: ECS
    Name:
      - 'Instance:StateChange'
    Content:
      state:
        - Stopped
  Outputs:
    instanceId:
      ValueSelector: .content.resourceId
      Type: String

- Name: describeInstancesByTag
  Action: ACS::ExecuteApi
  Description: Views running ECS instances by specifying tag.
  Properties:
    Service: ECS
    API: DescribeInstances
    Parameters:
      Tags:
      - Key: '{{ tagKey }}'
        Value: '{{ tagValue }}'
  Outputs:
    instanceIds:
      Type: List
      ValueSelector: Instances.Instance[].InstanceId
- Name: checkInstanceReady
  Action: ACS::CheckFor
  Description: Checks ECS instance is in specified tag's instances.
  Properties:
    Service: ECS
    API: DescribeInstances
    Parameters:
      InstanceIds:
        - '{{ whenInstanceStopped.instanceId }}'
    DesiredValues: '{{describeInstancesByTag.instanceIds}}'
    PropertySelector: Instances.Instance[].InstanceId
- Name: startInstance
  Action: 'ACS::ExecuteAPI'
  Properties:
    Service: ECS
    API: StartInstance
    Parameters:
      InstanceId: '{{ whenInstanceStopped.instanceId }}'
  Description: start instance.
- Name: untilInstanceReady
  Action: 'ACS::WaitFor'
  Description: Waits for the ECS instance Running.
  Properties:
    Service: ECS
    API: DescribeInstances
    Parameters:
      InstanceIds:
        - '{{ whenInstanceStopped.instanceId }}'
    DesiredValues:
      - Running
    PropertySelector: 'Instances.Instance[].Status'
Outputs:
  InstanceId:
    Value: '{{ whenInstanceStopped.instanceId  }}'
    Type: String

模版参数

  • tagKey:要自启动的ECS实例所在Tag的key值。
  • tagValue:  要自启动的ECS实例所在Tag的Value值。

操作指南

  1. 首先登录到运维编排控制台 。
  2. 单击 自定义模版,单击 创建模版 。
  3. 单击 YAML 。
    将编写好的YAML格式模版内容粘贴到编辑框内,或者您也可直接在编辑框中编写该模版。
    4840_b236_b0f413e625c2
  4. 单击 校验模版。 

    • 若模板内容已通过校验,继续下一步。
    • 若模板内容校验失败,请根据提示内容调整模版。
  5. 填写 模版名称。
    本文此处填写AutoStartEcsWhenStopped。
    5f_4e1e_8be8_aea8a2dd58d6
  6. 单击 创建模版 。
    自定义模版列表中可通过模版名称快速找到成功创建的模版。
  7. 单击 创建执行 。
  8. 风险确认模式 选择 客户了解风险,无需确认 。
    _1cd5_4199_b2c8_61e3fd5bcdf4
  9. 单击 下一步,设置参数 。

    • tagKey:要自启动的ECS实例所在Tag的key值。
    • tagValue:  要自启动的ECS实例所在Tag的Value值。
      _3174_4d57_a280_1b8b52077ce0
  10. 单击 下一步,确认创建 ,单击 创建执行 。
    执行管理中可查看刚刚创建的执行,若创建执行成功,且执行状态处于等待中,则表示ECS实例已开始被监控,一旦有ECS实例被停止,则会触发whenInstanceStopped任务后面的任务逻辑,即该Tag下被停止的实例自动启动。
    _48ee_bdb7_4329441ce5bc
  11. 那么我们现在就演示下ECS实例自启动,下图是该Tag下运行中的3台实例。
    _4c51_b4a2_9089e0fbee31
  12. 我们现在通过手动停止这3台实例,模拟实例意外停止。
    _bae6_084fce3052aa
  13. 当实例停止后,执行状态由等待中转换为运行中,开始执行对停止的ECS实例的启动。
    _4b1a_b58a_5a361dd1ec5d
  14. 片刻后,刷新ECS实例的状态,可发现该Tag下被停止的ECS实例已经自启动完成,又变回了运行中状态。
    _9fd3_4c51_b4a2_9089e0fbee31
相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
26天前
|
弹性计算
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
2024年阿里云服务器的优惠价格新鲜出炉,有特惠云服务器也有普通优惠价格,本文为大家整理汇总了2024年阿里云服务器的优惠价格,包含特惠云服务器和其他配置云服务器的优惠价格。以便大家了解自己想购买的云服务器选择不同实例规格和带宽情况下的价格,仅供参考。
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
|
存储 弹性计算 网络协议
阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y实例区别及选择参考
在阿里云目前的各个活动中,除了轻量应用服务器之外,活动内的云服务器实例规格主要以经济型e、通用算力型u1、计算型c7/c8y、通用型g7/g8y、内存型r7/r8y这几个实例规格为主,c7/c8y属于计算型实例,g7/g8y属于通用型实例,c7/r8y属于内存型实例,c7/g7/r7属于最新第七代云服务器实例,c8y/g8y/r8y属于倚天云服务器实例,不同的云服务器实例规格在性能、特点及适用场景上有所不同,本文大家介绍一下阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y的区别,以供参考。
阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y实例区别及选择参考
|
13天前
|
弹性计算 安全
电子好书发您分享《阿里云第八代企业级ECS实例,为企业提供更安全的云上防护》
阿里云第八代ECS实例,搭载第五代英特尔至强处理器与飞天+CIPU架构,提升企业云服务安全与算力。[阅读详情](https://developer.aliyun.com/ebook/8303/116162?spm=a2c6h.26392459.ebook-detail.5.76bf7e5al1Zn4U) ![image](https://ucc.alicdn.com/pic/developer-ecology/cok6a6su42rzm_f422f7cb775444bbbfc3e61ad86800c2.png)
35 14
|
23天前
|
存储 缓存 PHP
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
对于使用阿里云服务器的用户来说,云服务器的选择和使用非常重要,如果实例、内存、CPU、带宽等配置选择错误,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文为大家介绍一下阿里云服务器实例、CPU内存、带宽、操作系统的选择注意事项,以供参考。
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
|
10月前
|
弹性计算 负载均衡 测试技术
运维编排系列场景--跨可用区批量克隆ECS实例
背景可用区(Availability Zone,简称 AZ)是指在同一地域内,电力和网络互相独立的物理区域。例如,华北1(青岛)地域支持2个可用区,包括青岛 可用区B和青岛 可用区C。同一可用区内实例之间的网络延时更小,其用户访问速度更快。将应用部署在多个可用区可以提高应用的可用性,降低故障风险。然而,在实际应用中,有时需要将实例从一个可用区迁移到另一个可用区,以实现故障切换、负载均衡、数据备份与
559 0
运维编排系列场景--跨可用区批量克隆ECS实例
|
10月前
|
弹性计算 运维 数据中心
运维编排系列场景--跨账号跨地域实例操作系统补丁修复
运维编排(OOS) 简介什么是OOSOperation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更
394 0
|
10月前
|
弹性计算 运维 监控
运维编排系列场景--通过告警触发自动重启CPU使用率高的ECS实例
运维编排(OOS) 简介什么是OOSOperation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更
184 0
|
弹性计算 运维 监控
运维编排系列场景--使用定时运维进行状态逼近
### 面向终态的运维 阿里云运维编排服务(Operation Orchestration Service,简称OOS),是阿里云提供的云上自动化运维服务,能够自动化管理和执行任务。OOS支持定时运维功能,可以周期性重复执行指定的运维任务。基于定时运维,OOS能够对云资源的状态进行管理,实现面向终态的运维。 本文以[ilogtail](https://help.aliyun.com/d
3530 0
运维编排系列场景--使用定时运维进行状态逼近
|
弹性计算 运维 网络安全
运维编排系列场景--批量管理自定义的软件包
运维编排(OOS) 简介 什么是OOS Operation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于
1459 0
运维编排系列场景--批量管理自定义的软件包
|
弹性计算 运维 监控
运维编排系列场景-----在磁盘使用率超限时自动清理临时文件
### 场景介绍 有些应用在运行过程中会不断产生文件,比如下载的文件、备份文件、日志文件,我们需要在磁盘使用率过高后删除不再使用的或者过期的文件。这里我们以清理/tmp下的临时文件为例,说明如何通过运维编排(OOS)提供的公共模板来实现此类运维操作。 ### 解决方案 我们准备一台ECS实例,登陆进系统后,查看它的磁盘占用率: ![磁盘占用2.png](https:
663 0