为了满足在多可用区下的高可用和容灾需求,保证服务的稳定性和连续性,弹性伸缩开放了多可用区实例自动均衡分布功能,来降低不可抗力因素对服务的正常运行可能造成的影响。
弹性伸缩通过把实例创建在跨越区域的多个可用区,使您可以利用地理冗余的安全性和可靠性。
多可用区自动均衡分布支持范围
- 只支持vpc类型且设置了大于1个虚拟交换机(VSwitchId)的伸缩组
- 只能在伸缩组创建的时候进行设置
如何设置伸缩组多可用区自动均衡分布
伸缩组新增多可用区弹性策略参数 MultiAZPolicy
- PRIORITY (默认值)
- BALANCE
当设置为BALANCE的时候,伸缩组进行弹性活动的时候会自动均衡分布各个可用区的实例。
默认取值为PRIORITY,会根据定义的虚拟交换机优先级进行(VSwitchIds.N)扩缩容;当优先级较高的虚拟交换机所在可用区无法创建 ECS 实例时,自动使用下一优先级的虚拟交换机创建 ECS 实例。
再均衡
当发生以下情况的时候,伸缩组可能会在不同可用区之间变得不平衡:
- 可用区库存不足
- 伸缩组配置的虚拟交换机(VSwitchId)发生变化。
- 您移出伸缩组并释放了实例。
此时,您可以执行 RebalanceInstances 对伸缩组执行再均衡活动来进行补偿。
再平衡活动会通过新建 ECS 实例替换已有 ECS 实例来平衡可用区。为了不会影响您的应用程序性能或可用性,再平衡活动会在终止已有 ECS 实例前会先启动新 ECS 实例。
- 只有伸缩组内实例分布严重不平衡时可以执行再平衡操作。
- 一次分布再平衡活动最多只替换 20 台 ECS 实例
- 再平衡活动期间,当该组接近或达到指定的最大 ECS 实例台数(MaxSize)时,并需要继续分布再平衡时,我们允许可以暂时超出伸缩组的容量的 10 %,最低允许超出 1 台 ECS 实例。该超出状态持续重新平衡该伸缩组所需的时间,通常为几分钟。