基于OOS实现生命周期挂钩绑定EIP到实例

本文涉及的产品
无影云电脑企业版,4核8GB 120小时 1个月
资源编排,不限时长
无影云电脑个人版,1个月黄金款+200核时
简介: ESS生命周期挂钩使用OOS模板实现自动绑定账户下已有EIP到实例。

OOS简介

Operation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更详细的介绍请参见什么是运维编排服务

ESS简介

使用弹性伸缩(Auto Scaling),您可以根据业务需求和策略设置伸缩规则,在业务需求增长时自动为您增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。关于ESS更详细的介绍请参见什么是弹性伸缩

场景介绍

ESS生命周期挂钩使用OOS模板实现自动绑定账户下已有EIP到实例。

操作步骤

1.登陆OOS控制台,找到我的模板,点击创建模板
image.png
2.选择空白模版。
image.png
3.复制下文提供的模板到YAML栏中,输入模板名称(ECS-DescribeAndAssociateEipAddress,点击创建模板
image.pngECS-DescribeAndAssociateEipAddress内容:

FormatVersion: OOS-2019-06-01
Description: Attach eip to instance.
Parameters:
  regionId:
    Description: The ID of region.
    Type: String
    Default: '{
  { ACS::RegionId }}'
  instanceId:
    Description: The id Instance.
    Type: String
  instanceType:
    Description: The type of instance.
    Type: String
    AllowedValues:
      - Nat
      - SlbInstance
      - EcsInstance
      - NetworkInterface
      - HaVip
    Default: EcsInstance
Tasks:
  - Name: describeEipAddresses
    Action: 'ACS::ExecuteApi'
    Description: Views the eip attr.
    Properties:
      Service: VPC
      API: DescribeEipAddresses
      Parameters:
        RegionId: '{
  { regionId }}'
        Status: Available
    Outputs:
      allocationId:
        Type: String
        ValueSelector: 'EipAddresses.EipAddress[].AllocationId'
  - Name: AssociateEipAddress
    Action: 'ACS::ExecuteAPI'
    Description: Associate Eip address to instance.
    Properties:
      Service: VPC
      API: AssociateEipAddress
      Parameters:
        RegionId: '{
  { regionId }}'
        AllocationId: '{
  { describeEipAddresses.allocationId }}'
        InstanceId: '{
  { instanceId }}'
        InstanceType: '{
  { instanceType }}'

4.重复以上步骤,创建模板ESS-LifeCycleDescribeAndAssociateEipAddress。

ESS-LifeCycleDescribeAndAssociateEipAddress内容:

FormatVersion: OOS-2019-06-01
Description:
  en: Use lifecycleHook to get available EIP and attach them to the instance(only supports elastic expansion activities).
  zh-cn: 使用生命周期挂钩获取可用弹性IP并将其绑定到实例(仅支持弹性扩张活动)。
  name-en: ESS-LifeCycleDescribeAndAssociateEipAddress
  name-zh-cn: 使用生命周期挂钩绑定EIP到实例
  categories:
    - elastic_manage
Parameters:
  regionId:
    Description:
      name-en: regionId
      name-zh-cn: 地域ID
      en: The ID of region.
      zh-cn: '地域ID,请使用弹性伸缩系统默认值 ${regionId}'
    Type: String
    Default: '${regionId}'
  instanceIds:
    Description:
      name-en: instanceIds
      name-zh-cn: ECS实例ID列表
      en: The ID list of the ECS instance.
      zh-cn: 'ECS实例ID列表,请使用弹性伸缩系统默认值 ["${instanceId}"]'
    Type: List
    Default:
      - '${instanceIds}'
  lifecycleHookId:
    Description:
      name-en: lifecycleHookId
      name-zh-cn: 生命周期挂钩ID
      en: The ID of the lifecycle hook.
      zh-cn: '生命周期挂钩ID,请使用弹性伸缩系统默认值 ${lifecycleHookId}'
    Type: String
    Default: '${lifecycleHookId}'
  lifecycleActionToken:
    Description:
      name-en: lifecycleActionToken
      name-zh-cn: 实例关联的特定伸缩活动的令牌
      en: The token that indicates a specific scaling activity associated with an instance.
      zh-cn: '实例关联的特定伸缩活动的令牌,请使用弹性伸缩系统默认值 ${lifecycleActionToken}'
    Type: String
    Default: '${lifecycleActionToken}'
  rateControl:
    Description:
      name-en: rateControl
      name-zh-cn: 速率控制
      en: Concurrency ratio of task execution.
      zh-cn: 任务执行的并发比率。
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 1
  OOSAssumeRole:
    Description:
      name-en: OOSAssumeRole
      name-zh-cn: OOS扮演的RAM角色
      en: The RAM role to be assumed by OOS.
      zh-cn: OOS扮演的RAM角色。
    Type: String
    Default: OOSServiceRole
RamRole: '{
  { OOSAssumeRole }}'
Tasks:
  - Name: describeAndAssociateEipAddress
    Action: 'ACS::Template'
    OnSuccess: CompleteLifecycleActionForContinue
    OnError: CompleteLifecycleActionForAbandon
    Description:
      en: Views available eip and attach to instace.
      zh-cn: 获取账户下可用EIP并绑定到实例上。
    Properties:
      TemplateName: ECS-DescribeAndAssociateEipAddress
      Parameters:
        regionId: '{
  { regionId }}'
        instanceId: '{
  { ACS::TaskLoopItem }}'
        instanceType: 'EcsInstance'
    Loop:
      RateControl: '{
  { rateControl }}'
      Items: '{
  { instanceIds }}'
  - Name: CompleteLifecycleActionForContinue
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Modify lifecycle action for continue.
      zh-cn: 修改伸缩活动的等待状态为继续完成。
    OnSuccess: 'ACS::END'
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{
  { regionId }}'
        LifecycleHookId: '{
  { lifecycleHookId }}'
        LifecycleActionToken: '{
  { lifecycleActionToken }}'
        LifecycleActionResult: CONTINUE
  - Name: CompleteLifecycleActionForAbandon
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Complete lifecycle action for Abandon.
      zh-cn: 修改伸缩活动的等待状态为弃用。
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{
  { regionId }}'
        LifecycleHookId: '{
  { lifecycleHookId }}'
        LifecycleActionToken: '{
  { lifecycleActionToken }}'
        LifecycleActionResult: ABANDON

5.登陆ESS控制台,在目标伸缩组生命周期栏新建生命周期挂钩

image.png

6.配置生命周期挂钩参数,设置参数(本模板使用默认参数即可),单击确认

image.png

7.创建弹性扩张类型的规则,执行规则,弹出的实例会自动挂载EIP。注意:当账号下EIP不足时弹性扩张活动会失败。

image.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
高可用应用架构
欢迎来到“高可用应用架构”课程,本课程是“弹性计算Clouder系列认证“中的阶段四课程。本课程重点向您阐述了云服务器ECS的高可用部署方案,包含了弹性公网IP和负载均衡的概念及操作,通过本课程的学习您将了解在平时工作中,如何利用负载均衡和多台云服务器组建高可用应用架构,并通过弹性公网IP的方式对外提供稳定的互联网接入,使得您的网站更加稳定的同时可以接受更多人访问,掌握在阿里云上构建企业级大流量网站场景的方法。 学习完本课程后,您将能够: 理解高可用架构的含义并掌握基本实现方法 理解弹性公网IP的概念、功能以及应用场景 理解负载均衡的概念、功能以及应用场景 掌握网站高并发时如何处理的基本思路 完成多台Web服务器的负载均衡,从而实现高可用、高并发流量架构
相关文章
|
5月前
|
消息中间件 弹性计算 缓存
通过OOS定时升级Redis实例临时带宽
阿里云OOS提供了定时升级Redis实例临时带宽的功能,以应对数据驱动业务中的流量高峰。这个功能允许用户根据预测的业务负载,在特定日期和时间自动增加Redis实例的带宽,确保服务性能和稳定性。在高流量事件结束后,带宽会自动恢复到原设置,节省成本。 此功能适用于电商平台促销、大型游戏更新等场景,确保在流量高峰期间的系统稳定运行。
|
5月前
|
弹性计算 UED
通过OOS定时升级EIP实例临时带宽
阿里云推出了一项定时升级EIP(弹性公网IP)带宽的功能,旨在解决企业在特定流量高峰时段的网络带宽需求。此功能允许用户预设特定日期和时间自动升级带宽,如电商大促、直播活动或数据备份期间,以确保服务稳定并降低成本。用户可通过OOS控制台设置自动化任务,包括定时类型(立即、一次或周期性)、EIP实例地域、带宽值、升级持续时间和执行速率控制。在流量高峰过后,带宽会自动恢复到原设定,以节省费用。此功能适用于按固定带宽计费的EIP实例,不支持按流量计费的公网带宽。
|
6月前
|
存储 运维 NoSQL
通过OOS实现定时备份Redis实例转储到OSS
基于阿里云 Redis 备份功能,现结合 OOS 推出自动转储至 OSS 的新方案,解决了数据安全风险、运维繁琐、成本增加和效率低下等问题。新方案亮点包括: 1. 数据安全性提高:备份文件自动上传至OSS,利用OSS的数据冗余存储,保证数据在硬件故障时的持久性和可用性。 2. 完全自动化:设置好定时规则后,备份和转储过程无需人工干预。 3. 多实例多地域集中管理:支持一次选择多个实例和跨区域备份,简化管理。 4. 灵活的备份策略和成本控制:自定义备份频率,并通过OSS生命周期管理策略控制成本。 5. 监控和告警:集成OSS和云监控,实时掌握备份状态,及时处理异常。
通过OOS实现定时备份Redis实例转储到OSS
|
弹性计算 缓存 负载均衡
弹性计算Clouder认证:高可用应用架构——课时7:如何将弹性公网IP绑定到负载均衡?
弹性计算Clouder认证:高可用应用架构——课时7:如何将弹性公网IP绑定到负载均衡?
|
弹性计算
弹性计算Clouder认证:高可用应用架构——课时4:如何将弹性公网IP绑定到云服务器ECS实例?
弹性计算Clouder认证:高可用应用架构——课时4:如何将弹性公网IP绑定到云服务器ECS实例?
|
弹性计算 负载均衡 测试技术
运维编排系列场景--跨可用区批量克隆ECS实例
背景可用区(Availability Zone,简称 AZ)是指在同一地域内,电力和网络互相独立的物理区域。例如,华北1(青岛)地域支持2个可用区,包括青岛 可用区B和青岛 可用区C。同一可用区内实例之间的网络延时更小,其用户访问速度更快。将应用部署在多个可用区可以提高应用的可用性,降低故障风险。然而,在实际应用中,有时需要将实例从一个可用区迁移到另一个可用区,以实现故障切换、负载均衡、数据备份与
运维编排系列场景--跨可用区批量克隆ECS实例
|
弹性计算 运维 数据中心
运维编排系列场景--跨账号跨地域实例操作系统补丁修复
运维编排(OOS) 简介什么是OOSOperation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更
|
弹性计算 运维 监控
运维编排系列场景--通过告警触发自动重启CPU使用率高的ECS实例
运维编排(OOS) 简介什么是OOSOperation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更
|
弹性计算
使用OOS定时给特定名称开头的ECS实例打标签
使用OOS定时给名称中包含特定字符开头的ECS实例打标签。
使用OOS定时给特定名称开头的ECS实例打标签
|
弹性计算 JSON 关系型数据库
一键批量创建服务器并绑定弹性IP,助力公网业务快速开服
本文将为大家介绍一种批量创建ECS、创建EIP、并完成EIP绑定ECS的方法。此方法利用资源编排ROS模板,通过一次性的ECS、ECS参数设置,可以快速批量部署带公网的服务器上线。
1548 0
一键批量创建服务器并绑定弹性IP,助力公网业务快速开服