为横向缩减创建步进扩缩策略
要为您的自动扩缩组创建横向缩减的步进扩缩策略,请使用以下方法之一:
- Console
-
步骤 1:为指标低阈值创建 CloudWatch 警报
访问 https://console.aws.amazon.com/cloudwatch/
打开 CloudWatch 控制台。 -
如果需要,可以更改区域。从导航栏中,选择您的自动扩缩组所在的区域。
-
在导航窗格中,选择 Alarms, All alarms(警报,所有警报),然后选择 Create alarm(创建警报)。
-
选择选择指标。
-
在 All metrics(所有指标)选项卡上,选择 EC2、By Auto Scaling Group(按 Auto Scaling 组),然后在搜索字段中输入 Auto Scaling 组的名称。然后,选择
CPUUtilization并选择 Select metric(选择指标)。将显示 Specify metric and conditions(指定指标和条件)页面,其中显示一个图表以及有关指标的其他信息。 -
在 Period(周期)下,选择警报的评估周期,例如 1 分钟。评估警报时,每个周期都聚合到一个数据点。
注意
周期越短,创建的警报越敏感。
-
在 Conditions(条件)下,执行以下操作:
-
对于 Threshold type(阈值类型),选择 Static(静态)。
-
对于每当
CPUUtilization为,请指定您是希望指标值小于还是小于等于阈值以触发警报。然后,在 than(大于/小于)下,输入您希望超过警报的阈值。重要
要使警报与横向缩减策略(警报的低阈值)一起使用,请确保不要选择大于或大于等于阈值。
-
-
在其他配置下,执行以下操作:
-
对于 Datapoints to alarm(触发警报的数据点数),输入指标值必须满足阈值条件才会触发警报的数据点(评估时间段)数。例如,2 个连续的 5 分钟时间段需要花 10 分钟才会调用警报状态。
-
对于 Missing data treatment(缺失数据处理),选择 Treat missing data as bad (breaching threshold)(将丢失的数据视为不良数据(违反阈值))。有关更多信息,请参阅 Amazon CloudWatch 用户指南中的配置 CloudWatch 警报处理缺少数据的方式。
-
-
选择下一步。
Configure actions(配置操作)页面会显示。
-
在 Notification(通知)下面,选择一个在警报处于
ALARM、OK或INSUFFICIENT_DATA状态时通知的 Amazon SNS 主题。要使告警为相同告警状态或不同告警状态发送多个通知,请选择添加通知。
要让警报不发送通知,请选择删除。
-
您可以保留 Configure actions(配置操作)页面的其他部分为空。将其他部分留空会创建警报,而不会将其与扩展策略相关联。然后,您可以从 Amazon EC2 Auto Scaling 控制台将警报与扩展策略关联。
-
选择下一步。
-
输入警报的名称(例如,
Step-Scaling-AlarmLow-RemoveCapacity)和可选的描述,然后选择 Next(下一步)。 -
选择创建警报。
创建 CloudWatch 警报后,使用以下程序从中断的地方继续操作。
步骤 2:为横向缩减创建步进扩缩策略
访问 https://console.aws.amazon.com/ec2/
,打开 Amazon EC2 控制台,然后从导航窗格中选择 自动扩缩组。 -
选中您的自动扩缩组旁边的复选框。
这时将在页面底部打开一个拆分窗格。
-
验证是否正确设置了扩缩限制。例如,如果您的组所需容量已经是最小,则需要指定一个新的最小值才能横向缩减。有关更多信息,请参阅 为自动扩缩组设置扩缩限制。
-
在 Automatic scaling(自动扩展)选项卡的 Dynamic scaling policies(动态扩展策略)中,选择 Create dynamic scaling policy(创建动态扩展策略)。
-
对于策略类型,选择步进扩展,然后指定该策略的名称。
-
对于 CloudWatch alarm (CloudWatch 警报),请选择您的警报。如果尚未创建警报,请选择创建 CloudWatch 警报,然后完成上一程序中的步骤 4 到步骤 14 以创建警报。
-
指定在使用 Take the action (执行操作) 来完成操作时,此策略对当前组大小进行的更改。您可以删除特定数量的实例或现有组大小的百分比,也可将组设置为准确的大小。
例如,要创建将组容量减少两个实例的横向缩减策略,请选择
Remove,在下一个字段中输入2,然后选择capacity units。默认情况下,此步骤调整的上限为警报阈值,下限为负 (-) 无穷。 -
要添加另一个步骤,请选择 Add step (添加步进),然后定义要缩放的量以及步进相对于警报阈值的下限和上限。
-
选择创建。
- 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-namemy-asg\ --policy-namemy-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
命令创建警报,基于至少两个连续评估期(两分钟)内 40% 的平均 CPU 阈值减小 Auto Scaling 组的大小。要使用您自己的自定义指标,请在 --metric-name中指定其名称,并在--namespace指定其命名空间。aws cloudwatch put-metric-alarm --alarm-nameStep-Scaling-AlarmLow-RemoveCapacity\ --metric-nameCPUUtilization--namespaceAWS/EC2--statistic Average \ --period120--evaluation-periods2--threshold40\ --comparison-operator LessThanOrEqualToThreshold \ --dimensions "Name=AutoScalingGroupName,Value=my-asg" \ --alarm-actionsPolicyARN