amazon-ec2 - 如何使用 Cloud Formation 或 AWS CLI 将扩展策略添加到 Auto Scaling 组
问题描述
如何使用 Cloud Formation 或 AWS CLI 将扩展策略添加到新的或现有的 Auto Scaling 组
解决方案
有一个重要的例子,但下面是我现有的云形成模板之一的片段。
1)参数 您应该将最小值和最大值作为参数
2)自动缩放组本身 我将其包含在下面,但如果您不想包含它,您可以将其作为参数。您还可以使用一个条件,该条件将使用参数的存在作为条件来确定是否应创建 ASG。请注意,如果您确实使用了该条件,您还将在所有带有 in 语句的引用上使用该条件(以确定是否在模板或参数中使用本地 ASG)。
3) 报警 这是自动缩放组的关键元素——确定报警。我正在使用集群的内存预留,但我会说 CPU 是最常见的。您可以使用任何指标 cloudwatch 监视器,甚至可以使用自定义指标。
4) 政策 我目前正在迅速做出反应……新实例产生影响大约需要 30-60 秒,这就是为什么我在事件之间有 120 秒的时间。您需要了解您的系统以正确选择正确的数量以避免过度扩展。
ECSClusterAutoScalingGroup:
Type: 'AWS::AutoScaling::AutoScalingGroup'
Condition: notDedicated
Properties:
VPCZoneIdentifier:
- 'Fn::ImportValue': !Sub '${VPC}-PrivateSubnet1'
- 'Fn::ImportValue': !Sub '${VPC}-PrivateSubnet2'
- 'Fn::ImportValue': !Sub '${VPC}-PrivateSubnet3'
MinSize: !Ref MinSize
MaxSize: !Ref MaxSize
HealthCheckGracePeriod: '600'
HealthCheckType: EC2
LaunchConfigurationName: !Ref ECSLaunchConfiguration
MetricsCollection:
- Granularity: 1Minute
ECSClusterScaleOutPolicy:
Type: 'AWS::AutoScaling::ScalingPolicy'
Condition: AutoScaleNotDedicated
Properties:
AdjustmentType: ChangeInCapacity
AutoScalingGroupName: !Ref ECSClusterAutoScalingGroup
Cooldown: '120'
ScalingAdjustment: '1'
ECSClusterScaleOutAlarm:
Type: 'AWS::CloudWatch::Alarm'
Condition: AutoScaleNotDedicated
Properties:
EvaluationPeriods: '1'
Statistic: Average
Threshold: '70'
AlarmDescription: Scale up alarm when Memory Reservation > 70% for 1 minute
Period: '60'
AlarmActions:
- !Ref ECSClusterScaleOutPolicy
Namespace: AWS/ECS
Dimensions:
- Name: ClusterName
Value: !Ref ECSCluster
ComparisonOperator: GreaterThanThreshold
MetricName: MemoryReservation
ECSClusterScaleInPolicy:
Type: 'AWS::AutoScaling::ScalingPolicy'
Condition: AutoScaleNotDedicated
Properties:
AdjustmentType: ChangeInCapacity
AutoScalingGroupName: !Ref ECSClusterAutoScalingGroup
Cooldown: '120'
ScalingAdjustment: '-1'
ECSClusterScaleInAlarm:
Type: 'AWS::CloudWatch::Alarm'
Condition: AutoScaleNotDedicated
Properties:
EvaluationPeriods: '1'
Statistic: Average
Threshold: '45'
AlarmDescription: Scale down alarm when Memory Reservation <= 45% for 5 minutes
Period: '300'
AlarmActions:
- !Ref ECSClusterScaleInPolicy
Namespace: AWS/ECS
Dimensions:
- Name: ClusterName
Value: !Ref ECSCluster
ComparisonOperator: LessThanOrEqualToThreshold
MetricName: MemoryReservation
推荐阅读
- java - Java Switch 显示相同的数据
- html - Rotativa wkHTMLtoPDF 标头 html utf8
- c# - 在 C# 中从工作表 MS Excel 加载项开发中手动选择一个目标单元格
- powershell - 解锁锁定域用户的命令
- javascript - 在 Dynamics 365 中使用 Javascript 将自定义筛选器添加到使用链接实体的字段
- vuejs2 - 如何通过单击取消键关闭对话框?
- python-2.7 - 当单击 itemwidget 内的小部件时,Pyqt 获取 qlistwidget 项目
- css - Bookdown、Gitbook 风格的 TOC 风格变化
- spring-boot - 如何将 Spring Security OAuth2 与 Zuul 代理集成?
- .net - 兑换:在尝试获取服务器消息 ID 后,首次尝试在已发送项目上保存为失败