为横向扩展创建分步扩展策略 - Amazon A EC2 uto Scaling

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

为横向扩展创建分步扩展策略

要为您的 Auto Scaling 组创建分步扩展策略以进行扩展,请使用以下方法之一:

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

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

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

  4. 选择选择指标

  5. 在 “所有指标” 选项卡上 EC2,选择 “按 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. 在 “通知” 下,选择要在警报处于ALARM状态、OK状态或INSUFFICIENT_DATA状态时通知的 Amazon SNS 主题。

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

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

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

  12. 选择 Next(下一步)。

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

  14. 选择创建警报

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

步骤 2:为横向扩展创建分步扩展策略
  1. 在上打开亚马逊EC2控制台 https://console.aws.amazon.com/ec2/,然后从导航窗格中选择 A uto Scaling Gro ups。

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

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

  3. 验证是否正确设置了扩缩限制。例如,如果您的组所需的容量已经是最大,则指定一个新的最大值才能向外扩展。有关更多信息,请参阅 为自动扩缩组设置扩缩限制

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

  5. 对于 “策略类型”,选择 “分步扩展”,然后为策略指定名称。

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

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

    例如,要创建将组容量增加 30% 的扩展策略,请选择Add,在下一个字段30中输入,然后选择。percent of group默认情况下,此步骤调整的下限为警报阈值,上限为正 (+) 无穷。

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

  9. 要设置可扩展的最少实例数,请更新 Add capacity units in increments of at least (添加容量单位的增量至少为) 1 capacity units (容量单位) 中的数量字段。

  10. (可选)对于实例预热,根据需要更新实例预热值。

  11. 选择创建

AWS CLI

要为横向扩展(增加容量)创建分步扩展策略,可以使用以下示例命令。替换每个 user input placeholder 用你自己的信息。

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

步骤 1:创建横向扩展策略

使用以下put-scaling-policy命令创建名为的分步扩展策略my-step-scale-out-policy,其调整类型为PercentChangeInCapacity,该策略可根据以下步骤调整来增加组的容量(假设 CloudWatch 警报阈值为 60%):

  • 当指标值大于或等于 60% 但小于 75% 时,将实例计数增加 10%

  • 当指标值大于或等于 75% 但小于 85% 时,将实例计数增加 20%

  • 当指标值大于或等于 85% 时,将实例计数增加 30%

aws autoscaling put-scaling-policy \ --auto-scaling-group-name my-asg \ --policy-name my-step-scale-out-policy \ --policy-type StepScaling \ --adjustment-type PercentChangeInCapacity \ --metric-aggregation-type Average \ --step-adjustments MetricIntervalLowerBound=0.0,MetricIntervalUpperBound=15.0,ScalingAdjustment=10 \ MetricIntervalLowerBound=15.0,MetricIntervalUpperBound=25.0,ScalingAdjustment=20 \ MetricIntervalLowerBound=25.0,ScalingAdjustment=30 \ --min-adjustment-magnitude 1

记录政策的 Amazon 资源名称 (ARN)。您需要它来为策略创建 CloudWatch 警报。

{ "PolicyARN": "arn:aws:autoscaling:region:123456789012:scalingPolicy:4ee9e543-86b5-4121-b53b-aa4c23b5bbcc:autoScalingGroupName/my-asg:policyName/my-step-scale-in-policy }
步骤 2:为指标高阈值创建 CloudWatch 警报

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

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