규정된 임계값이 아닌 타겟 추적 정책을 만들고 싶었습니다.
결론
알람을 만들고 타겟 추적 정책에 연결할 수는 있지만 움직이지 않았습니다.
하고 싶었던 일
타겟 트래킹 정책은 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
이제 유연한 타겟 추적 정책을 사용할 수 있습니다! !
…
내부의 구조 때문에 꽤 모르겠지만, 자동 생성한 알람 이외라면 스케일링 정책이 움직여 주지 않는 것 같다.
만약 방법이 잘못되어 있든가 이렇게 하면 움직일거라든지 있으면, 꼭 가르쳐 주세요.
Reference
이 문제에 관하여(규정된 임계값이 아닌 타겟 추적 정책을 만들고 싶었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/re-sasaki/items/ae11062604a1b711bcf7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
타겟 트래킹 정책은 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
이제 유연한 타겟 추적 정책을 사용할 수 있습니다! !
…
내부의 구조 때문에 꽤 모르겠지만, 자동 생성한 알람 이외라면 스케일링 정책이 움직여 주지 않는 것 같다.
만약 방법이 잘못되어 있든가 이렇게 하면 움직일거라든지 있으면, 꼭 가르쳐 주세요.
Reference
이 문제에 관하여(규정된 임계값이 아닌 타겟 추적 정책을 만들고 싶었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/re-sasaki/items/ae11062604a1b711bcf7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
aws cloudwatch delete-alarms --alarm-names TargetTracking-xxxxxx-AlarmHigh-xxxxxxxxx
aws cloudwatch delete-alarms --alarm-names TargetTracking-xxxxxx-AlarmLow-xxxxxxxxx
Reference
이 문제에 관하여(규정된 임계값이 아닌 타겟 추적 정책을 만들고 싶었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/re-sasaki/items/ae11062604a1b711bcf7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)