Как добавить политику масштабирования в группу автоматического масштабирования с помощью Cloud Formation или AWS CLI - PullRequest
0 голосов
/ 13 сентября 2018

Как добавить политику масштабирования в группу автоматического масштабирования, новую или существующую, используя Cloud Formation или AWS CLI

1 Ответ

0 голосов
/ 15 сентября 2018

Существуют важные примеры этого, но ниже приведен фрагмент одного из моих существующих шаблонов формирования облаков.

1) Параметры Вы должны принять минимальное и максимальное значения в качестве параметра

2) Сама группа автомасштабирования Я включу ее ниже, но если выне хотел включать его, вы могли бы принять его в качестве параметра.Вы также можете использовать условие, которое будет использовать существующий параметр в качестве условия, чтобы определить, следует ли создавать ASG.Обратите внимание, что если вы используете условие, вы также будете использовать это условие на всех ссылках с оператором in (чтобы определить, используется ли локальная ASG в шаблоне или параметре).

3) Аварийные сигналы Это ключевой элемент группы автоматического масштабирования - определение сигналов тревоги.Я использую резервирование памяти кластера, но я бы сказал, что процессор является наиболее распространенным.Вы можете использовать любые метрические мониторы облачных часов и даже пользовательские метрики.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...