伸缩活动的生命周期涉及自动伸缩与手动管理ECS实例的过程,具体步骤如下:
自动扩展流程:
- 健康状态与边界条件判断:首先,系统会检查伸缩组的当前健康状况及资源需求是否达到预设的扩展条件。
- 分配ActivityId与执行伸缩活动:确认需要扩展后,系统为该操作分配一个唯一的ActivityId,并开始执行伸缩活动。
- 创建ECS实例:根据伸缩配置自动创建新的ECS实例。
- 修改Total Capacity:更新伸缩组的总容量记录,反映新增实例。
- 分配IP与网络配置:为新实例分配IP地址并完成必要的网络设置。
- 添加RDS白名单:确保新实例能够访问关联的RDS实例,将其加入数据库的访问白名单。
- 启动ECS实例并等待:启动实例并监控其至运行中状态。
- 挂载负载均衡:将实例加入到负载均衡的后端服务器池,设置权重。
- 伸缩活动完成与Cooldown启动:一旦实例完全就绪,该伸缩活动标记为完成,并启动cooldown时段以避免频繁操作。
自动收缩流程:
- 健康状态与边界条件判断:系统评估是否满足收缩条件,包括实例使用率和最小实例数限制。
- 分配ActivityId与执行伸缩活动:确定收缩后,分配ActivityId并触发收缩操作。
- 从负载均衡移除ECS实例:停止向该实例转发流量,准备移除。
- 停止ECS实例并等待:优雅地停止实例,直至其状态变为已停止。
- 从RDS白名单移除:更新数据库白名单,移除该实例的访问权限。
- 释放ECS实例:彻底释放资源,减少成本。
- 修改Total Capacity:更新伸缩组总容量。
- 伸缩活动完成与Cooldown启动:活动结束后,进入cooldown期。
手工加入ECS实例:
- 健康与条件检查:验证ECS实例的状态、类型符合伸缩组要求。
- 执行伸缩活动:分配ActivityId,手工将实例加入伸缩组。
- 修改Total Capacity:调整伸缩组总容量。
- RDS白名单与负载均衡配置:添加实例到RDS白名单,挂载到负载均衡并设定权重。
- 伸缩活动完成与Cooldown:操作完成后,同样启动cooldown。
手工移出ECS实例:
- 条件检查:确保操作不会违反健康或边界规则。
- 执行移出活动:分配ActivityId,开始移出过程。
- 负载均衡与RDS调整:逐步从负载均衡移除流量,最终移除实例于RDS白名单。
- 修改Total Capacity:更新伸缩组规模。
- 从伸缩组移出实例:正式移除实例,不释放资源。
- 伸缩活动完成与Cooldown:最后,启动cooldown阶段。
以上流程详细描述了伸缩活动中,自动与手动管理ECS实例的各个关键步骤,确保了资源的弹性调整与服务的稳定运行。