运维编排服务系列-----自动启动意外停止的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
目录
相关文章
|
29天前
|
弹性计算
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实例区别及选择参考
|
7天前
|
存储 运维 NoSQL
通过OOS实现定时备份Redis实例转储到OSS
基于阿里云 Redis 备份功能,现结合 OOS 推出自动转储至 OSS 的新方案,解决了数据安全风险、运维繁琐、成本增加和效率低下等问题。新方案亮点包括: 1. 数据安全性提高:备份文件自动上传至OSS,利用OSS的数据冗余存储,保证数据在硬件故障时的持久性和可用性。 2. 完全自动化:设置好定时规则后,备份和转储过程无需人工干预。 3. 多实例多地域集中管理:支持一次选择多个实例和跨区域备份,简化管理。 4. 灵活的备份策略和成本控制:自定义备份频率,并通过OSS生命周期管理策略控制成本。 5. 监控和告警:集成OSS和云监控,实时掌握备份状态,及时处理异常。
131 0
|
16天前
|
弹性计算 安全
电子好书发您分享《阿里云第八代企业级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
|
26天前
|
存储 缓存 PHP
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
对于使用阿里云服务器的用户来说,云服务器的选择和使用非常重要,如果实例、内存、CPU、带宽等配置选择错误,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文为大家介绍一下阿里云服务器实例、CPU内存、带宽、操作系统的选择注意事项,以供参考。
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
|
弹性计算 网络协议 安全
阿里云ECS7天训练营-Day1 搭建FTP服务
阿里云ECS7天训练营-Day1 搭建FTP服务
1068 0
阿里云ECS7天训练营-Day1 搭建FTP服务
|
1月前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
1月前
|
存储 弹性计算 数据可视化
要将ECS中的文件直接传输到阿里云网盘与相册(
【2月更文挑战第31天】要将ECS中的文件直接传输到阿里云网盘与相册(
420 4
|
1月前
|
SQL 弹性计算 安全
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
当我们通过阿里云的活动购买完云服务器之后,并不是立马就能使用了,还需要我们设置云服务器密码,配置安全组等基本操作之后才能使用,有的用户还需要购买并挂载数据盘到云服务器上,很多新手用户由于是初次使用阿里云服务器,因此并不知道这些设置的操作流程,下面给大家介绍下这些设置的具体操作流程。
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
|
21天前
|
弹性计算
阿里云ECS使用体验
在申请高校学生免费体验阿里云ECS云服务器后的一些使用体验和感受。