SNS pricing: what to model (publishes, deliveries, fan-out)
SNS cost models are easiest when you treat them as publishes plus deliveries. The key idea: deliveries can be much larger than publishes because of fan-out, and retries can multiply delivery attempts during failures. This page is a checklist for a realistic estimate.
What to include in the model
- Publishes/month: how many messages you publish
- Deliveries/month: how many messages are delivered to endpoints
- Fan-out: average matched subscribers per publish (after filter policies)
- Protocol mix: different subscription protocols can have different effective rates
- Retry multiplier: delivery failures cause repeated attempts
Tool: AWS SNS cost calculator
Step 1: estimate publishes
- Split by topic: a few topics often dominate publishes.
- Separate prod vs non-prod (test topics can be noisy).
- Keep an “incident day” scenario if alerts are a big use case.
Step 2: estimate deliveries (fan-out is the multiplier)
A fast first-pass formula:
- Deliveries/month ≈ publishes/month × matched subscribers per publish
- Use matched subscribers, not “subscribers total” (filter policies reduce effective fan-out).
Workflow: estimate SNS deliveries
Step 3: add the retry/alert-storm scenarios
- Retry scenario: failing endpoints multiply delivery attempts.
- Alert storm scenario: incident triggers high-frequency publishes to high-fan-out topics.
- Downstream coupling: if SNS fans out to SQS/HTTP endpoints, failures can cascade and amplify retries.
Common pitfalls
- Modeling publishes and forgetting deliveries (fan-out is where cost grows).
- Using “subscribers per topic” instead of “matched subscribers per publish”.
- Ignoring retries and treating failures as “rare” (incidents can dominate monthly variance).
- Broadcasting large payloads to many subscribers instead of sending pointers (object links).
- Not separating non-prod traffic (test loops can create high publish/delivery volume).
How to validate after you deploy
- Compare publishes and deliveries from a representative week to your baseline model.
- Check delivery failure rate; if failures are non-trivial, expect higher effective deliveries.
- Validate fan-out after filters: are you delivering broadly when you intended narrow topics?
Worked estimate template (copy/paste)
- Publishes/month = Σ publishes by topic
- Matched fan-out = subscriptions × filter match rate
- Baseline deliveries = publishes × matched fan-out
- Peak deliveries = baseline deliveries × (1 + retry factor) during incident/busy hours
- Monthly cost = publishes priced + deliveries priced (use blended per-1M rates)
If you don’t know match rate or retry factor, model scenarios (e.g., 20%/50%/80% match; 0%/5%/20% retries) and validate later.
Related guides
Sources
Related guides
SQS vs SNS cost: how to compare messaging unit economics
Compare SQS vs SNS cost with a practical checklist: request types, retries, fan-out, payload transfer, and the usage patterns that decide the bill.
AWS SQS cost optimization (high-leverage fixes)
A practical playbook to reduce SQS costs: reduce requests per successful message with batching and long polling, prevent retry storms and poison loops, and validate savings with sent/received/deleted metrics.
AWS SQS pricing (what to include)
A practical checklist for estimating SQS costs: requests, retries, Receive/Delete patterns, and the common pitfalls that inflate spend.
Estimate SNS deliveries per month (messages x subscribers)
A practical workflow to estimate SNS delivery volume: start from publishes, model matched fan-out (after filter policies), add a retry multiplier for failures, and validate with metrics so budgets survive incidents.
Estimate SQS requests (from messages and retries)
A practical workflow to estimate billable SQS request volume: start from messages/month, model requests per successful message (Send/Receive/Delete), and add the multipliers (retries, empty receives, poison loops) that cause spikes.
SNS cost optimization (reduce deliveries and retries)
A high-leverage playbook to reduce SNS costs: reduce fan-out (deliveries), reduce delivery retries by fixing endpoints, and prevent alert storms with dedupe and rate limits — with a validation plan.
Related calculators
RPS to Monthly Requests Calculator
Estimate monthly request volume from RPS, hours/day, and utilization.
API Request Cost Calculator
Estimate request-based charges from monthly requests and $ per million.
CDN Request Cost Calculator
Estimate CDN request fees from monthly requests and $ per 10k/1M pricing.
FAQ
What typically drives SNS cost?
Delivery volume. Fan-out (messages × subscribers) can make deliveries much larger than publishes. Protocol mix also matters for effective pricing.
Why do costs spike during incidents?
Alert storms and retries. More publishes plus repeated delivery attempts can multiply deliveries, especially for high fan-out topics.
What’s the fastest way to build a budget model?
Estimate publishes/month, estimate deliveries/month (publish × matched subscribers), add a retry multiplier for failure periods, then price with a blended per-1M rate and validate with metrics.
Last updated: 2026-01-27