EC2 中扩展与缩减的方法

7 篇文章 1 订阅

EC2 中扩展与缩减的方法

今天要讨论的是 Auto Scaling Out/In 自动扩展或缩减这样的配置有何可以再改进的地方:
首先,根据 AWS 官方教材的作法,它们会建议把 Auto Scaling Group 放在私有子网,而 Elastic Load Balancing (ELB) 放在公有子网中。这样的配置比较合理,因为这样比较安全。

对于 Auto Scaling Group 的扩展与缩减政策需要做进一步的说明

扩展与缩减的方法

维持固定数量执行实例 Maintain current instance levels at all times

直接指定要执行的实例数量,简单的做法就是在 Auto Scaling Group 中将所需容量 desired capacity/容量下线 minimum size/容量上限 maximum size 这三个值都设定一样就可以。

Auto Scaling Group 维持固定数量执行实例
图 1. Auto Scaling Group 维持固定数量执行实例

手动扩展 Manual scaling

手动将 EC2 实例附加到 Auto Scaling Group,到 EC2 控制台,选择左边选单中的 实例 Instances,按下右边的建立启动组态按钮,当然也可以用相同操作将EC2 实例从 Auto Scaling Group 中移除。

将 EC2 实例附加到 Auto Scaling Group
图 2. 将 EC2 实例附加到 Auto Scaling Group

排程扩展 Scale based on a schedule

排程扩展表示扩展动作将以时间和日期的函数的形式自动执行。当您确切知道何时要增加或减少群组中实例的数量时,这一点非常有用,这完全是因为需求是按照可预测的时程而产生的。
到 EC2 控制台,选择左边选单中的 Auto Scaling Groups,选择指定的自动缩放群 ithomeASG ,按下下方的 自动调整规模(Automatic scaling) 页签,在这个页签会找到排定的动作栏,按下建立排定的动作,需入预定的时间以及需要的实例数量

在 Auto Scaling Group 中建立排定的动作
图 3. 在 Auto Scaling Group 中建立排定的动作

需求扩展 Scale based on demand

Amazon EC2 Auto Scaling 支持下列扩展政策类型:

  1. 目标跟踪缩放政策 Target tracking scaling policies — 基于特定度量标准的目标值增加或减少组的当前容量,默认就是使用这个缩放政策。
  2. 步骤缩放政策 Step scaling policies — 基于一组扩展调整来增加或减少组的当前容量,称为步骤调整,根据警报触发来调整缩放的大小。
  3. 简单缩放政策 Simple scaling policies — 基于单个缩放调整增加或减少组的当前容量。

在详细讨论上述政策时我们先了解整个政策的制定过程,原则上所有政策应该都需要以下要件:

  • 目标值:比方说CPU使用率达到50%以上、请求数达到10个以上等等。
  • 动作:增加一个或是20%个实体、减少两个实体。
  • 触动器:监控上述的目标值并通知这是一个 Auto Scaling Group 进行动作,这是由 CloudWatch 负责。

我们以下图为例,这是一个 Auto Scaling Group 使用的是步骤缩放政策,一开始的所需容量: 10 个实例、最少:5 个实例、最多:20 个实例,而步进调整策略为:

  1. 添加 2 个实例,当(平均 CPU 利用率为 80-100% 时)
  2. 添加 1 个实例,当(平均 CPU 利用率为 60-80% 时)
  3. 删除 1 个实例,当(平均 CPU 利用率为 20-40% 时)
  4. 删除 2 个实例,当(平均 CPU 利用率为 0-20% 时)

当平均 CPU 利用率超过 60% 时,并没有立即发出 CloudWatch Alerm ,这原因在于 CloudWatch 监控标准周期是 5 分钟,如果希望有较小的监控周期,必须要调整为详细监控,则为 1 分钟检查一次。从这可以发现,并非事件发生的同时就会立刻触动指定的政策,监控时间间格设定越小,事件发生与触动的时间差就会越小。

当添加 1 个实例的动作发生后,同时间就有 3 个定时器被触发,分别是冷却时间、暖机时间、运作状态检查宽限期定时器。接下来每一分钟步进调整策略 1 都会被监控到,但会被忽略,因为还在冷却时间内。当平均 CPU 利用率超过 80% 时,步进调整策略 2 被触发了,对冷却时间定时器而言,因为时间还没到,所以它忽略这个动作、而暖机时间定时器则整合了刚刚第一个政策,因为已经有新增一个了,所以就再加一个实例就可以满足步进调整策略 2 。

步骤缩放政策练习
图 4. 步骤缩放政策练习

冷却时间 cooldown period: 是属于 Auto Scaling Group,针对实例启动或是终止都需套用这个时间,时间内忽略 CloudWatch 警告,对象是为 auto-scaling action,目的是以防止失控的扩展事件。如果系统的CPU使用率很高,并且您的自动缩放规则添加了一个实例,则将需要5分钟左右的时间来完全启动该实例并帮助减轻负载。如果没有冷却时间,该规则将继续触发,并可能在CPU指标下降之前添加4或5个实例,从而导致浪费的过度配置。或者在缩小的情况下,超调并导致配置不足。

运作状态检查宽限期 Health check grace period : 是属于 Auto Scaling Group,针对实例启动需套用这个时间,时间内忽略 CloudWatch 警告,对象是为实例。当 Amazon EC2 Auto Scaling 实例启动时,等到 Health Check Grace Period 指定的时间到达才开始检查实例的运行状况。

暖机时间 Warm-up: 是属于 scaling policies ,而只针对实例启动时才需套用这个时间,时间内会整合 CloudWatch 警告,对象为 auto-scaling action。目的为设定实例和时加入或移除 Auto Scaling Group,执行向外扩展时,不会认为正在 warm-up 的实例是群组目前容量的一部分。执行向内扩展时,会认为正在中止的实例是群组目前容量的一部分。

AWS的定义

  • Cooldown period: the cooldown period helps to ensure that your Auto Scaling group doesn’t launch or terminate additional instances before the previous scaling activity takes effect. You can configure the length of time based on your instance warmup period or other application needs. From AWS documentation
  • Health check grace period: frequently, an Auto Scaling instance that has just come into service needs to warm up before it can pass the health check. Amazon EC2 Auto Scaling waits until the health check grace period ends before checking the health status of the instance. From AWS documentation
  • Warm-up period : allows you to control the time until a newly launched instance can contribute to the CloudWatch metrics, so when warm-up time has expired, an instance is considered part Auto Scaling group and will receive traffic. From AWS documentation

预测扩展 Use predictive scaling

这并不是 EC2 服务中所提供的功能,而是 AWS Auto Scaling,它可以通过结合预测扩展和动态扩展来维持最佳可用性和性能,从而扩展您的 Amazon EC2 容量更快。如需更多详细信息,请参阅 AWS Auto Scaling 用户指南

References

  • Difference between auto scaling Cooldown period and health check grace period, https://stackoverflow.com/questions/55442279/difference-between-auto-scaling-cooldown-period-and-health-check-grace-period
  • What is the difference between AWS ASG cooldown period and the warmup period in the scaling policy?, https://stackoverflow.com/questions/58039006/what-is-the-difference-between-aws-asg-cooldown-period-and-the-warmup-period-in
  • 目标跟踪扩展策略 Amazon EC2 Auto Scaling, https://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/as-scaling-target-tracking.html
  • 配置监控 Auto Scaling 实例, https://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/enable-as-instance-metrics.html
  • Dynamic scaling for Amazon EC2 Auto Scaling, https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html
    //docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值