华为云弹性伸缩(Auto Scaling,以下简称AS)是根据用户的业务需求,通过设置伸缩规则来自动增加/缩减业务资源。当业务需求增长时,AS自动为您增加华为云弹性云服务器(ECS)实例或带宽资源,以保证业务能力;当业务需求下降时,AS自动为您缩减华为云弹性云服务器(ECS)实例或带宽资源,以节约成本。AS支持自动调整弹性云服务器和带宽资源。
弹性伸缩服务可根据用户的业务需求,通过策略自动调整其业务的资源。具有自动调整资源、节约成本开支、提高可用性和容错能力的优势。适用以下场景:
- 访问流量较大的论坛网站,业务负载变化难以预测,需要根据实时监控到的云服务器CPU使用率、内存使用率等指标对云服务器数量进行动态调整。
- 电商网站,在进行大型促销活动时,需要定时增加云服务器数量和带宽大小,以保证促销活动顺利进行。
- 视频直播网站,每天14:00~16:00播出热门节目,每天都需要在该时段增加云服务器数量,增大带宽大小,保证业务的平稳运行。
自动调整资源
弹性伸缩能够实现应用系统自动按需调整资源,即在业务增长时能够实现自动增加实例数量和带宽大小,以满足业务需求,业务下降时能够实现应用系统自动缩容,保障业务平稳运行。
- 按需调整云服务器资源
向应用系统中添加弹性伸缩,能够实现按需调整资源,即能够实现在业务增长时增加实例,业务下降时减少实例,这样加强了应用系统的成本管理。调整资源主要包括以下几种方式:
例如,运行在公有云上的基本Web应用程序。此应用程序允许乘客购买火车票。在每年中期时段,人员流动性较低,此应用程序的使用率较低。每年年底和年初,人员流动性较高,因此对此应用程序的需求会显著提高。一般系统会采用添加足够多的服务器,如图1所示,或添加处理应用程序平均需求所需的容量,如图2所示,来满足业务需求。但这两种方案会造成资源浪费或无法满足高峰期的需求。当您给应用程序中添加弹性伸缩后,弹性伸缩会自动根据需求调整服务器的数量,如图3所示,为您节约成本并且满足高峰期的需求。
- 按需调整带宽资源
弹性伸缩能够实现按需调整带宽,即能够实现在业务增长时扩大带宽,业务下降时减小带宽,加强了应用系统的成本管理。
您可以根据实际情况选择如下伸缩带宽策略来实现按需调整IP带宽:
- 告警策略
- 定时策略
- 周期策略
以告警策略的使用为例说明如下:
某视频直播网站,在不同时间段业务负载变化难以预测,需要根据出网流量、入网流量等指标在10Mbit/s到30Mbit/s之间动态调整带宽资源。弹性伸缩可以实现自动按需调整带宽,很好的解决这个问题。您只需选择需要调整的弹性公网IP,同时创建两个告警策略,一个策略设置在出网流量大于XXXbyte时,增加2Mbit/s,限制值为30Mbit/s;另一个策略在出网流量小于XXXbyte时,减少2Mbit/s,限制值为10Mbit/s。
- 按可用区均匀分配实例
按可用区均匀分配实例是指尽可能地将实例均匀的分布在不同的可用区中,来降低电力、网络等可能出现的故障对整个系统稳定性的影响。
区域指弹性云服务器云主机所在的物理位置。每个区域包含许多不同的称为“可用区”的位置,即在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。每个可用区都被设计成不受其他可用区故障影响的模式,并提供低价、低延迟的网络连接,以连接到同一地区其他可用区。
伸缩组可以包含来自同一区域的一个或多个可用区的实例。在资源调整时,弹性伸缩会通过实例分配和再均衡两种方法尽可能的将实例均匀分配到可用区中。
实例分配
弹性伸缩尝试在为伸缩组使用的可用区之间均匀分配实例。弹性伸缩通过尝试向实例最少的可用区中移入新实例来实现此目标。
例如,伸缩组目前有四个实例均匀分布在两个可用区内,若该伸缩组下一个伸缩活动增加四个实例时,会在两个可用区内分别增加两个实例,以实现可用区之间均匀分配实例。
图4 均匀实例分配
再均衡
手工加入或移出实例后,伸缩组中的实例没有均匀分配在可用区时,后续进行的伸缩活动会优先在可用区内均匀分配实例。
例如,伸缩组中目前有三个实例分布在两个可用区内,若该伸缩组下一个伸缩活动增加五个实例时,会在有两个实例的可用区内增加两个实例,在有一个实例的可用区增加三个实例,以实现可用区之间均匀分配实例。
图5 再均衡
加强成本管理
弹性伸缩能够实现按需使用实例和带宽,并自动调整系统中的资源,节省了资源和人为调整资源带来的损耗,为您最大程度节约了成本。
提高可用性
弹性伸缩可确保应用系统始终拥有合适的容量以满足当前流量需求。
华为云弹性伸缩和负载均衡结合使用
当您在使用弹性伸缩时,业务增长时应用系统自动扩容,业务下降时应用系统自动缩容,在伸缩组添加和删除实例时,须确保所有实例均可分配到应用程序的流量。弹性伸缩和负载均衡结合使用可以解决这个问题。
使用负载均衡后,伸缩组会自动地将加入伸缩组的实例绑定负载均衡监听器。访问流量将通过负载均衡监听器自动分发到伸缩组内的所有实例,提高了应用系统的可用性。若伸缩组中的实例上部署了多个业务,还可以添加多个负载均衡监听器到伸缩组,同时监听多个业务,从而提高业务的可扩展性。
伸缩组
伸缩组是具有相同应用场景的实例的集合,是启停伸缩策略和进行伸缩活动的基本单位。
伸缩配置
华为云伸缩配置是伸缩组内实例(弹性云服务器)的模板,定义了伸缩组内待添加的实例的规格数据。包括云服务器类型、vCPU、内存、镜像、磁盘、登录方式等。
伸缩策略
华为云伸缩策略可以触发伸缩活动,是对伸缩组中实例数量进行调整的一种方式。伸缩策略规定了伸缩活动触发需要满足的条件及需要执行的操作,当满足伸缩条件时,系统会自动触发一次伸缩活动。
伸缩活动
伸缩组中增加或减少实例的过程称为伸缩活动。伸缩活动的目的是使应用系统中当前实例数和期望实例数保持一致,或达到已设置的伸缩策略触发条件时,执行增加或减少实例数量的操作,保证业务正常运行。
冷却时间
为了避免告警策略频繁触发,必须设置冷却时间。冷却时间是指冷却伸缩活动的时间,在每次伸缩活动完成之后,系统开始计算冷却时间。伸缩组在冷却时间内,会拒绝由告警策略触发的伸缩活动。其他类型的伸缩策略(如定时策略和周期策略)触发的伸缩活动不受限制,但会重新开始计算冷却时间,单位为秒。
例如:冷却时间设置为300秒,定时策略设置了10:32进行伸缩活动,10:30告警触发的伸缩活动结束,则在10:30-10:35时间内,伸缩组会拒绝新告警触发的伸缩活动,但不会拒绝在10:32时定时策略触发的伸缩活动;若10:36定时策略触发的伸缩活动结束,则冷却时间为10:36-10:41。
伸缩带宽
伸缩带宽可以根据用户配置的伸缩带宽策略自动调整带宽资源。弹性伸缩仅支持对按需购买的弹性公网IP带宽和共享带宽进行调整,不支持对包年包月的带宽进行调整。