本教程介绍了如何利用阿里云弹性伸缩搭建可自动伸缩的Web应用,快速响应业务的峰谷波动,稳定承载日常业务的同时,轻松应对活动期间突增的流量。
某电商平台为吸引用户,除定期推出优惠活动外,还会在节假日、会员日、购物节开展大促。为保证顺利承载活动带来的流量,运维人员可以分析活动历史数据,提前预估新活动所需的计算资源。但如果高峰期流量超出预估,仍需要临时手动创建ECS实例,不仅操作仓促,而且可能因操作不及时影响应用可用性。更多阅读:如何使用阿里云弹性伸缩组管理你的ECS实例?
假设您的应用具有以下特征,也可以采用类似解决方案:
- 采用集群方式部署,且集群拥有1台以上的服务器。
- 存在临时业务突增,但突增业务周期不长,例如每天不超过9个小时、每月不超过20天。
解决方案
阿里云弹性伸缩可以实现计算资源随业务峰谷自动伸缩,无需您提前预估和手动干预即可确保应用可用性。尤其针对双十一等大促活动,阿里云弹性伸缩具备几分钟内交付上千台ECS实例的能力,自动及时地应对突增流量,提升业务的可靠性。
您可以采用以下方案:
- 针对日常业务流量,购买包年包月ECS实例。
- 针对计划外突增流量,通过弹性伸缩监控负载变化并实现自动创建ECS实例。
示意图如下:
操作步骤
请根据您的业务架构评估业务模块,并执行以下操作实现指定业务模块的自动扩缩容:
步骤一:使用自定义镜像创建包年包月ECS实例
创建指定数量的包年包月ECS实例,用于添加到伸缩组,满足业务模块的日常业务要求。
步骤二:创建并启用伸缩组
为需要阿里云弹性扩缩容的业务模块创建伸缩组,并为伸缩配置选择Web应用实例的自定义镜像,确保自动创建出的ECS实例符合Web应用的要求。
步骤三:添加包年包月ECS实例并设置自动伸缩策略
将包年包月ECS实例添加至伸缩组,并创建目标追踪规则,实现根据业务峰谷自动伸缩,应对突增流量。
执行结果
包年包月ECS实例已被转为保护状态,用于承载日常业务。处于保护中状态的ECS实例不会被移除伸缩组,而且负载均衡权重不受影响。
伸缩组自动将ECS实例的平均CPU使用率维持在50%左右,高于50%时自动创建ECS实例分担流量,低于50%时自动释放ECS实例节省成本。ECS实例数量始终大于等于最小实例数,且小于等于最大实例数,保证满足业务需求且成本不会超出期望范围。