AWS core servicesIntegration and monitoringStorage and messagingBeginner22 min read

What Does SNS Mean?

Reviewed byJohnson Ajibi· Senior Network & Security Engineer · MSc IT Security
On This Page

Quick Definition

SNS is a tool from Amazon Web Services that lets you send alerts and messages to lots of people or systems at the same time. Think of it like a group text: you send one message, and it goes to everyone on the list. You can reach email addresses, phone numbers, or even other applications. It’s used to notify teams when something important happens in the cloud.

Commonly Confused With

SNSvsAmazon SQS (Simple Queue Service)

SQS is a message queue service that stores messages and allows consumers to poll for them. SNS is a pub/sub service that pushes messages to subscribers. SQS is pull-based; SNS is push-based. Also, SNS supports multiple subscriber protocols, while SQS only stores messages for one consumer (though many can poll).

If you have a single background worker that processes orders, use SQS to queue the orders. If you need to send an SMS, email, and a notification to a Slack webhook whenever an order is placed, use SNS.

SNSvsAmazon SES (Simple Email Service)

SES is designed specifically for sending email at scale, with features for deliverability, reputation, and bounce handling. SNS can send email notifications, but lacks sophisticated email management features. SES is better for transactional and marketing emails; SNS is better for system alerts and multi-protocol fan-out.

Use SES to send a weekly newsletter to thousands of customers. Use SNS to notify your operations team that a server is down via email, SMS, and a WebSocket endpoint.

SNSvsAmazon EventBridge

EventBridge is an event bus service that connects applications using events. It provides schema discovery, filtering, and transformation, and can route events to many targets including SNS, SQS, and Lambda. SNS is a simpler, older pub/sub service. EventBridge is more powerful for complex event-driven architectures and supports custom event buses.

Use SNS for simple notifications like CloudWatch alarm alerts. Use EventBridge when you need to build a detailed event-driven system where events from multiple sources are filtered, transformed, and routed to different destinations based on rules.

Must Know for Exams

SNS is a core AWS service and appears in multiple certification exams, especially the foundational and associate levels. For the AWS Certified Cloud Practitioner (CLF-C02), you need to understand SNS as a fundamental messaging service. Questions will typically ask you to identify the right service for a given scenario-for example, “Which AWS service should you use to send a text message alert to an administrator when CPU utilization exceeds 80%?” The correct answer is SNS (often paired with CloudWatch Alarms). Cloud Practitioner questions are scenario-based and test your ability to distinguish between SNS, SQS, SES, and EventBridge.

For the AWS Certified Developer Associate (DVA-C02), SNS appears more deeply. Developers need to know how to integrate SNS with Lambda, SQS, and mobile push. You may be asked about message filtering, fan-out patterns, or how to set up a dead-letter queue for failed deliveries. There can be questions on the differences between standard and FIFO topics, especially regarding message ordering and deduplication. You should also understand the concept of subscription confirmation for HTTP/HTTPS endpoints.

For the AWS Solutions Architect Associate (SAA-C03), SNS is often part of larger architecture questions. You might be asked to design a decoupled system where SNS fans out messages to multiple SQS queues, each processed by a different microservice. Or a question about building a notification system for CloudWatch alarms. Architects need to understand how to secure SNS with IAM and topic policies, how to set up cross-account access, and how to choose between standard and FIFO topics based on requirements.

In all three exams, common question types include: selecting the correct service for a given use case, understanding the difference between push (SNS) and pull (SQS), and recognizing that SNS supports multiple protocols. Be aware of traps: SNS does not store messages for long periods-it immediately pushes them. If a subscriber is unavailable, the message is retried a few times then discarded (unless a DLQ is configured). Also, SNS cannot send messages directly to an HTTP endpoint without a subscription confirmation. Know the default retry policy: three retries for HTTP/HTTPS, with exponential backoff. Memorize that SNS topics are regional, but you can send to endpoints in other regions by specifying the endpoint URL.

Simple Meaning

Imagine you’re the manager of a large apartment building. One day, the water is going to be shut off for maintenance. Instead of knocking on every single door to tell each person, you could send one email to everyone on a mailing list. That’s basically what Amazon SNS does, but for computer systems and applications.

SNS is short for Simple Notification Service, and it runs on Amazon Web Services. It lets you send one message to many different receivers. Those receivers can be people (via email or SMS) or applications (via HTTP/HTTPS endpoints or other AWS services). SNS uses a system of topics and subscriptions. A topic is like a channel or a megaphone. You create a topic for a specific purpose, for example “application alerts.” Then you subscribe different endpoints to that topic-such as your personal email, a developer’s phone number, and a logging service. Whenever a message is published to that topic, SNS copies the message and delivers it to every subscriber.

The best part is that SNS is fully managed by AWS. You don’t have to set up servers or worry about delivering messages to thousands of subscribers. It handles retries, message filtering, and even message durability. For learners just starting with AWS, it is often the first service they use to connect different pieces of a cloud architecture, because it is simple to set up yet extremely powerful. It acts like a central announcement board for your entire cloud infrastructure.

Full Technical Definition

Amazon Simple Notification Service (SNS) is a fully managed pub/sub (publish/subscribe) messaging service provided by AWS. It enables the delivery of messages from publishers-applications or services that generate events-to subscribers, which are endpoints or other services that consume those events. SNS supports multiple delivery protocols, including HTTP/HTTPS, email (both plain text and JSON), SMS (text messages) to mobile devices, and direct integration with other AWS services such as Amazon Simple Queue Service (SQS), AWS Lambda, and Amazon Kinesis Data Firehose.

At its core, SNS uses the concept of topics. A topic is a logical access point or communication channel that groups together a set of subscribers. Publishers send messages to a topic, and SNS immediately forwards each message to every subscriber of that topic. This fan-out pattern is what makes SNS ideal for broadcasting notifications, alerts, and event-driven processing. SNS supports fixed message size up to 256 KB and provides message durability by storing messages across multiple Availability Zones within a region. It also offers message filtering, where subscribers can set a filter policy (in JSON) so they only receive messages that match certain attributes, reducing unnecessary traffic.

SNS messages can be published in two main ways: through the AWS Management Console, AWS CLI, SDKs, or via direct integrations with other AWS services like CloudWatch Alarms or S3 event notifications. Protocols supported include:

HTTP/HTTPS: SNS sends POST requests to the specified endpoint. The endpoint must return a 200 OK to acknowledge receipt; otherwise SNS retries up to a set number of times (default 3).

Email/Email-JSON: SNS sends an email message to the subscriber. Email-JSON includes the message as a JSON object.

SMS: Delivers text messages to mobile phones. AWS regulates SMS sending to prevent spam, with optional monthly spending limits and dedicated origination IDs.

AWS Lambda: SNS can invoke a Lambda function synchronously, passing the message as the event payload.

Amazon SQS: SNS delivers messages directly to an SQS queue, enabling decoupled asynchronous processing.

Platform Application Endpoints: Used for mobile push notifications via Apple APNs, Google FCM, and others.

SNS also supports message attributes (structured metadata) and message grouping via message group IDs for FIFO topics. FIFO (First-In-First-Out) topics guarantee strict message ordering and exactly-once processing, but require a message group ID and deduplication. Standard topics offer at-least-once delivery and best-effort ordering.

In real IT implementations, SNS is often used for alerting from monitoring tools, sending password reset emails, broadcasting system events, and fanning out messages to multiple microservices. It integrates with AWS CloudTrail for auditing and with AWS KMS for encryption at rest. SNS is a regional service, meaning topics are scoped to a specific AWS region, but you can publish cross-region by using an HTTP endpoint in another region. Billing is based on the number of messages published, the number of delivery attempts, and additional costs for SMS and mobile push.

Real-Life Example

Think about a school’s emergency alert system. The principal needs to inform all teachers, parents, and staff about a sudden early dismissal due to a snowstorm. Instead of calling each person individually, the principal uses one central announcement system: the school’s intercom and a mass text/email service. The principal speaks once into the intercom (publishes a message), and every classroom’s speaker (subscriber) broadcasts it simultaneously. Similarly, the school office sends one text message, and every parent on the list receives it.

In this analogy, the principal is the publisher, and the intercom channel is the SNS topic. Each classroom speaker is a subscriber-they all listen to the same channel. The text message system is another delivery protocol (SMS). If a teacher wants only to hear about snow-day announcements and not about lost-and-found reminders, they could set a filter on their phone (message filtering) to only allow messages tagged with “emergency.”

Now map this to AWS: Imagine a web application that processes user uploads. When a user uploads a photo, the application needs to trigger several actions: send a confirmation email to the user, create a thumbnail, log the event, and start a virus scan. The application can publish a single message to an “upload-complete” SNS topic. Subscribed to that topic are an email endpoint (sends confirmation), a Lambda function (creates thumbnail), an SQS queue (for logging), and another Lambda function (starts virus scan). SNS fans out the message instantly to all four, without the application needing to know each subscriber’s details. This is the power of SNS-decoupling the publisher from the subscribers, simplifying architecture, and enabling asynchronous, scalable workflows.

Why This Term Matters

SNS matters because it provides a simple, reliable way to connect different parts of a cloud system without writing complex code. In real-world IT, you often need to alert operations teams when a server goes down, send a welcome email to a new user, or update multiple microservices about a change. Without a service like SNS, you would have to build your own notification system, implement retry logic, manage queues, and handle scaling. That is time-consuming and error-prone.

SNS is fully managed, meaning AWS takes care of the underlying infrastructure. It scales automatically to handle millions of messages per day. It also offers high availability and fault tolerance by replicating data across multiple Availability Zones. For IT professionals, this means you can focus on business logic rather than plumbing. SNS also integrates deeply with other AWS services like CloudWatch, SQS, and Lambda, making it a linchpin in modern event-driven architectures.

Security is another critical factor. SNS supports encryption at rest using AWS KMS, encryption in transit using HTTPS, and access control through IAM policies and topic policies. You can restrict who can publish or subscribe to a topic, and even require a subscription confirmation (for HTTP/HTTPS and email) to prevent unauthorized subscriptions. This is crucial for compliance in regulated industries.

For developers, SNS reduces latency because it is a push-based system-messages are sent immediately as soon as they are published. There is no polling needed. For architects, SNS enables decoupling, which makes systems more resilient and easier to maintain. If one subscriber is slow or fails, SNS will retry or the message can be routed to a dead-letter queue (DLQ) in SQS, preventing system-wide impact. Overall, SNS is an essential tool for building scalable, responsive, and maintainable cloud applications.

How It Appears in Exam Questions

Exam questions about SNS are usually scenario-based. A typical pattern: “A company wants to send an SMS alert to an operations team when an EC2 instance’s status check fails. Which combination of AWS services should they use?” The answer: CloudWatch Alarm publishing to an SNS topic with an SMS subscription. Another pattern: “An application publishes messages to an SNS topic. The topic has two subscribers: an SQS queue and a Lambda function. The Lambda function processes messages but sometimes fails. What should be configured to prevent loss of unprocessed messages?” Answer: Add a dead-letter queue (DLQ) to the Lambda function’s event source mapping or to the SNS subscription.

Configuration questions may ask you to identify the correct steps to set up cross-account access to an SNS topic. For example, “A developer in Account A wants to subscribe an SQS queue in Account B to an SNS topic in Account A. What must be configured?” The answer involves both an IAM policy on the SQS queue allowing the SNS service to send messages, and an SNS topic policy allowing the Account B subscriber. Questions on message filtering might ask: “An SNS topic receives messages with attributes like ‘region’ and ‘severity’. A subscriber should only receive messages where region=‘us-east-1’. How can this be achieved?” Answer: Set a subscription filter policy with a JSON condition.

Troubleshooting-style questions are common: “A developer publishes a message to an SNS topic with an HTTP subscription. The message is not received. The endpoint logs show no incoming requests. What is the most likely cause?” Possible answers: The subscription has not been confirmed (the HTTP endpoint must return a 200 OK to the initial subscription confirmation request). Or the endpoint is not returning 200 OK on message delivery. Or the topic policy does not allow the publisher. Another trap: “An SNS topic has an email subscription but the subscriber is not receiving emails. What should be checked first?” Look for the subscription confirmation email that must be accepted before messages flow.

Know that SNS is push-based, so if a subscriber is down, retries happen quickly (three attempts within minutes). If retries fail, the message is lost unless a DLQ is attached. Also, remember that SNS cannot send messages to a phone number without first confirming the SMS endpoint if using a US origination ID (not always needed for standard SMS, but good to know). Finally, exam questions may test the difference between SNS (push, fan-out) and SQS (pull, point-to-point) and Amazon Simple Email Service (SES) which is for sending transactional and marketing emails at scale, not notifications.

Practise SNS Questions

Test your understanding with exam-style practice questions.

Practise

Example Scenario

You are a cloud developer working for an e-commerce company. The company has a website where customers upload product reviews. Each time a review is uploaded, the system must perform three actions: send an email confirmation to the customer, add the review to a moderation queue, and update a search index. Your manager asks you to design a solution that is scalable and decoupled.

You decide to use Amazon SNS. You create an SNS topic called “new-review”. Then you create three subscriptions:

1. An email subscription to the review-confirmation@company.com address. SNS sends a confirmation email to that address; the recipient must click the link to confirm.

2. An SQS queue subscription for the moderation service. The moderation service will poll the queue and process reviews.

3. A Lambda function subscription that updates the search index. SNS will invoke the Lambda function directly with the review payload.

You also configure message filtering. For the email subscription, you set a filter policy so that only messages with attribute “language=English” are sent to email (non-English reviews are handled differently). For the SQS queue and Lambda, no filter is applied-they get all messages.

When a customer submits a review, your web application publishes a JSON message to the “new-review” topic containing the review text, the customer email, and attributes like “language” and “rating”. SNS immediately fans out the message: the moderation queue receives the review, the Lambda function updates the search index, and if the language is English, an email is sent to the customer. This design handles spikes in traffic because SQS buffers the messages for the moderation service if it gets busy. The Lambda function scales automatically. You have successfully built a fan-out notification system using SNS, demonstrating its core value: one message, many actions, without tight coupling.

Common Mistakes

Thinking SNS can store messages for days if no subscriber picks them up.

SNS is a push-based service; it does not store messages for later retrieval. If a subscriber is unavailable, SNS makes a few retry attempts (default 3 for HTTP/HTTPS) within a few minutes, then discards the message unless a dead-letter queue is configured.

If you need message persistence and decoupled consumption, use SQS instead of or in addition to SNS. SNS should be used for immediate push notifications, not for long-term message storage.

Assuming that an HTTP/HTTPS subscriber starts receiving messages without confirming the subscription.

For HTTP/HTTPS endpoints, SNS sends a subscription confirmation request first. The endpoint must return a 200 OK with the token from the confirmation URL. Until the subscription is confirmed, no messages are delivered.

Always implement the subscription confirmation handler on your HTTP endpoint. Verify that the endpoint can read the incoming SNS confirmation request and respond appropriately.

Choosing SNS over SQS for point-to-point decoupling where the consumer needs to poll messages at its own pace.

SNS pushes messages immediately to all subscribers. If the consumer is not ready, messages are lost after retries. SQS allows the consumer to pull messages when it is ready and can store messages for up to 14 days.

Use SNS for broadcast (fan-out) to multiple consumers, and use SQS when you need reliable, asynchronous processing with polling.

Confusing SNS with Amazon Simple Email Service (SES) for sending transactional emails.

SES is specifically designed for sending high-volume email (transactional, marketing) with features like reputation monitoring and dedicated IPs. SNS can send email notifications, but it is not optimized for email deliverability at scale.

For application-generated emails such as password resets, order confirmations, use SES. Use SNS for system alerts, monitoring notifications, and fan-out messages to multiple protocols.

Expecting SNS to deliver messages in strict order for standard topics.

Standard SNS topics offer best-effort ordering; messages may be delivered out of order in rare cases. Only FIFO topics guarantee exactly-once delivery and strict ordering, but they have limitations like lower throughput.

If your use case requires strict message ordering, use a FIFO topic. For most scenarios (alerts, notifications), best-effort ordering is acceptable.

Exam Trap — Don't Get Fooled

{"trap":"Using SNS to send a message to an SQS queue in a different AWS region without additional configuration.","why_learners_choose_it":"Learners see that SNS can send to HTTP endpoints and assume cross-region delivery is automatic for SQS queues because both are AWS services. They might think SNS can directly send to an SQS queue in another region like it does within the same region."

,"how_to_avoid_it":"Remember that SNS and SQS are regional services. A cross-region SQS subscription requires you to create an SQS queue in the same region as the SNS topic, then use a Lambda function or an HTTP endpoint in the other region to forward the messages. Alternatively, you can configure an SNS topic in each region and use a cross-region Lambda function to republish.

Direct SNS-to-SQS subscriptions only work within the same region."

Step-by-Step Breakdown

1

Create an SNS Topic

Go to the AWS Management Console, navigate to SNS, and click “Create topic.” Choose a type: Standard (high throughput, best-effort ordering) or FIFO (strict ordering, exact-once delivery). Name your topic (e.g., app-alerts). This creates a logical channel that will receive messages.

2

Configure Topic Policy (Optional)

By default, only the account owner can publish and subscribe. You can add a resource-based policy to allow cross-account access or allow specific AWS services to publish (e.g., CloudWatch). This is a JSON policy similar to IAM policies.

3

Create Subscriptions

For each subscriber, create a subscription. Choose the protocol (email, SMS, HTTP, SQS, Lambda, etc.) and enter the endpoint. For HTTP/HTTPS, you must later confirm the subscription. For email, the recipient must click a link. For SQS and Lambda, AWS can auto-confirm. You can also set a filter policy to control which messages are delivered.

4

Confirm Subscriptions

SNS sends a confirmation request to HTTP/HTTPS and email endpoints. The subscriber must acknowledge it (for email, click link; for HTTP, return 200 OK with token). Until confirmed, no messages are delivered. SQS and Lambda subscriptions are auto-confirmed.

5

Publish a Message to the Topic

Publishers send messages to the topic using the console, AWS CLI, or SDK. The message can include a subject, body, and structured message attributes (key-value pairs). The message size limit is 256 KB. The publish action triggers SNS to immediately forward the message to all confirmed subscribers.

6

Monitor and Troubleshoot

Use CloudWatch metrics to view number of messages published, delivered, failed, and throttled. If a subscriber is not receiving messages, check subscription confirmation status, IAM policies, and network connectivity (for HTTP). Configure a dead-letter queue (DLQ) for failed deliveries to reprocess or analyze errors.

Practical Mini-Lesson

Amazon SNS is a cornerstone of event-driven architecture in AWS. As a professional, you need to know not just how to create a topic and subscribe, but how to design robust notification systems that handle failures gracefully. The most common pattern is fan-out: one message triggers multiple actions. For example, an e-commerce site might publish a message to an SNS topic each time a new order is placed. Subscribers could include an SQS queue for order processing, a Lambda function for analytics, and an email endpoint for customer confirmation. This decoupling means if the analytics service is slow, it doesn't block the order processing or the email.

When configuring subscribers, always consider message filtering. Without filters, every subscriber receives every message. If you have an SQS queue that only needs critical alerts, set a filter policy on that subscription to only pass messages where severity equals “CRITICAL”. This reduces load and cost. Filter policies are JSON objects that match against message attributes (not the body). For example: {"severity": ["CRITICAL"]}. This is more efficient than filtering inside the consumer code.

Another essential skill is handling delivery failures. For HTTP/HTTPS subscribers, your endpoint must return a 200 OK within a timeout (default 30 seconds). If it returns anything else or times out, SNS retries up to three times with exponential backoff (starting at 20 seconds, doubling each time). If all retries fail, the message is lost unless you have configured a dead-letter queue (DLQ). Attach an SQS DLQ to the subscription; any failed messages will be sent there. You can then reprocess or analyze them. This is critical for production systems where message loss is unacceptable.

Security is not optional. Use IAM roles to control who can publish and subscribe. For cross-account scenarios, you must use topic policies. For example, to allow a CloudWatch alarm in the same account to publish, attach a policy like: {"Effect":"Allow", "Principal":{"Service":"cloudwatch.amazonaws.com"}, "Action":"SNS:Publish", "Resource":"arn:aws:sns:us-east-1:123456:my-topic" }. For cryptographically secure messages, enable server-side encryption using AWS KMS. This encrypts the message at rest in SNS and in transit for some protocols. You can also specify a KMS key per topic.

Finally, understand the trade-off between Standard and FIFO topics. Standard topics offer high throughput (virtually unlimited) but only best-effort ordering and at-least-once delivery. FIFO topics offer strict ordering and exactly-once, but are limited to 3000 messages per second (with batching). Use FIFO when order matters-for example, processing stock trades or financial transactions. Use Standard for most other cases like alerts, notifications, and fan-out where order is not critical. Also, FIFO topics require message deduplication (either content-based dedup or a message deduplication ID) and must have the .fifo suffix in the topic name.

Memory Tip

SNS = Shout Notification Service: You shout (publish) a message, and everyone listening (subscribers) hears it at once.

Covered in These Exams

Current Exam Context

Current exam versions that test this topic — use these objectives when studying.

Related Glossary Terms

Frequently Asked Questions

Can I send a message to an SNS topic without creating a subscription first?

Yes, you can publish a message to a topic even if there are no subscribers. The message will just be delivered to no one and will not be stored.

Does SNS support message ordering?

Standard SNS topics do not guarantee strict ordering; messages may be delivered out of order. FIFO topics guarantee exact ordering and exactly-once delivery, but have throughput limitations.

What is the maximum message size in SNS?

The maximum message size is 256 KB. If you need to send larger payloads, you should store the data in an S3 bucket and include the S3 object URL in the SNS message.

Can I set a dead-letter queue (DLQ) for an SNS subscription?

Yes, you can configure a DLQ (an SQS queue) for any subscription. If message delivery fails after all retries, the message is sent to the DLQ for later analysis or reprocessing.

Does SNS integrate with AWS CloudWatch?

Yes, you can specify an SNS topic as the target of a CloudWatch alarm. When the alarm state changes, CloudWatch publishes a message to the topic, which then notifies all subscribers.

What happens if I delete an SNS topic that has subscriptions?

If you delete the topic, all subscriptions are automatically deleted. Messages cannot be published to a deleted topic, and existing messages are lost.

Summary

Amazon Simple Notification Service (SNS) is a fully managed pub/sub messaging service that enables you to send one message to many recipients over multiple protocols. It is a push-based service, meaning messages are immediately forwarded to subscribers as soon as they are published. SNS is ideal for broadcasting alerts, notifications, and event-driven fan-out patterns. It integrates tightly with other AWS services like CloudWatch, Lambda, and SQS, and supports HTTP/HTTPS, email, SMS, and mobile push endpoints.

For IT certification exams, SNS is a fundamental building block. Cloud Practitioner candidates must know what it is and when to use it. Developer and Solutions Architect candidates need to understand integration details, message filtering, dead-letter queues, FIFO vs Standard topics, and security configurations. Common exam traps include confusing SNS with SQS or SES, forgetting subscription confirmation, and expecting message ordering from standard topics.

The key takeaway for any IT professional is that SNS decouples publishers from subscribers, simplifies system architecture, and provides scalable, reliable message delivery. By mastering SNS, you gain a powerful tool for building resilient, event-driven cloud applications. Use SNS when you need to push the same message to multiple targets in real time, and pair it with other services like SQS for durability or Lambda for serverless processing.