弹性伸缩是阿里云上非常受欢迎的一个云服务编排产品,它能够根据用户的策略定义和业务需求变化,动态调整弹性计算资源,在有效支撑业务负载变化的同时保持最合理经济的基础设施费用开支。弹性伸缩可以根据用户设置的伸缩策略和模式,在业务需求增长时自动增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本,还可以自动替换不健康的ECS实例使业务始终保持正常的负载,无需人工干预即可应对各种复杂场景,真正实现对业务负载的弹性处理能力,为业务保驾护航。
在广大用户使用过程中,我们也接到了很多宝贵的反馈意见,为了能让大家更灵活、高效地使用弹性伸缩服务支撑业务变化,并获得更高的性价比,弹性伸缩产品近期在各项功能上全面升级,这里将向大家汇总介绍各方面的更新,希望能让您更轻松自如地应对负载波动,保障业务快速稳定发展。
易用性:配置更丰富,管理更灵活
伸缩组支持新增或修改SLB和RDS实例
在实际的使用中,经常遇到用户需要新增或者修改已经跟伸缩组绑定的SLB和RDS的场景,由于此前伸缩组一旦创建便不能更改SLB和RDS的配置,因此用户必须创建新的伸缩组来满足变更需求。随着功能升级,弹性伸缩目前已经支持SLB和RDS的Attach/Detach,无需重建伸缩组即可轻松应对架构变更或升级。
负载均衡SLB篇
弹性伸缩服务(AutoScaling)与负载均衡(SLB)结合,使您可以将 SLB实例附加到伸缩组,并通过 SLB 实例可以将流量分配到伸缩组中的各个实例。长久以来,SLB 实例只能在创建伸缩组的时候进行指定,不支持修改。这意味着您在创建伸缩组的同时,就不得不仔细的考量好自己的业务需求量及所需要的 SLB 实例数量。现在,AutoScaling推出最新功能:AttachLoadBalancer和DetachLoadBalancers,这种尴尬的现状将一去不复返。
将 Slb 附加到伸缩组
您可以选择将 Slb 实例附加到伸缩组上,在将负载附加到伸缩组的时候根据您指定的forceAttach参数值,将有以下两种行为:
- forceAttach为true,将 Slb 附加到伸缩组上的同时,将把当前伸缩组内的所有实例添加到 Slb 实例后端。
- forceAttach为false,将 Slb 附加到伸缩组上的同时,不会添加当前组内已有实例到 Slb实例后端。
对于一个已经附加在伸缩组上的 Slb实例,如果您想将伸缩组中当前全部实例加入到某一 Slb 实例的后端,您可以选择再次将该 Slb 附加到伸缩组,并选择 forceAttach 为 true。
您需要注意,将Slb实例添加到伸缩组时,由于Slb实例类型的限制,Slb实例需要满足以下条件:
- Slb实例必须是用户拥有的未删除实例。
- Slb实例与伸缩组必须在相同地域(region)下。
- Slb实例必须为active状态。
- Slb实例必须至少配置一个监听并开启健康检查。
- 如果Slb实例与伸缩组都为专有网络(vpc网络)类型,需要处于相同的vpc下。
- 当伸缩组为vpc网络类型,Slb实例为经典网络类型时,Slb实例后端服务器中如果包含vpc实例,必须与当前伸缩组处于相同vpc下。
- 伸缩组中附加的Slb实例个数必须少于伸缩组的配额。
将 Slb 分离出伸缩组
在将 Slb 从伸缩组移除的时,根据您指定的 forceDetach参数,将有以下两种行为:
- forceDetach 为true,将 Slb 从伸缩组移除的同时,将把 Slb 后端实例中与伸缩组关联的实例移除。
- forceDetach 为false,将 Slb 从伸缩组移除的同时,不会从 Slb 后端实例中移除与伸缩组关联实例。
在分离伸缩组的Slb实例时,您应该确认Slb实例不再向伸缩组内实例分发请求,以免造成您的服务请求丢失。并且,不同于 attachLoadBalancer操作,您不能多次尝试移除伸缩组中的同一个 Slb 实例。
详情参阅
关系型数据库RDS篇
RDS是阿里云提供的一种稳定可靠的在线数据库服务,支持MySQL、SQL Server、PostgreSQL 和 PPAS引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。RDS 与 弹性伸缩相结合时,通过将伸缩组内的实例自动加入到 RDS 实例的白名单,实现组内实例能够安全访问 RDS实例。
将 RDS 实例附加到伸缩组
将 RDS 实例附加到伸缩组时,根据您指定的 forceAttch 参数值,附加过程有以下两种行为:
- forceAttach 为true,将 RDS 实例附加到伸缩组时,会把伸缩组中当前拥有的所有实例私网IP都加入到 RDS 实例的IP白名单中。
- forceAttach 为false,将 RDS 实例附加到伸缩组时,不会尝试将伸缩组中已有实例私网IP加入到 RDS 实例的IP白名单中。
对于上述 RDS 附加过程,如果您将一个已经存在伸缩组中的 RDS 实例再次附加到伸缩组,此时,组内 RDS 实例数量不会改变,仅会尝试把当前伸缩组内的实例私网IP全部加入其IP白名单中。
您需要注意,将 RDS 实例附加到伸缩组,RDS 实例需要满足一下限制:
- RDS 实例必须是用户拥有的未删除实例。
- RDS 实例必须为 UNLOCK。
- RDS 实例运行状态必须为 RUNNING。
- RDS default分组的IP白名单总数在完成添加后不能超过1000个。
将 RDS 实例分离出伸缩组
将 RDS 实例从伸缩组中分离时,根据您指定的forceDetach参数,将有以下两种行为:
- forceDetach 为true,将 RDS 实例从伸缩组移除的同时,将把 RDS 白名单中与伸缩组关联的实例IP移除。
- forceDetach 为false,将 RDS 实例从伸缩组移除的同时,不会把 RDS 白名单中与伸缩组关联的实例IP移除。
您可以根据您的实际需要确定 forceDetach 的设置,需要注意的是,您无法对同一个 RDS 实例重复执行移除操作。
详情参阅
伸缩配置支持修改功能、以及镜像预设密码等功能
与伸缩组类似,为了解决伸缩配置重复创建的问题,我们提供了伸缩配置的修改能力,并进一步支持了更多的ECS特性,如镜像预设密码。
弹性伸缩配置支持修改以下参数:
- imageId
- instanceTypes
- internetMaxBandwidthOut
- ramRoleName
- keyPairName
- systemDiskCategory
- scalingConfigurationName
- tags
- userData
- instanceName
- loadBalancerWeight
- systemDiskSize
- internetChargeType
- passwordInherit(镜像预设密码)
- hostName(主机名称)
伸缩配置支持UserData & KeyPair & RamRole & Tags
为了提供更加弹性、灵活的伸缩服务,ESS 弹性伸缩配置中新增了 UserData、KeyPair、RamRole、Tags 四个特性。使用 UserData,您可以快速安全的完成自动化的配置过程,在 ECS 实例数量随着业务需求弹性变化的同时,您还能够安全、快速地完成应用级别的扩容和缩容。您还可以通过配置 KeyPair、Tags 等参数,实现更加高效、智能的 ECS 实例管理服务。
实例自定义数据(UserData)
实例自定义数据(UserData),是阿里云 ECS 为您提供的一种自定义实例启动行为及传入数据的功能,该功能兼容 Windows 实例及 Linux 实例,主要有两种用途:
- 作为实例自定义脚本,在启动实例时执行。
- 作为普通数据,将一定的信息传入实例中,您可以在实例中引用这些数据。
您在使用 ESS 来满足您 ECS 实例数随着业务需求弹性伸缩的要求时,如果您还要自动化地实现应用级别的扩容和缩容,常用地方法可能是通过自定义镜像的方式来实现,也可能是通过使用Terraform等开源的IT基础架构管理工具来实现。ESS 伸缩配置中添加了 UserData 参数以后,您只需要准备好您的 UserData 自定义脚本数据,然后以 Base64 编码的方式传入伸缩配置中即可。当 ESS 弹性扩容 ECS 实例数的时候,UserData 实例自定义脚本会在实例启动的时候自动地执行,从而帮您实现应用级别的扩容和缩容。相比借助于自定义镜像或其它开源工具来实现应用自动扩展的方法,使用 ESS 原生的 UserData 特性显得更加快捷、安全。
在创建伸缩配置,并使用了 UserData 参数时,需要注意以下几点:
- 专有网络(VPC)的伸缩配置才能使用 UserData 参数。
- UserData 要以 Base64 编码的方式传入。
- UserData 将以不加密的方式传入,所以请不要以明文方式传入机密的信息(比如密码、私钥数据等),如果必须传入,建议加密后,然后以 Base64 的方式编码后再传入,在实例内部以同样的方式反解密。
关于 UserData 更多的使用方法,您可以参考 阿里云实例自定义数据 文档。
SSH 秘钥对(KeyPairName)
在使用 SSH 登录远程 Linux 服务器时,您可以选择使用密码的方式来登录,也可以选择使用 SSH Key 的方式来登录。当您要管理的服务器集群较多时,频繁地输入密码不仅浪费时间,而且容易发生密码输入错误,无法登陆服务器的情况。此时,如果您通过 SSH Key 的方式来登陆服务器,您只需要配置好您的公钥和私钥,即可登录到服务器。一次配置,长期有效。
阿里云创建的 SSH Key 只支持 RSA 2048 位的密钥对。在生成秘钥的时候,阿里云会保存密钥的公钥部分,并返回给您秘钥的私钥部分。
ESS 弹性伸缩配置中的 KeyPairName 参数,为您提供了 SSH Key的方式来登录服务器的能力。在创建伸缩配置时,选择您想要使用的秘钥对名称作为 KeyPairName 参数配置到伸缩配置中。当 ECS 实例被弹性伸缩服务创建出来时,实例会存储此秘钥对的公钥部分,您只需要在本机配置一下秘钥对的私钥部分,便可以使用 SSH Key 的方式快速地登录到您的服务器上去。
在创建伸缩配置,并使用了 KeyPairName 参数时,需要注意以下几点:
- Windows ECS 实例,忽略该参数。即使传入了 KeyPairName,也不会生效。
- 当传入了 KeyPairName 参数后,Linux ECS 实例的密码登录方式会被初始化成禁止。
RAM角色名称(RamRoleName)
RAM (Resource Access Management) 是阿里云为客户提供的用户身份管理与访问控制服务。使用 RAM,您可以创建、管理用户账号(比如员工、系统或应用程序),并可以控制这些用户账号对您名下资源具有的操作权限。当您的企业存在多用户协同操作资源时,使用 RAM 可以让您避免与其他用户共享云账号密钥,按需为用户分配最小权限,从而降低您的企业信息安全风险。
RAM 支持创建不同的角色,不同的角色具有对不同的云产品的不同的操作权限。ESS 弹性伸缩配置新增了 RamRoleName 参数,您可以通过设置该参数,让您的 ECS 实例 来扮演不同的角色,这些实例便拥有了这些角色不同的云产品的操作权限。在给伸缩配置指定 RamRoleName 参数时,您需要确保当前的 RamRole 策略中允许您的 ECS 实例来扮演该角色,否则伸缩配置无法有效地弹出 ECS 实例。
标签(Tags)
阿里云 ECS 提供标签(Tags)服务,您可以通过给 ECS 实例绑定不同的标签的方式,实现对 ECS 实例的分类管理。
您可以通过查询不同的标签的方式,获取符合条件的 ECS 实例列表,同样,您也可以通过查询 ECS 实例的方式,查询出匹配到的标签。ESS 弹性伸缩配置新增了 Tags 参数,您可以通过设置不同的标签对,来对您 ESS 伸缩服务弹出来的机器进行分类管理。每个伸缩配置暂时最多只能支持五对标签,当指定的标签数超过五对,伸缩配置将创建失败。
详情参阅
提高创建成功率和业务可用性
支持多可用区扩容,并实现全球首家支持多种实例规格
弹性伸缩的核心在于用户需要横向扩容的时候要能弹出来,但是云计算的库存是一个动态变化的过程,库存不足的情况是情况是伴随云计算一直存在的问题,为了最大程度上提高用户的创建成功率,我们基于自身的产品现状,在支持了多可用区之后,又区别于其他云厂商提供了多实例规格的功能。
支持多可用区扩容
原弹性伸缩服务限定,一个专有网络伸缩组只能配置一个虚拟交换机。由于一个虚拟交换机只归属于一个可用区,这样存在的问题就是,当您配置好 ESS 伸缩组的虚拟交换机以后,如果虚拟交换机所在的可用区由于库存不足等原因无法创建出 ECS 实例,那么您伸缩组中的伸缩配置、伸缩规则、以及伸缩组对应的报警任务等都将生效。为了优化上述问题,提高伸缩组的可用性,ESS 伸缩组新增多可用区参数(VSwitchIds.N),您在创建伸缩组的时候可以使用该参数为您的伸缩组配置多个虚拟交换机,当一个虚拟交换机所在可用区无法创建实例的时候,ESS 弹性伸缩服务会为您自动切换到其它可用区。在使用该参数的时候,您需要注意以下几点:
- 如果使用了 VSwitchIds.N 多可用区参数,VSwitchId 参数将被忽略。
- VSwitchIds.N 参数中,N 的取值范围为 [1, 5],即一个伸缩组最多可以配置 5 个虚拟交换机。
- VSwitchIds.N 参数中指定的虚拟交换机需在同一个 VPC 下。
- VSwitchIds.N 参数中 N 代表虚拟交换机的优先级,编号为 1 的虚拟交换机为创建实例的第一选择,虚拟交换机优先级随着编号的增大依次降低。
当优先级较高的虚拟交换机所在可用区无法创建实例时,会自动选择下一优先级的虚拟交换机来创建实例。当您在使用多可用区参数来创建伸缩组时,尽可能地设置同一地域下不同可用区的虚拟交换机来创建您的伸缩组,这样可以有效地减少单可用区无法创建出实例问题的发生,提高了伸缩组的可用性。
详情参阅
支持多达10种实例规格
原弹性伸缩服务限定,一个伸缩组内只能有一个生效的伸缩配置,一个伸缩配置只能配置一种实例规格。由于上述的限制,导致伸缩组内有效的实例规格只有一个,如果当前的实例规格由于库存不足等变得不可用,那么伸缩组将无法创建出 ECS 实例。您需要重新选择当前伸缩组内其它伸缩配置或创建新的伸缩配置来恢复伸缩组,使伸缩组能够正常工作。为了优化上述问题,提高伸缩组内伸缩配置的可用性,ESS 弹性伸缩服务为伸缩配置新增了多实例规格参数(InstanceTypes.N)。您在创建伸缩配置的时候可以使用该参数为您的伸缩配置设置多个实例规格,当某个实例规格由于库存等原因变得不可用时,ESS 弹性伸缩服务会为您自动切换到其它有效的实例规格来创建实例。当您创建的伸缩配置使用了多实例规格参数时,您需要注意以下几点:
- 如果使用了 InstanceTypes.N 多实例规格参数,InstanceType 参数将被忽略。
- InstanceTypes.N 参数中,N 的取值范围为 [1, 10],即一个伸缩配置内最多可以设置 10 种实例规格。
- 当您的伸缩组是经典网络伸缩组时,伸缩组所属 Region 必须支持您所配置的所有实例规格的经典网络实例的售卖,如果当前 Region 不支持您所配置的实例规格,伸缩组将无法为您创建出 ECS 实例。您可以通过 查询可用区列表 接口查询当前 Region 支持的实例规格,以及每种规格支持的网络类型。
- 当您的伸缩组是专有网络(VPC)伸缩组时,伸缩组配置的虚拟交换机对应的可用区内必须支持您所配置的所有实例规格的专有网络实例的售卖,每个伸缩组可以配置多个虚拟交换机,您可以通过 使用 ESS SDK 快速创建多可用区伸缩组 了解更多。
- InstanceTypes.N 参数中 N 代表当前伸缩配置中实例规格的优先级,编号为 1 的实例规格优先级最高,实例规格优先级随着编号的增大依次降低。
- 如果当前伸缩配置中优先级较高的实例规格由于库存等原因无法创建出 ECS 实例时,ESS 会自动选择下一优先级的实例规格来为您创建实例。
- 当您在使用多实例规格参数来创建伸缩配置时,实例规格不可重复,否则伸缩配置将无法创建。
推出多可用区均衡分布模式
为了满足在多可用区下的高可用和容灾需求,保证服务的稳定性和连续性,弹性伸缩开放了多可用区实例自动均衡分布功能,来降低不可抗力因素对服务的正常运行可能造成的影响。
弹性伸缩通过把实例创建在跨越区域的多个可用区,使您可以利用地理冗余的安全性和可靠性。
多可用区自动均衡分布支持范围:
- 只支持vpc类型且设置了大于1个虚拟交换机(VSwitchId)的伸缩组
- 只能在伸缩组创建的时候进行设置
如何设置伸缩组多可用区自动均衡分布:
伸缩组新增多可用区弹性策略参数 MultiAZPolicy:
- PRIORITY (默认值)
- BALANCE
当设置为BALANCE的时候,伸缩组进行弹性活动的时候会自动均衡分布各个可用区的实例。
默认取值为PRIORITY,会根据定义的虚拟交换机优先级进行(VSwitchIds.N)扩缩容;当优先级较高的虚拟交换机所在可用区无法创建 ECS 实例时,自动使用下一优先级的虚拟交换机创建 ECS 实例。
再均衡
当发生以下情况的时候,伸缩组可能会在不同可用区之间变得不平衡:
- 可用区库存不足
- 伸缩组配置的虚拟交换机(VSwitchId)发生变化。
- 您移出伸缩组并释放了实例。
此时,您可以执行 RebalanceInstances 对伸缩组执行再均衡活动来进行补偿。
详情参阅
更全面的实例管理能力
支持实例备用状态、实例保护模式、分离实例操作
在实际的使用中,为了让用户更加灵活的管理自己的实例,解决一些特点场景下的需求,我们提供了3个新的管理功能
- Standby 备用状态 (满足用户对伸缩组中的实例进行升级、变配等操作)
- Protection 保护模式 (实例不会因为任何原因被移除)
- Detach 分离实例 (实例可以独立于伸缩组继续保留使用)
支持Standby的操作
针对伸缩组内管理的ECS实例,用户无法控制其生命周期。而伸缩组对实例的非健康状态的释放操作,也阻碍了用户对伸缩出来的ECS实例进行停机相关的操作,使得用户无法充分利用ECS服务提供的弹性能力。
通过Standby备用状态的操作,可以满足如下适用场景:
- 需要对弹性伸缩弹出的ECS实例进行更改规格,重启等变更操作的场景,用户通过将目标ECS实例置为standby,目标ECS实例的生命周期会交由用户管理,用户可进行ECS服务所支持的全部弹性操作,操作完成后,在通过移出standby状态,交还ECS实例的生命周期。
- 用户通过伸缩组配置负载均衡的方式来管理业务机器,当伸缩组中的某台实例出现业务问题,用户可以通过standby操作对这台实例的原有流量分流,进行一系列离线排查验证(登陆机器,排查,重启等)操作后,在确认该机器已经ready后,在移出standby状态,重新处理业务流量
支持实例生命周期管理
上线生命周期挂钩(LifecycleHook)功能,方便用户更加灵活地管理伸缩组内实例。使用生命周期挂钩可以在伸缩组发生伸缩活动时将伸缩活动挂起,执行自定义操作。
使用 LifecycleHook,可以在伸缩组发生伸缩活动时将正在扩张或即将释放的 ECS 实例挂起,执行用户自定义操作,可以更加灵活地管理 ECS 实例在伸缩组内的生命周期。几个简单的 LifecycleHook 应用场景:
- 伸缩组弹出 ECS 实例后需要延迟一段时间(测试服务没问题以后)挂载到 SLB ,然后对外提供服务
- 伸缩组释放 ECS 实例时需要先将实例从 SLB 后端服务移除(防止接收新的请求),待检测已经接收到的请求处理完成,停止并释放实例
- 伸缩组释放 ECS 实例时执行数据备份操作
- 伸缩组弹性扩张或者收缩执行一些用户自定义操作
针对上述第二种场景,如果可以确定每个请求的最长处理时间,可以调用 创建生命周期挂钩 接口创建生命周期挂钩,设置 LifecycleTransition 参数值为 SCALE_IN,设置 HeartbeatTimeout 为请求最长处理时间,不需要设置通知对象,当发生弹性收缩类型伸缩活动时,ECS 实例从 SLB 移除后会挂起一段时间(HeartbeatTimeout),等待请求处理完成。
更完善的伸缩体验
平滑弹性能力增强
为了让用户可以从更多监控维度来trigger Auto Scaling的弹性事件,我们把原来支持的6种监控指标增加到13种,同时支持用户自定义监控项
AutoScaling 报警任务
AutoScaling 报警任务是 AutoScaling 与 云监控服务(CMS) 深度合作,提供的一种动态管理伸缩组的方式,类似于 AutoScaling 定时任务,AutoScaling 报警任务通过触发您指定的伸缩规则来执行伸缩活动,达到调整伸缩组内实例个数的目的。
定时任务可以在您指定的时间执行您指定的伸缩规则,当业务场景在时间上可预料时,能够提前做出响应,但是,在面对突发或者时间上不可预料的业务场景时,定时任务就显得捉襟见肘,此时,就需要报警任务来提供更灵活的触发伸缩规则的方式,在业务高峰期增加伸缩组内实例数量来缓解业务压力,在业务低谷时释放伸缩组内实例,减小生产成本。
报警任务通过监控特定的监控指标,对数据指标进行实时的统计,当统计值满足您指定的报警条件时,触发报警,执行您指定的伸缩规则。使用报警任务,您可以实时的根据业务的变化来不断调整伸缩组内的实例数量,保证您监控的指标维持在您期望的范围内。
AutoScaling 系统监控报警任务
AutoScaling 系统监控报警任务的监控指标是云监控为用户采集的 ECS 实例的相关数据指标,比如CPU,负载等。用户在 AutoScaling 中设置的系统监控的报警任务是以伸缩组作为监控粒度的,即以伸缩组内的所有实例的监控指标的统计平均值作为伸缩组的指标值,当伸缩组内实例数量发生变化时,监控指标也会同时进行更新。
新增系统监控项:
监控项 | 单位 |
---|---|
系统盘写bps | Byte/s |
系统盘读bps | Byte/s |
系统盘写iops | 个/s |
系统盘读iops | 个/s |
外网网卡发包数(经典网络) | 个/s |
外网网卡收包数(经典网络) | 个/s |
内网网卡发包数 | 个/s |
内网网卡收包数 | 个/s |
TCP总连接数 | 个 |
TCP已建立连接数 | 个 |
AutoScaling 自定义监控项报警任务
AutoScaling 自定义监控项报警任务的监控对象为用户自主上报到云监控中的监控指标。在一些场景下,系统监控项可能不包含您所需要的监控指标,您可能拥有自己的一套监控系统,并且关心的是与您特定业务相关的某些指标,自定义监控报警任务,为您自有的监控系统,或者与业务相关的自有监控指标提供了设置报警任务的接入点。
AutoScaling 自定义监控报警任务是针对阿里云云监控服务的自定义监控项设置报警的,用户在使用 AutoScaling 自定义监控报警任务之前需要首先向云监控上报自定义监控数据,即自定义监控项。云监控自定义监控是提供给用户*定义监控项及报警规则的一项服务,通过此服务,用户可以针对自己关心的业务指标进行监控,将采集到监控数据上报至云监控,由云监控来进行数据的处理,并可以对其设置报警规则。
详情参阅
事件通知能力
为了进一步优化使用体验,我们废弃了原有的短信+邮件的古老通知方式,改成支持用户自定义接收人、接收方式(钉钉+短信+邮件)和接收内容的全新方式,并且支持可编程的通知方式Topic、Queue,更大程度上提升用户的体感。
AutoScaling 事件通知功能支持伸缩组级别的事件通知,您可以为您的伸缩组配置事件通知,并配置需要通知的伸缩活动类型,当发生对应的伸缩活动时,事件通知会推送伸缩活动详细信息到您配置的通知对象。目前事件通知功能支持三种通知对象、五种类型的伸缩活动。使用事件通知功能,您可以第一时间获知伸缩组内实例变化情况,实时监控伸缩组信息。
事件通知支持的伸缩活动类型
当您在 创建事件通知 时,需要设置触发事件通知对应的伸缩活动类型,当伸缩组发生对应类型的伸缩活动时,事件通知触发执行,发送伸缩活动详细信息到您设置的通知对象。
事件通知(Notification)目前支持以下五种类型的伸缩活动:
- 扩容伸缩活动成功(AUTOSCALING:SCALE_OUT_SUCCESS)
- 扩容伸缩活动失败(AUTOSCALING:SCALE_OUT_ERROR)
- 缩容伸缩活动成功(AUTOSCALING:SCALE_IN_SUCCESS)
- 缩容伸缩活动失败(AUTOSCALING:SCALE_IN_ERROR)
- 伸缩活动拒绝执行(AUTOSCALING:SCALE_REJECT)
上述伸缩活动中,伸缩活动成功包含了部分成功和全部成功两种情况,您可以通过事件通知发出的伸缩活动详情来判断是部分成功还是全部成功。您还可以通过 DescribeNotificationTypes 接口查询事件通知支持的伸缩活动类型。
事件通知支持的通知方式
当伸缩活动触发事件通知功能时,事件通知功能需要将伸缩活动详情上报给对应的事件通知对象,目前事件通知支持下列三种通知方式:
- 伸缩活动详情上报到云监控系统事件
- 伸缩活动详情推送到消息服务(MNS)队列(Queue)中
- 伸缩活动详情推送到消息服务(MNS)主题(Topic)中
更低的TCO成本
通过使用抢占式实例(原名:竞价实例), 省上加省!
抢占式实例是一种按照供需关系变化价格波动的一种后付费类型实例,相对于按量付费实例价格有较低的折扣。使用抢占式实例的时候,您可以对 ECS 实例进行出价,设定您的最高出价,ECS 抢占式实例的市场价格会根据当前的供需关系浮动(目前价格波动是按量付费价格的1~10折),您的出价将确保您不会以超过您最高出价的价格购买 ECS 实例,当市场价格高于您的最高出价时,阿里云将不会为您生产 ECS 实例,这将保证您的生产成本不会超出您从预期。
需要注意的是,抢占式实例低廉的价格也伴随着一定的风险,当市场价格高于您的最高出价,或者市场供需严重不均衡时,阿里云有权释放您的 ECS 实例。当然,在释放前5分钟,阿里云将会进行meta信息的通知,您可以订阅阿里云metasdata的信息,以便您能够及时的进行数据的保存和清理。
合理的使用抢占式实例,相比于同规格按量付费实例将会为您节约大量的服务器成本,抢占式实例最佳适用场景示例如下:
- 实时分析业务
- 大数据业务
- 图像和媒体编码业务
- 科学计算业务
- 可弹性伸缩的业务站点、网络爬虫业务
- 图像和媒体编码业务
- 基因计算业务
- 地理空间勘测分析业务
写在最后
希望以上这些新功能可以让您更轻松自如地应对业务负载变化,弹性支撑业务发展的同时仍能保持较低的TCO成本。在弹性编排ECS实例的基础之上,如果您对于如何运维ECS有更多的疑问或建议,欢迎您参加即将于8月8日举行的线上直播,了解更多与ECS运维有关的内容。