📖 Scenario: You are setting up a simple notification system using AWS Simple Notification Service (SNS). You want to create a topic and subscribe an email endpoint to it so that notifications can be sent to that email.
🎯 Goal: Create an SNS topic named MyTopic and subscribe an email address user@example.com to this topic.
📋 What You'll Learn
Create an SNS topic named MyTopic
Create a subscription for the topic with protocol email
Use the endpoint user@example.com for the subscription
💡 Why This Matters
🌍 Real World
SNS topics and subscriptions are used to send notifications to users or systems automatically when events happen, such as alerts, updates, or messages.
💼 Career
Understanding how to configure SNS topics and subscriptions is essential for cloud engineers and developers to build event-driven and notification systems in AWS.
Progress0 / 4 steps
1
Create the SNS topic
Create an SNS topic resource named MyTopic using AWS CloudFormation syntax.
AWS
Hint
Use AWS::SNS::Topic as the resource type and set TopicName to MyTopic.
2
Add the subscription configuration
Add a subscription property to the MyTopic resource with protocol email and endpoint user@example.com.
AWS
Hint
The Subscription property is a list of subscription objects. Add one with Protocol and Endpoint.
3
Add a topic policy to allow publishing
Add a TopicPolicy resource that allows anyone to publish messages to the MyTopic SNS topic.
AWS
Hint
Use AWS::SNS::TopicPolicy resource type and attach the policy to MyTopic.
4
Add Outputs for the topic ARN
Add an Outputs section with an output named TopicArn that exports the ARN of the MyTopic SNS topic.
AWS
Hint
Outputs section should export the topic ARN using !Ref MyTopic.
Practice
(1/5)
1. What is the main purpose of an SNS topic in AWS?
easy
A. To store files and documents securely
B. To act as a message hub where messages are sent and distributed
C. To run virtual servers in the cloud
D. To manage user permissions and access
Solution
Step 1: Understand SNS topic role
An SNS topic is like a message board where messages are posted for others to receive.
Step 2: Compare options to SNS function
Only To act as a message hub where messages are sent and distributed describes a message hub, which matches SNS topic's purpose.
Final Answer:
To act as a message hub where messages are sent and distributed -> Option B
Quick Check:
SNS topic = message hub [OK]
Hint: SNS topics distribute messages to subscribers [OK]
Common Mistakes:
Confusing SNS topics with storage services
Thinking SNS manages servers
Mixing SNS with user access control
2. Which of the following is the correct way to subscribe an email endpoint to an SNS topic using AWS CLI?
easy
A. aws sns subscribe --subscription-arn arn:aws:sns:us-east-1:123456789012:MyTopic --protocol email --notification-endpoint user@example.com
B. aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic --notification-endpoint user@example.com
C. aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic --protocol email --notification-endpoint user@example.com
D. aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic --protocol email --endpoint user@example.com
Solution
Step 1: Review AWS CLI subscribe syntax
The correct command uses 'aws sns subscribe' with '--topic-arn', '--protocol', and '--endpoint' parameters.
Step 2: Check option correctness
The correct command is 'aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic --protocol email --endpoint user@example.com'. Distractors use incorrect parameters like --notification-endpoint, miss --protocol, or use --subscription-arn.
C. The protocol should be 'https' instead of 'http'
D. The notification endpoint URL is missing a trailing slash
Solution
Step 1: Check protocol requirements for HTTP endpoints
AWS SNS requires HTTP endpoints to use HTTPS for security; HTTP URLs cause errors.
Step 2: Validate the given URL and protocol
The URL uses 'http://' which is not allowed; it must be 'https://'.
Final Answer:
The HTTP endpoint URL must use HTTPS, not HTTP -> Option A
Quick Check:
HTTP endpoints require HTTPS URL [OK]
Hint: Use HTTPS URLs for HTTP/HTTPS SNS subscriptions [OK]
Common Mistakes:
Assuming HTTP URLs are accepted
Thinking trailing slash matters
Confusing protocol parameter values
5. You want to send a notification to multiple endpoints: an email, an SMS number, and a Lambda function. How should you configure SNS to achieve this?
hard
A. Send messages directly to each endpoint without using SNS topics
B. Create separate SNS topics for each endpoint type and publish messages to all
C. Create one SNS topic and subscribe all three endpoints to it
D. Use only email and SMS subscriptions; Lambda cannot subscribe to SNS
Solution
Step 1: Understand SNS subscription flexibility
An SNS topic can have multiple subscriptions of different protocols (email, SMS, Lambda).
Step 2: Choose the simplest and best practice approach
Using one topic with multiple subscriptions is efficient and standard practice.
Final Answer:
Create one SNS topic and subscribe all three endpoints to it -> Option C
Quick Check:
One topic, multiple subscriptions = Create one SNS topic and subscribe all three endpoints to it [OK]
Hint: One SNS topic can have many different subscriptions [OK]
Common Mistakes:
Thinking Lambda cannot subscribe to SNS
Creating multiple topics unnecessarily
Sending messages directly without SNS
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.