为缩放创建分步缩放策略 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为缩放创建分步缩放策略

要为您的 Auto Scaling 组创建逐步缩放策略,请使用以下方法之一:

Console
步骤 1:为指标低阈值创建 CloudWatch 警报
  1. 打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

  2. 如果需要,可以更改区域。从导航栏中,选择您的自动扩缩组所在的区域。

  3. 在导航窗格中,选择 Alarms, All alarms(警报,所有警报),然后选择 Create alarm(创建警报)。

  4. 选择选择指标

  5. All metrics(所有指标)选项卡上,选择 EC2By Auto Scaling Group(按 Auto Scaling 组),然后在搜索字段中输入 Auto Scaling 组的名称。然后,选择 CPUUtilization 并选择 Select metric(选择指标)。将显示 Specify metric and conditions(指定指标和条件)页面,其中显示一个图表以及有关指标的其他信息。

  6. Period(周期)下,选择警报的评估周期,例如 1 分钟。评估警报时,每个周期都聚合到一个数据点。

    注意

    周期越短,创建的警报越敏感。

  7. Conditions(条件)下,执行以下操作:

    • 对于 Threshold type(阈值类型),选择 Static(静态)。

    • CPUUtilization于 Whenever is,指定您是否希望指标值小于或小于或等于触发警报的阈值。然后,在 than(大于/小于)下,输入您希望超过警报的阈值。

      重要

      要将警报与缩减策略(指标低)一起使用,请确保不要选择大于或大于或等于阈值。

  8. 其他配置下,执行以下操作:

    • 对于 Datapoints to alarm(触发警报的数据点数),输入指标值必须满足阈值条件才会触发警报的数据点(评估时间段)数。例如,2 个连续的 5 分钟时间段需要花 10 分钟才会调用警报状态。

    • 对于 Missing data treatment(缺失数据处理),选择 Treat missing data as bad (breaching threshold)(将丢失的数据视为不良数据(违反阈值))。有关更多信息,请参阅 Amazon CloudWatch 用户指南中的配置 CloudWatch 警报如何处理丢失的数据

  9. 选择下一步

    Configure actions(配置操作)页面会显示。

  10. Notification(通知)下面,选择一个在警报处于 ALARMOKINSUFFICIENT_DATA 状态时通知的 Amazon SNS 主题。

    要使告警为相同告警状态或不同告警状态发送多个通知,请选择添加通知

    要让警报不发送通知,请选择删除

  11. 您可以保留 Configure actions(配置操作)页面的其他部分为空。将其他部分留空会创建警报,而不会将其与扩展策略相关联。然后,您可以从 Amazon EC2 Auto Scaling 控制台将警报与扩展策略关联。

  12. 选择 Next(下一步)。

  13. 输入警报的名称(例如,Step-Scaling-AlarmLow-RemoveCapacity)和可选的描述,然后选择 Next(下一步)。

  14. 选择创建警报

创建 CloudWatch 警报后,按照以下步骤继续从上次中断的地方继续。

步骤 2:为缩减创建分步扩展策略
  1. 访问 https://console.aws.amazon.com/ec2/,打开 Amazon EC2 控制台,然后从导航窗格中选择 Auto Scaling Groups(Auto Scaling 组)。

  2. 选中您的自动扩缩组旁边的复选框。

    这时将在页面底部打开一个拆分窗格。

  3. 验证是否正确设置了扩缩限制。例如,如果您的群组所需容量已达到最小值,则需要指定新的最小容量才能进行扩展。有关更多信息,请参阅 为自动扩缩组设置扩缩限制

  4. Automatic scaling(自动扩展)选项卡的 Dynamic scaling policies(动态扩展策略)中,选择 Create dynamic scaling policy(创建动态扩展策略)。

  5. 对于策略类型,选择分步缩放,然后为策略指定名称。

  6. 要获得CloudWatch 警报,请选择您的闹钟。如果您尚未创建警报,请选择创建警 CloudWatch 报,然后完成上一个过程中的步骤 4 到步骤 14 以创建警报。

  7. 指定在使用 Take the action (执行操作) 来完成操作时,此策略对当前组大小进行的更改。您可以删除特定数量的实例或现有组大小的百分比,也可将组设置为准确的大小。

    例如,要创建将组容量减少两个实例的缩减策略,请选择Remove,在下一个字段2中输入,然后选择capacity units。默认情况下,此步骤调整的上限为警报阈值,下限为负 (-) 无穷。

  8. 要添加另一个步骤,请选择 Add step (添加步进),然后定义要缩放的量以及步进相对于警报阈值的下限和上限。

  9. 选择创建

Amazon CLI

要为缩小(减少容量)创建分步扩展策略,可以使用以下示例命令。将每个用户输入占位符替换为您自己的信息。

使用时 Amazon CLI,首先要创建分步扩展策略,该策略向 Amazon EC2 Auto Scaling 提供有关在指标值减少时如何缩减的说明。然后,您可以通过识别要监视的指标、定义警报的指标低阈值和其他详细信息以及将警报与扩展策略关联来创建警报。

第 1 步:创建扩大规模的策略

使用以下put-scaling-policy命令创建名为的分步扩展策略my-step-scale-in-policy,其调整类型为,当关联的ChangeInCapacity CloudWatch 警报违反指标低阈值时,该策略会将组的容量减少 2 个实例。

aws autoscaling put-scaling-policy \ --auto-scaling-group-name my-asg \ --policy-name my-step-scale-in-policy \ --policy-type StepScaling \ --adjustment-type ChangeInCapacity \ --step-adjustments MetricIntervalUpperBound=0.0,ScalingAdjustment=-2

记下策略的 Amazon Resource Name (ARN)。您需要它来为策略创建 CloudWatch 警报。

{ "PolicyARN": "arn:aws:autoscaling:region:123456789012:scalingPolicy:ac542982-cbeb-4294-891c-a5a941dfa787:autoScalingGroupName/my-asg:policyName/my-step-scale-out-policy }
步骤 2:为指标低阈值创建 CloudWatch 警报

使用以下 CloudWatch put-metric-alarm命令创建警报,根据平均 CPU 阈值 40% 减小 Auto Scaling 组的大小,至少连续两个评估周期(两分钟)。要使用您自己的自定义指标,请在 --metric-name 中指定其名称,并在 --namespace 指定其命名空间。

aws cloudwatch put-metric-alarm --alarm-name Step-Scaling-AlarmLow-RemoveCapacity \ --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average \ --period 120 --evaluation-periods 2 --threshold 40 \ --comparison-operator LessThanOrEqualToThreshold \ --dimensions "Name=AutoScalingGroupName,Value=my-asg" \ --alarm-actions PolicyARN