SNS Cost Calculator
Price SNS fan-out from publish volume, payload size and delivery protocol, with 64 KB request chunking and the free tier.
Inputs
Each 64 KB of payload counts as one billed request.
Deliveries to SQS and Lambda are not charged by SNS.
Estimated Monthly Cost
$5.00
Publish Request Cost
$2.00
Delivery Cost
$3.00
Billed Publish Requests
5,000,000
Notifications Delivered
20,000,000
Cost per Million Publishes
$1.00
Step by step
Values used
Publishes per month = 5,000,000 messages; Average payload size = 8 KB; SQS or Lambda subscriptions per topic = 3 subscriptions; HTTP/HTTPS subscriptions per topic = 1 subscriptions; Email deliveries per month = 0 emails; Price per million publish requests = 0.5000 USD; Price per million HTTP deliveries = 0.6000 USD; Price per 100,000 email deliveries = 2 USD; Apply the 1 M request free tier = Yes
SNS Cost
billed requests = publishes × ceil(payload KB ÷ 64); cost = (billed requests − free tier) ÷ 1 M × publish price + HTTP deliveries ÷ 1 M × delivery price + emails ÷ 100,000 × email price.
Fan-out volume
notifications delivered = publishes × (SQS + Lambda + HTTP subscriptions) + email deliveries.
Estimated Monthly Cost
= 5.00
Publish Request Cost
= 2.00
Delivery Cost
= 3.00
Billed Publish Requests
= 5,000,000
Notifications Delivered
= 20,000,000
Cost per Million Publishes
= 1.00
How it works
SNS charges the publisher once per 64 KB chunk, then charges again per delivery for most protocols — but notably not for SQS or Lambda, which is why the standard fan-out pattern is to publish to a topic and let queues and functions subscribe for free. Large payloads are the hidden multiplier: a 200 KB message is billed as four requests, not one. Confirm the publish and per-protocol delivery prices for your region on the SNS pricing page. Fan-out volume grows as the product of publishes and subscribers, so adding one HTTP subscriber to a busy topic can add more cost than the publishes themselves — and SMS deliveries, priced per message per country, can dwarf everything else.
Formulas
SNS Cost
billed requests = publishes × ceil(payload KB ÷ 64); cost = (billed requests − free tier) ÷ 1 M × publish price + HTTP deliveries ÷ 1 M × delivery price + emails ÷ 100,000 × email price.
- billed request
- One publish of up to 64 KB — a 200 KB message counts as four
- fan-out
- One publish multiplied by the number of subscriptions on the topic
- delivery price
- Charged per protocol; SQS and Lambda deliveries are free
Fan-out volume
notifications delivered = publishes × (SQS + Lambda + HTTP subscriptions) + email deliveries.
Frequently Asked Questions
How is SNS Cost calculated?
billed requests = publishes × ceil(payload KB ÷ 64); cost = (billed requests − free tier) ÷ 1 M × publish price + HTTP deliveries ÷ 1 M × delivery price + emails ÷ 100,000 × email price. SNS charges the publisher once per 64 KB chunk, then charges again per delivery for most protocols — but notably not for SQS or Lambda, which is why the standard fan-out pattern is to publish to a topic and let queues and functions subscribe for free. Large payloads are the hidden multiplier: a 200 KB message is billed as four requests, not one. Confirm the publish and per-protocol delivery prices for your region on the SNS pricing page.
Why does SNS Cost matter?
Fan-out volume grows as the product of publishes and subscribers, so adding one HTTP subscriber to a busy topic can add more cost than the publishes themselves — and SMS deliveries, priced per message per country, can dwarf everything else.
What values do I need to enter?
This calculator takes 9 inputs: Publishes per month, Average payload size, SQS or Lambda subscriptions per topic, HTTP/HTTPS subscriptions per topic, Email deliveries per month, Price per million publish requests, Price per million HTTP deliveries, Price per 100,000 email deliveries, Apply the 1 M request free tier. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Why are SQS and Lambda deliveries free?
AWS charges for those on the receiving side instead: the SQS queue bills its own requests and the Lambda function bills GB-seconds. It is not a discount so much as a different meter, which is why an SNS-to-SQS fan-out still costs money — just on the SQS line of the bill.