Amazon Simple Notification Service
SNS
You need to broadcast notifications or event messages to multiple subscriber services and protocols simultaneously.
Reach for it when
- Publishing a "New Order" event that triggers inventory updates, email alerts, and shipping processes at the same time.
- Sending SMS text alerts, push notifications, and email updates directly to end-user mobile devices.
- Routing system alerts from CloudWatch alarms to both PagerDuty and a Slack webhook queue.
Do not reach for it when
- Queueing messages for a single backend worker application to process sequentially — use SQS instead.
- Routing messages based on complex state transitions or orchestrating sequential task workflows — use Step Functions instead.
- Streaming raw log files or clickstream events that need persistent storage and replay capabilities — use Kinesis instead.
Alternatives, and how to choose
| Service | Pick it instead when |
|---|---|
| SQS | Choose it when you need point-to-point message delivery where only one worker processes each message. |
| EventBridge | Choose it when you need advanced JSON payload filtering and routing to dozens of AWS targets. |
How you pay
- The model
- Pay per million notifications published, with varying rates based on the delivery protocol (HTTP, SMS, SQS).
- The line item that surprises people
- Sending SMS messages through SNS can quickly run up high costs due to global telecom carrier termination fees.
What trips people up
- Subscribed HTTP endpoints must perform a handshake confirmation step before they can receive any event payloads.
- SNS does not buffer messages; if an HTTP subscriber is down, SNS retries for a limited time and then discards the message.
- Standard SNS topics do not guarantee message delivery order; you must use FIFO topics if ordering is strictly required.
Verify the live service
This page is a concept reference. Cost models are qualitative; confirm the current offering, Region and pricing before deploying.