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.)
UPDATE:
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?