Bird
Raised Fist0
AWScloud~30 mins

Alarm actions (SNS, Auto Scaling) in AWS - Mini Project: Build & Apply

Choose your learning style10 modes available
Alarm actions (SNS, Auto Scaling)
📖 Scenario: You are managing a cloud environment where you want to monitor the CPU usage of your servers. When the CPU usage goes above a certain limit, you want to send a notification and also automatically add more servers to handle the load.
🎯 Goal: Create a CloudWatch alarm that monitors CPU usage. Configure it to send a notification to an SNS topic and trigger an Auto Scaling policy to add more servers when the alarm is triggered.
📋 What You'll Learn
Create a CloudWatch alarm named HighCPUAlarm that monitors CPUUtilization metric.
Create an SNS topic named HighCPUNotification.
Create an Auto Scaling policy named ScaleOutPolicy.
Configure the alarm to send notifications to the SNS topic and trigger the Auto Scaling policy.
💡 Why This Matters
🌍 Real World
This project simulates a common cloud scenario where automatic scaling and alerting help maintain application performance and availability.
💼 Career
Understanding how to configure alarms, notifications, and auto scaling is essential for cloud engineers and DevOps professionals to manage cloud infrastructure efficiently.
Progress0 / 4 steps
1
Create the SNS topic
Create an SNS topic named HighCPUNotification using AWS CloudFormation syntax.
AWS
Hint

Use AWS::SNS::Topic resource type and set TopicName to HighCPUNotification.

2
Create the Auto Scaling policy
Add an Auto Scaling policy named ScaleOutPolicy that increases the desired capacity by 1 when triggered.
AWS
Hint

Use AWS::AutoScaling::ScalingPolicy with ScalingAdjustment set to 1.

3
Create the CloudWatch alarm
Create a CloudWatch alarm named HighCPUAlarm that monitors the CPUUtilization metric of the Auto Scaling group. Set the threshold to 70 and evaluation periods to 2.
AWS
Hint

Use AWS::CloudWatch::Alarm with AlarmActions referencing the SNS topic and Auto Scaling policy.

4
Complete the Auto Scaling group reference
Add a resource named AutoScalingGroup of type AWS::AutoScaling::AutoScalingGroup with a minimal configuration including MinSize 1, MaxSize 3, and a placeholder LaunchConfigurationName set to MyLaunchConfig.
AWS
Hint

Use AWS::AutoScaling::AutoScalingGroup with MinSize, MaxSize, and LaunchConfigurationName.

Practice

(1/5)
1. What is the primary purpose of connecting an AWS CloudWatch alarm to an SNS topic?
easy
A. To create backups of alarm configurations
B. To send notifications when the alarm state changes
C. To store alarm history logs
D. To automatically scale EC2 instances

Solution

  1. Step 1: Understand SNS topic role

    SNS topics are used to send messages or notifications to subscribers.
  2. Step 2: Connect alarm to SNS for notifications

    When an alarm changes state, it can trigger SNS to notify users or systems.
  3. Final Answer:

    To send notifications when the alarm state changes -> Option B
  4. Quick Check:

    Alarm + SNS = Notifications [OK]
Hint: SNS topics send messages on alarm changes [OK]
Common Mistakes:
  • Confusing SNS with Auto Scaling actions
  • Thinking SNS stores logs
  • Assuming SNS creates backups
2. Which of the following is the correct way to specify an Auto Scaling action in a CloudWatch alarm configuration?
easy
A. { "AlarmActions": ["arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-name:policyName/policy-name"] }
B. AlarmActions: ["arn:aws:sns:region:account-id:topic-name"]
C. AlarmActions: ["arn:aws:lambda:region:account-id:function:function-name"]
D. AlarmActions: ["arn:aws:s3:::bucket-name"]

Solution

  1. Step 1: Identify correct ARN format for Auto Scaling policy

    Auto Scaling policy ARNs include 'autoscaling' and specify scalingPolicy and group name.
  2. Step 2: Match with given options

    { "AlarmActions": ["arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-name:policyName/policy-name"] } matches the correct ARN format for Auto Scaling alarm action.
  3. Final Answer:

    Correct Auto Scaling policy ARN format -> Option A
  4. Quick Check:

    Auto Scaling action uses autoscaling ARN [OK]
Hint: Auto Scaling ARNs contain 'autoscaling' keyword [OK]
Common Mistakes:
  • Using SNS ARN instead of Auto Scaling ARN
  • Confusing Lambda or S3 ARNs as alarm actions
  • Incorrect ARN structure
3. Given this CloudWatch alarm configuration snippet:
{
  "AlarmName": "HighCPU",
  "MetricName": "CPUUtilization",
  "Namespace": "AWS/EC2",
  "Threshold": 80,
  "ComparisonOperator": "GreaterThanThreshold",
  "EvaluationPeriods": 2,
  "AlarmActions": ["arn:aws:sns:us-east-1:123456789012:NotifyMe"]
}

What happens when the CPU utilization exceeds 80% for 2 evaluation periods?
medium
A. An SNS notification is sent to subscribers of the NotifyMe topic
B. The EC2 instance automatically scales up
C. The alarm resets without any action
D. A Lambda function is triggered

Solution

  1. Step 1: Analyze AlarmActions ARN

    The AlarmActions list contains an SNS topic ARN, meaning notifications are sent on alarm.
  2. Step 2: Understand alarm trigger

    When CPUUtilization > 80% for 2 periods, alarm state changes and triggers SNS notification.
  3. Final Answer:

    An SNS notification is sent to subscribers of the NotifyMe topic -> Option A
  4. Quick Check:

    Alarm with SNS ARN sends notifications [OK]
Hint: SNS ARN in AlarmActions means notification sent [OK]
Common Mistakes:
  • Assuming Auto Scaling happens without scaling policy
  • Thinking alarm resets silently
  • Confusing SNS with Lambda triggers
4. You configured a CloudWatch alarm to trigger an Auto Scaling policy, but the instances are not scaling when the alarm state changes. What is the most likely cause?
medium
A. The EC2 instances are stopped
B. The SNS topic subscription is missing
C. The alarm threshold is set too low
D. The alarm's AlarmActions does not include the correct Auto Scaling policy ARN

Solution

  1. Step 1: Check AlarmActions configuration

    If the Auto Scaling policy ARN is missing or incorrect, the alarm cannot trigger scaling.
  2. Step 2: Rule out other options

    SNS subscription missing affects notifications, not scaling. Threshold too low triggers alarm but no scaling if policy missing. Stopped instances do not scale but alarm triggers still need correct action.
  3. Final Answer:

    The alarm's AlarmActions does not include the correct Auto Scaling policy ARN -> Option D
  4. Quick Check:

    Correct Auto Scaling ARN needed in AlarmActions [OK]
Hint: Auto Scaling needs correct policy ARN in AlarmActions [OK]
Common Mistakes:
  • Confusing SNS subscription with scaling trigger
  • Ignoring ARN correctness
  • Assuming stopped instances auto scale
5. You want to automatically increase the number of EC2 instances when CPU usage is high and send a notification to your team. Which combination of alarm actions should you configure?
hard
A. Add only the Auto Scaling policy ARN to AlarmActions
B. Add only the SNS topic ARN to AlarmActions
C. Add both the Auto Scaling policy ARN and the SNS topic ARN to the alarm's AlarmActions
D. Create two separate alarms, one for scaling and one for notifications

Solution

  1. Step 1: Understand alarm actions for scaling and notifications

    To scale automatically, the alarm must trigger the Auto Scaling policy. To notify, it must trigger the SNS topic.
  2. Step 2: Combine both actions in one alarm

    Adding both ARNs in AlarmActions ensures the alarm triggers scaling and sends notifications simultaneously.
  3. Final Answer:

    Add both the Auto Scaling policy ARN and the SNS topic ARN to the alarm's AlarmActions -> Option C
  4. Quick Check:

    Multiple AlarmActions allow scaling + notifications [OK]
Hint: Use both Auto Scaling and SNS ARNs in AlarmActions [OK]
Common Mistakes:
  • Thinking one ARN can do both scaling and notifications
  • Creating multiple alarms unnecessarily
  • Missing one of the required ARNs
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard