弹性伸缩的生命周期挂钩功能支持选择OOS模板作为通知方式,在挂起实例的同时执行指定的OOS模板中定义的运维操作,实现自动化运维。
生命周期挂钩
触发伸缩活动后,弹性伸缩会自动完成扩缩容流程,期间ECS实例的服务状态变化请参见伸缩组内实例的生命周期。
通过生命周期挂钩,您能够在扩缩容流程中挂起ECS实例,执行自定义操作后再使用或者释放ECS实例。例如,在扩容时为ECS实例绑定辅助弹性网卡、将ECS实例添加至Redis实例白名单,在缩容时拷贝日志、清理数据等。
弹性伸缩还支持在挂起ECS实例的同时发送通知,自动执行OOS模板中定义的运维操作。
OOS模板
系统运维管理(OOS)是阿里云提供的云上自动化运维服务,能够自动化管理和执行任务。您可以通过模板定义执行任务、执行顺序、执行输入和输出,然后执行模板完成一组运维操作。更多说明,请参见什么是系统运维管理。
自动化运维流程
下图为您展示了通过生命周期挂钩和OOS模板实现自动化运维的流程。
流程说明如下:
ECS实例被生命周期挂钩挂起,进入挂起中状态。
弹性伸缩自动发送通知,触发执行OOS模板中定义的运维操作。
根据执行结果完成流程:
运维操作执行成功,结束挂起状态并继续伸缩活动,扩容时继续完成扩容流程且ECS实例加入伸缩组,缩容时继续完成缩容流程且ECS实例被移出伸缩组。
运维操作执行失败,结束挂起状态并结束伸缩活动,扩容时ECS实例被释放,缩容时无特殊影响,ECS实例仍会被移出伸缩组。
运维实践
本运维实践中为您介绍下表所述OOS公共模板的用法。
公共模版名称 | 适用的伸缩活动类型 | 说明 | 相关链接 |
ACS-ESS-LifeCycleApplyAutoSnapshotPolicy | 弹性扩张活动 | 使用生命周期挂钩应用自动快照策略到磁盘。 | |
ACS-ESS-LifeCycleRunCommand | 弹性扩张活动、弹性收缩活动 | 使用生命周期挂钩到ECS实例中执行命令。 | |
ACS-ESS-LifeCycleModifyPolarDBIPWhitelist | 弹性扩张活动、弹性收缩活动 | 使用生命周期挂钩设置PolarDB集群的IP白名单。 | |
ACS-ESS-LifeCycleModifyRedisIPWhitelist | 弹性扩张活动、弹性收缩活动 | 使用生命周期挂钩设置Redis实例的IP白名单。 | |
ACS-ESS-LifeCycleModifyMongoDBIPWhitelist | 弹性扩张活动、弹性收缩活动 | 使用生命周期挂钩设置MongoDB实例的IP白名单。 | |
ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist | 弹性扩张活动、弹性收缩活动 | 使用生命周期挂钩设置AnalyticDB集群的IP白名单。 | |
ACS-ESS-LifeCycleAttachNASFileSystemToInstance | 弹性扩张活动 | 使用生命周期挂钩挂载NAS文件系统到ECS实例。 | |
ACS-ESS-LifeCycleCreateNetworkInterfaceAndEipAndAttachToInstance | 弹性扩张活动 | 使用生命周期挂钩创建辅助弹性网卡和EIP,并将其绑定到ECS实例。 | |
ACS-ESS-LifeCycleDetachNetworkInterfaceAndDeleteEip | 弹性收缩活动 | 使用生命周期挂钩为ECS实例解绑和释放辅助弹性网卡和EIP。 | |
ACS-ESS-LifeCycleAllocateEipAddressAndAttachToInstance | 弹性扩张活动 | 使用生命周期挂钩创建EIP,并将其绑定到ECS实例。 | |
ACS-ESS-LifeCycleReleaseEipAddressFromInstance | 弹性收缩活动 | 使用生命周期挂钩为ECS实例解绑和释放EIP。 |