규정된 임계값이 아닌 타겟 추적 정책을 만들고 싶었습니다.

결론



알람을 만들고 타겟 추적 정책에 연결할 수는 있지만 움직이지 않았습니다.

하고 싶었던 일



타겟 트래킹 정책은 CPU 평균 사용률과 평균 네트워크 입력의 임계값을 지정하는 것만으로 그것을 유지할 수 있는 대수로 스케일해준다.
예를 들어 CPU 평균 사용률을 30%로 유지한다는 정책이라면,
스케일 아웃 경보 임계값은3 分間 内の 3 データポイントに対する CPUUtilization (CPUUtilization) > 30스케일 인 알람 임계 값은15 分間 内の 15 データポイントに対する CPUUtilization (CPUUtilization) < 27된다.
다만, 이 3 分間 内の 3 データポイント , 15 分間 内の 15 データポイント 의 부분이 콘솔로부터는 변경 불가로 되어 있다.

타겟 추적 정책을 만든 다음 CloudWatchAlarm을 만들고 연결해 보려고 해도 콘솔이라면 정책이 표시되지 않습니다.

그래서, CLI라든가 CFn을 사용하면 어떻게든 할 수 있는 것이 아닌가? 라고 생각해, 해 보았다.

했던 일



CFn에서 타겟 추적 정책과 알람을 생성하고 연결하도록 템플릿을 작성했습니다.
  targetPolicy:
    Type: AWS::AutoScaling::ScalingPolicy
    Properties:
      AdjustmentType: ChangeInCapacity
      AutoScalingGroupName:
        Ref: autoScalingGroup
      Cooldown: "120"
      EstimatedInstanceWarmup: 120
      PolicyType: TargetTrackingScaling
      TargetTrackingConfiguration:
        DisableScaleIn: false
        PredefinedMetricSpecification:
          PredefinedMetricType: ASGAverageCPUUtilization
        TargetValue: 40.0
  scaleOutAlarm:
    Type: AWS::CloudWatch::Alarm
    Properties:
      ActionsEnabled: true
      AlarmActions:
        - Ref: targetPolicy
      AlarmDescription: String
      ComparisonOperator: GreaterThanThreshold
      DatapointsToAlarm: 2
      Dimensions:
        - Name: AutoScalingGroupName
          Value:
            Ref: autoScalingGroup
      EvaluationPeriods: 2
      MetricName: CPUUtilization
      Namespace: AWS/EC2
      Period: 60
      Statistic: Average
      Threshold: 25.0
      TreatMissingData: missing
      Unit: Percent
  scaleInAlarm:
    Type: AWS::CloudWatch::Alarm
    Properties:
      ActionsEnabled: true
      AlarmActions:
        - Ref: targetPolicy
      AlarmDescription: String
      ComparisonOperator: LessThanThreshold
      DatapointsToAlarm: 5
      Dimensions:
        - Name: AutoScalingGroupName
          Value:
            Ref: autoScalingGroup
      EvaluationPeriods: 5
      MetricName: CPUUtilization
      Namespace: AWS/EC2
      Period: 60
      Statistic: Average
      Threshold: 20.0
      TreatMissingData: missing
      Unit: Percent

실행하면, 이런 느낌으로 2종류의 알람이 생성되었다.


TragetTracking - 호두가 대상 추적 정책을 만들 때 자동으로 생성되는 경보입니다.
inra-ec2-호게호가, Type: AWS::CloudWatch::Alarm에서 자작한 알람.

자동 생성 알람도 자작 알람도, 이하와 같이 타겟 트래킹 정책을 발화할 수 있도록 설정되어 있다.


이대로라면 스케일 아웃, 스케일 인 각각 2개의 알람이 붙어 있기 때문에, 타겟 트래킹 정책이 자동으로 생성한 쪽의 알람을 삭제한다.
aws cloudwatch delete-alarms --alarm-names TargetTracking-xxxxxx-AlarmHigh-xxxxxxxxx
aws cloudwatch delete-alarms --alarm-names TargetTracking-xxxxxx-AlarmLow-xxxxxxxxx

이제 유연한 타겟 추적 정책을 사용할 수 있습니다! !




내부의 구조 때문에 꽤 모르겠지만, 자동 생성한 알람 이외라면 스케일링 정책이 움직여 주지 않는 것 같다.

만약 방법이 잘못되어 있든가 이렇게 하면 움직일거라든지 있으면, 꼭 가르쳐 주세요.

좋은 웹페이지 즐겨찾기