Bird
Raised Fist0
AWScloud~20 mins

SNS topics and subscriptions in AWS - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
SNS Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ service_behavior
intermediate
2:00remaining
SNS Topic Message Delivery Behavior

You have an SNS topic with multiple email subscriptions. If a message is published to the topic, what happens to the message delivery?

AThe message is stored in the topic and must be pulled by each subscriber.
BThe message is sent to only one randomly selected email subscription.
CThe message is sent to the first subscription created and ignored for others.
DThe message is sent to all subscribed email endpoints simultaneously.
Attempts:
2 left
💡 Hint

Think about how SNS fan-out messaging works.

❓ Configuration
intermediate
2:00remaining
SNS Subscription Protocols

Which of the following is NOT a valid protocol for an SNS subscription?

Aftp
Bsms
Cemail
Dhttps
Attempts:
2 left
💡 Hint

Consider common protocols supported by SNS for message delivery.

❓ security
advanced
2:00remaining
Restricting SNS Topic Access

You want to restrict who can publish messages to your SNS topic. Which AWS feature should you use to enforce this?

ASNS Subscription Filter Policy
BVPC Security Group attached to the SNS topic
CSNS Topic Policy with specific IAM conditions
DAWS WAF attached to the SNS topic
Attempts:
2 left
💡 Hint

Think about how AWS controls permissions on SNS topics.

❓ Architecture
advanced
2:00remaining
Designing Reliable SNS to SQS Integration

You have an SNS topic that sends messages to multiple SQS queues. How can you ensure that no messages are lost if one SQS queue is temporarily unavailable?

AEnable dead-letter queues (DLQ) on the SQS queues to capture undelivered messages.
BConfigure SNS to retry sending messages indefinitely until the SQS queue is available.
CUse SNS FIFO topics to guarantee message delivery to all SQS queues.
DSet the SQS queue visibility timeout to zero.
Attempts:
2 left
💡 Hint

Consider how to handle message failures in SQS subscriptions.

✅ Best Practice
expert
2:00remaining
Optimizing SNS Topic for High Throughput

You expect a very high volume of messages published to an SNS topic. Which approach best optimizes throughput and scalability?

APublish messages synchronously to SNS to ensure delivery speed.
BUse multiple SNS topics partitioned by message type and aggregate downstream.
CUse SNS FIFO topics to maintain order and increase throughput.
DUse a single SNS topic with a large number of subscriptions to distribute load.
Attempts:
2 left
💡 Hint

Think about how to scale SNS topics horizontally.

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

  1. Step 1: Understand SNS topic role

    An SNS topic is like a message board where messages are posted for others to receive.
  2. 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.
  3. Final Answer:

    To act as a message hub where messages are sent and distributed -> Option B
  4. 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

  1. Step 1: Review AWS CLI subscribe syntax

    The correct command uses 'aws sns subscribe' with '--topic-arn', '--protocol', and '--endpoint' parameters.
  2. 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.
  3. Final Answer:

    aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic --protocol email --endpoint user@example.com -> Option D
  4. Quick Check:

    Correct CLI syntax = aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic --protocol email --endpoint user@example.com [OK]
Hint: Use --protocol and --endpoint with aws sns subscribe [OK]
Common Mistakes:
  • Using wrong parameter names like --notification-endpoint instead of --endpoint
  • Missing the --protocol flag
  • Confusing topic ARN with subscription ARN
3. Given this Python code using boto3, what will be the output if the subscription is successful?
import boto3
sns = boto3.client('sns')
response = sns.subscribe(
    TopicArn='arn:aws:sns:us-east-1:123456789012:MyTopic',
    Protocol='email',
    Endpoint='user@example.com'
)
print(response['SubscriptionArn'])
medium
A. 'pending confirmation' string indicating subscription needs confirmation
B. An error message about missing permissions
C. The ARN of the SNS topic
D. The ARN of the new subscription if confirmed

Solution

  1. Step 1: Understand SNS email subscription behavior

    Email subscriptions require the user to confirm by clicking a link. Until then, the SubscriptionArn is 'pending confirmation'.
  2. Step 2: Analyze the printed output

    The code prints response['SubscriptionArn'], which will be 'pending confirmation' until user confirms.
  3. Final Answer:

    'pending confirmation' string indicating subscription needs confirmation -> Option A
  4. Quick Check:

    Email subscription = pending confirmation [OK]
Hint: Email subscriptions show 'pending confirmation' until user confirms [OK]
Common Mistakes:
  • Expecting immediate subscription ARN without confirmation
  • Confusing topic ARN with subscription ARN
  • Assuming no confirmation needed for email protocol
4. You wrote this AWS CLI command to subscribe an HTTP endpoint but get an error:
aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic --protocol http --notification-endpoint http://example.com/notify
What is the most likely cause of the error?
medium
A. The HTTP endpoint URL must use HTTPS, not HTTP
B. The topic ARN is invalid
C. The protocol should be 'https' instead of 'http'
D. The notification endpoint URL is missing a trailing slash

Solution

  1. Step 1: Check protocol requirements for HTTP endpoints

    AWS SNS requires HTTP endpoints to use HTTPS for security; HTTP URLs cause errors.
  2. Step 2: Validate the given URL and protocol

    The URL uses 'http://' which is not allowed; it must be 'https://'.
  3. Final Answer:

    The HTTP endpoint URL must use HTTPS, not HTTP -> Option A
  4. 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

  1. Step 1: Understand SNS subscription flexibility

    An SNS topic can have multiple subscriptions of different protocols (email, SMS, Lambda).
  2. Step 2: Choose the simplest and best practice approach

    Using one topic with multiple subscriptions is efficient and standard practice.
  3. Final Answer:

    Create one SNS topic and subscribe all three endpoints to it -> Option C
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard