本文小编为大家介绍阿里云如何利用弹性伸缩搭建可自动伸缩的Web应用,快速响应业务的峰谷波动,稳定承载日常业务的同时,轻松应对活动期间突增的流量。
前提条件
- 使用本教程进行操作前,请确保您已经注册了阿里云账号。
- 为应用的ECS实例创建了自定义镜像。
业务场景
某电商平台为吸引用户,除定期推出优惠活动外,还会在节假日、会员日、购物节开展大促。为保证顺利承载活动带来的流量,运维人员可以分析活动历史数据,提前预估新活动所需的计算资源。但如果高峰期流量超出预估,仍需要临时手动创建ECS实例,不仅操作仓促,而且可能因操作不及时影响应用可用性。
假设您的应用具有以下特征,也可以采用类似解决方案:
- 采用集群方式部署,且集群拥有1台以上的服务器。
- 存在临时业务突增,但突增业务周期不长,例如每天不超过9个小时、每月不超过20天。
解决方案
弹性伸缩可以实现计算资源随业务峰谷自动伸缩,无需您提前预估和手动干预即可确保应用可用性。尤其针对双十一等大促活动,弹性伸缩具备几分钟内交付上千台ECS实例的能力,自动及时地应对突增流量,提升业务的可靠性。
您可以采用以下方案:
- 针对日常业务流量,购买包年包月ECS实例。
- 针对计划外突增流量,通过弹性伸缩监控负载变化并实现自动创建ECS实例。
示意图如下:
业务收益
利用弹性伸缩应对突增流量,您可以获得以下收益:
- 零备机成本
弹性伸缩可自动创建和释放ECS实例,实现按需取用,无需备机。您只需针对日常业务流量保有计算资源。
- 零运维成本
您只需提前配置扩缩容策略。负载增加时,弹性伸缩自动创建ECS实例,并将ECS实例添加到RDS实例的白名单和SLB实例的后端服务器组;负载降低时,弹性伸缩自动将ECS实例从SLB实例的后端服务器组和RDS实例的白名单中移除,然后释放ECS实例。整个过程自动触发和完成,无需人工干预。
- 灵活智能
弹性伸缩提供多种伸缩模式,您可以根据业务波动规律组合使用,达到最佳业务匹配度。例如您的Web应用流量大体稳定,但存在临时突增,可以采用基于云监控指标的动态模式,监控平均CPU使用率,及时地自动响应流量变化。
操作步骤
请根据您的业务架构评估业务模块,并执行以下操作实现指定业务模块的自动扩缩容:
- 步骤一:使用自定义镜像创建包年包月ECS实例
- 步骤二:创建并启用伸缩组
- 步骤三:添加包年包月ECS实例并设置自动伸缩策略
步骤一:使用自定义镜像创建包年包月ECS实例
创建指定数量的包年包月ECS实例,用于添加到伸缩组,满足业务模块的日常业务要求。
1、登录ECS管理控制台。
2、在左侧导航栏,选择实例与镜像>镜像。
3、在顶部菜单栏左上角处,选择地域。
4、找到Web应用实例的自定义镜像,在操作区域,单击创建实例。
5、配置实例信息并完成实例创建。
- 付费模式设置为包年包月。
- 地域及可用区和镜像信息已自动填充。配置实例信息并完成实例创建。
步骤二:创建并启用伸缩组
为需要弹性扩缩容的业务模块创建伸缩组,并为伸缩配置选择Web应用实例的自定义镜像,确保自动创建出的ECS实例符合Web应用的要求。
1、登录弹性伸缩控制台。
2、在顶部菜单栏处,选择地域。
3、创建一个伸缩组。
- 组内实例配置信息来源选择为从零开始创建。
- 组内最小实例数设置为0。
- 网络类型选择为专有网络。
- 扩缩容策略选择为均衡分布策略。
- 实例回收模式选择为释放模式。
- 绑定当前业务模块所使用的SLB实例和RDS实例。创建一个伸缩组。
4、找到已创建的伸缩组,单击对应操作列的查看详情。
5、在页面上方,单击实例配置来源页签。
6、创建一个伸缩配置。
镜像设置为Web应用实例的自定义镜像。
7、启用伸缩配置和伸缩组。
步骤三:添加包年包月ECS实例并设置自动伸缩策略
将包年包月ECS实例添加至伸缩组,并创建目标追踪规则,实现根据业务峰谷自动伸缩,应对突增流量。
1、前往实例列表界面,将创建好的包年包月ECS实例添加至伸缩组。
2、将包年包月ECS实例转为保护状态,保证日常业务正常运行。
3、前往伸缩组管理界面,单击对应操作列的修改。
4、在修改伸缩组页面,根据业务需求,修改伸缩组的最小实例数和最大实例数。
5、前往伸缩规则界面,创建一条目标追踪规则。
- 伸缩规则类型设置为目标追踪规则。
- 指标类型设置为(ECS)平均CPU使用率。
- 目标值设置为50%。前往伸缩规则界面,创建一条目标追踪规则。
执行结果
包年包月ECS实例已被转为保护状态,用于承载日常业务。处于保护中状态的ECS实例不会被移除伸缩组,而且负载均衡权重不受影响。
伸缩组自动将ECS实例的平均CPU使用率维持在50%左右,高于50%时自动创建ECS实例分担流量,低于50%时自动释放ECS实例节省成本。ECS实例数量始终大于等于最小实例数,且小于等于最大实例数,保证满足业务需求且成本不会超出期望范围。