Today I created an AutoScaling Group with several policies, each with an Alarm associated with a CloudWatch metric. The AutoScaling Group launched two instances, because that the minimum that I required for that group. I turned on my benchmarking tests to hit the new group and their combine average CPUUtilization rose above the thresholds that I had set for the Alarms. I watched the History for each of those Alarms as the states changed from INSUFFICIENT_DATA, then to OK, then finally to ALARM. As expected. Then I waited for the Policies to be executed. The specified 300 seconds before execution came and went. Then I decided to see how long it would take before the Policies executed. It has now been over an hour and a half and those Policies have yet to execute.
I got frustrated and deleted the ASG and all the Policies and Alarms. I decided that perhaps I had made an error in creating the Policies and Alarms. So I recreated them all. Same problem. The Alarms are in ALARM state and never execute the Policies. I can execute the Policies manually without problem, but that defeats the point.
If it makes any difference, I created all these things in the AWS Console. In the past I have used the API to create ASGs and Policies and those groups execute policies just fine.
Is there something I am doing wrong? (Or perhaps AWS services are just having issues.)
Tried this again today. Decided to use the API instead of the Console to see if there was any difference. The Alarm I am using just updated from OK to ALARM 20 minutes ago.
CPUUtilization >= 35 for 5 minutes Actions: In ALARM: For group TEST use policy Scale Out API (Add 1 instance) Namespace: AWS/EC2 Metric Name: CPUUtilization Dimensions: AutoScalingGroupName = TEST Statistic: Average Period: 5 minutes
2013-12-19 15:13 UTC-7 - State update - Alarm updated from OK to ALARM
Current time: 15:43 UTC-7 (30 minutes since alarm)
Action has not triggered. Any idea why?