Build Scalable Alarm Notification System for On-Call Teams | AWS DevOps Engineer Exam Answer

Implementing a Solution for Notifying On-Call Teams via Email

Prev Question Next Question

Question

Your company has multiple applications running on AWS.

Your company wants to develop an application that notifies on-call teams immediately via email when an alarm is triggered in your environment.

You have multiple on-call teams that work in different shifts, and the application should handle notifying the correct teams at the correct time.

How should you implement this solution?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Answer - D.

Option D fulfills all the requirements.

1)First is to create an SNS topic for each group so that the required members get the email addresses.

2)Ensure the application uses the HTTPS endpoint and the SDK to publish messages.

Option A is invalid because the SQS service is not required.

Options B and C are incorrect.

As per the requirement, we need to notify only those on-call teams who are working in that particular shift when an alarm is triggered.

It need not to send that to all the on-call teams of the company.

With Option B & C, since we are not configuring the SNS topic for each on call team, the notifications will be sent to all the on-call teams.

Hence these 2 options are invalid.

For more information on setting up notifications, please refer to the below document link: from AWS.

http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html

The best solution for this scenario would be to use Amazon SNS (Simple Notification Service) and CloudWatch. Amazon SNS is a web service that enables the creation of topic-based messaging systems, while CloudWatch provides monitoring for AWS resources and the applications that run on them. Here are the steps to implement this solution:

Option A:

  1. Create an Amazon SNS topic: This topic will serve as the hub for all notifications.
  2. Create an Amazon SQS queue: This queue will act as a subscriber to the SNS topic.
  3. Configure CloudWatch alarms: Create CloudWatch alarms to monitor the environment and notify the SNS topic when an alarm is triggered.
  4. Configure the Amazon SQS queue as a subscriber to the Amazon SNS topic: This step ensures that the SNS topic sends notifications to the SQS queue.
  5. Create an Amazon EC2 Auto Scaling group: The group will scale up to spawn worker nodes when messages are added to the queue.
  6. Use Amazon Simple Email Service: This service will be used to send messages to your on-call teams.

Option B:

  1. Create an Amazon SNS topic: This topic will serve as the hub for all notifications.
  2. Configure your on-call team email addresses as subscribers to the SNS topic: This step ensures that the SNS topic sends notifications to the correct email addresses.
  3. Use the AWS SDK tools to integrate your application with Amazon SNS: This step enables your application to send messages to the SNS topic when an alarm is triggered.

Option C:

  1. Create an Amazon SNS topic: This topic will serve as the hub for all notifications.
  2. Configure your on-call team email addresses as subscribers to the SNS topic: This step ensures that the SNS topic sends notifications to the correct email addresses.
  3. Create a secondary Amazon SNS topic for alarms: This topic will receive notifications when CloudWatch alarms are triggered.
  4. Configure your CloudWatch alarms to notify this topic when triggered: This step ensures that the SNS topic sends notifications to the secondary SNS topic.
  5. Create an HTTP subscriber to this topic: This step enables your application to receive notifications via HTTP POST when an alarm is triggered.
  6. Use the AWS SDK tools to integrate your application with Amazon SNS: This step enables your application to send messages to the primary SNS topic when an alarm is triggered.

Option D:

  1. Create an Amazon SNS topic for each on-call group: Each topic will serve as the hub for notifications for a specific on-call group.
  2. Configure each of these with the team member emails as subscribers: This step ensures that the SNS topics send notifications to the correct email addresses.
  3. Create another Amazon SNS topic: This topic will receive notifications when CloudWatch alarms are triggered.
  4. Configure your CloudWatch alarms to notify this topic when triggered: This step ensures that the SNS topic sends notifications to the secondary SNS topic.
  5. Create an HTTP subscriber to this topic: This step enables your application to receive notifications via HTTP POST when an alarm is triggered.
  6. Use the AWS SDK tools to integrate your application with Amazon SNS: This step enables your application to send messages to the correct on-call team topic when an alarm is triggered.

In conclusion, the most suitable solution for this scenario would be Option A as it provides a simple and reliable solution by using SNS and SQS services with EC2 auto-scaling group and SES for email notification. Option B also works well but it involves configuring the application with AWS SDK tools. Option C and D both have additional layers of complexity with multiple SNS topics and HTTP subscribers.