2016-02-20 9 views
5

Obecnie używam dwóch polityk skalowania, które są dołączone do mojej grupy automatycznego skalowania: Skalowanie w dół Auto Skalowanie Group w AWS powoduje wieczystego alarm

  1. Skala się polityki, która jest wywoływana, gdy alarm CloudWatch jest wywoływany . Ten alarm CloudWatch używa metryki CPUUtilization i uruchamia procesor ponad 80%.
  2. Drugą jest polityka zmniejszania skali, która jest wywoływana, gdy wywoływany jest inny alarm CloudWatch. Ten alarm CloudWatch używa metryki CPUUtilization i uruchamia się, gdy procesor ma mniej niż 50%.

Efektem ubocznym tego podejścia jest to, że gdy moje instancje ASG są bezczynne (całkowicie zmniejszone, żadne przetwarzanie nie występuje) mój ASG jest w stanie alarmu.

Czy istnieje sposób, aby ustawić to inaczej, aby mój ASG nie był w stanie ciągłego alarmu?

Poniżej znajduje się segment tych alarmów z mojego szablonu CloudFormation:

"ScaleUpPolicy" : { 
    "Type" : "AWS::AutoScaling::ScalingPolicy", 
    "Properties" : { 
    "AdjustmentType" : "ChangeInCapacity", 
    "AutoScalingGroupName" : { "Ref" : "WebApplicationASG" }, 
    "Cooldown" : "1", 
    "ScalingAdjustment" : "1" 
    } 
}, 
"CPUAlarmHigh": { 
    "Type": "AWS::CloudWatch::Alarm", 
    "Properties": { 
    "EvaluationPeriods": "1", 
    "Statistic": "Average", 
    "Threshold": "80", 
    "AlarmDescription": "Alarm if CPU too high or metric disappears indicating instance is down", 
    "Period": "60", 
    "AlarmActions": [ { "Ref": "ScaleUpPolicy" } ], 
    "Namespace": "AWS/EC2", 
    "Dimensions": [ { 
     "Name": "AutoScalingGroupName", 
     "Value": { "Ref": "WebApplicationASG" } 
    } ], 
    "ComparisonOperator": "GreaterThanThreshold", 
    "MetricName": "CPUUtilization" 
    } 
}, 
"ScaleDownPolicy" : { 
    "Type" : "AWS::AutoScaling::ScalingPolicy", 
    "Properties" : { 
    "AdjustmentType" : "ChangeInCapacity", 
    "AutoScalingGroupName" : { "Ref" : "WebApplicationASG" }, 
    "Cooldown" : "1", 
    "ScalingAdjustment" : "-1" 
    } 
}, 
"CPUAlarmLow": { 
    "Type": "AWS::CloudWatch::Alarm", 
    "Properties": { 
    "EvaluationPeriods": "1", 
    "Statistic": "Average", 
    "Threshold": "50", 
    "AlarmDescription": "Alarm if CPU is low, causing scale down", 
    "Period": "60", 
    "AlarmActions": [ { "Ref": "ScaleDownPolicy" } ], 
    "Namespace": "AWS/EC2", 
    "Dimensions": [ { 
     "Name": "AutoScalingGroupName", 
     "Value": { "Ref": "WebApplicationASG" } 
    } ], 
    "ComparisonOperator": "LessThanThreshold", 
    "MetricName": "CPUUtilization" 
    } 
}, 
+0

Ten "problem" też mi przeszkadza. Nie znalazłem jeszcze rozwiązania. Na forum aws znajduje się wątek: https://forums.aws.amazon.com/thread.jspa?threadID=175650 – Tom

Odpowiedz

3

Jest to normalne i oczekiwane zachowanie.

Posiadanie metryki w stanie alarmu nie jest problemem - pamiętaj, że jest to zmiana stanu alarmu, który wyzwala zdarzenia. Tak więc prawdopodobnie po tym, jak twój wyzwalacz zwiększania skali przejdzie w stan alarmu, zmniejszona waga wyjdzie z alarmu. Następnie, gdy pomiar spadnie, wraca do stanu alarmowego i wywoływane jest zdarzenie zmniejszania skali.

+3

Chociaż jest to normalne zachowanie, tak naprawdę nie odpowiada na pytanie. Kiedy widzę RED na moim panelu CLoudWatch, powinno to oznaczać, że jest problem, a nie, że wszystko jest w porządku. A przynajmniej tego chciałbym od CloudWatch. –

+0

@ CyrilDuchon-Doris: zawsze możesz umieścić żądanie funkcji w zespole CloudWatch. Naprawdę nie ma innej łatwej odpowiedzi na to pytanie. – chris