SQS vs SNS vs EventBridge cost: pick by pattern, not price
SQS is $0.40/M, SNS $0.50/M, EventBridge $1.00/M — but they do different jobs. Here's the cost ranking, when EventBridge's premium is worth it, and how to keep messaging cheap at scale.
Quick answer
SQS is cheapest at $0.40/million requests; SNS is $0.50/million publishes + delivery; EventBridge is $1.00/million events. They do different jobs — SQS for queues, SNS for fan-out, EventBridge for content-based routing — so pick by pattern, not price. At high volume, batching SQS calls and reserving EventBridge for events that truly need routing keeps the bill down.
AWS has three messaging services that look interchangeable on a whiteboard and bill quite differently at scale. The cost ranking is clear — SQS < SNS < EventBridge per message — but the right choice is about the pattern you need, and paying the EventBridge premium for a job SQS would do is a common, quiet overspend.
The three meters
- SQS: $0.40 per million requests (first 1M/month free). A request is a send, receive, or delete — and a batched call of up to 10 messages is one request.
- SNS: $0.50 per million publishes, plus per-delivery charges that vary by protocol (HTTP, SQS, Lambda deliveries are cheap; SMS and mobile push cost more).
- EventBridge: $1.00 per million events on a custom bus. AWS-service events on the default bus and rule evaluations are free; schema discovery and archive/replay are extra.
Pick by pattern, not by price
- SQS — decouple producer from worker. One queue, one consumer group pulling at its own pace. The backbone of async processing. Cheapest, simplest.
- SNS — broadcast one to many. Fan a single message out to multiple subscribers (often SQS queues or Lambdas). The classic fan-out pattern.
- EventBridge — route by content. Inspect an event's payload and send it to different targets based on rules, integrate SaaS partners, manage schemas. The per-event premium is the routing engine.
Where the overspend hides
EventBridge is the one to watch. It's a lovely service and teams route everything through a custom bus by default — paying $1.00/million for events that a plain SQS queue ($0.40/million) or SNS fan-out would handle. If you're not using content-based routing or partner integrations, you're paying 2.5x for nothing. Reserve EventBridge for events that genuinely need its filtering.
Cut the bill at volume
- Batch SQS. Send and receive up to 10 messages per API call — 10x fewer billable requests.
- Long-poll. Long polling avoids paying for empty receive calls that return nothing.
- Keep fan-out on SNS. SNS→SQS fan-out is cheaper than routing the same broadcast through EventBridge.
FAQ
What's the cheapest AWS messaging service?
SQS is the cheapest per message at $0.40 per million requests (first 1M/month free). SNS is $0.50 per million publishes plus delivery charges. EventBridge is $1.00 per million events on a custom bus. At high volume the difference is real — SQS is ~2.5x cheaper per message than EventBridge — but they do different jobs.
How is EventBridge priced?
$1.00 per million events published to a custom event bus, with no charge for AWS-service events on the default bus or for rules. Schema discovery and archive/replay cost extra. You pay more per event than SQS or SNS because you're paying for content-based routing and filtering.
When should I use EventBridge despite the higher cost?
When you need content-based routing (route events by their payload to different targets), many-to-many event distribution, integration with SaaS partners, or schema management. EventBridge's per-event premium buys routing logic you'd otherwise build yourself. For simple queues or fan-out it's overkill.
SQS vs SNS — what's the difference in cost and use?
SQS is a queue (one consumer group pulls messages) at $0.40/million. SNS is pub/sub fan-out (push to many subscribers) at $0.50/million publishes plus per-delivery charges that depend on the protocol. Use SQS to decouple a producer from a worker, SNS to broadcast one message to many endpoints.
How do I keep messaging costs down?
Batch SQS sends and receives (up to 10 messages per call counts as fewer requests), use long polling to cut empty receives, keep simple fan-out on SNS rather than routing everything through EventBridge, and reserve EventBridge for events that genuinely need content-based routing. At scale, request batching is the biggest lever.
How does C3X estimate messaging cost?
C3X prices aws_sqs_queue, aws_sns_topic, and EventBridge resources and treats message/event volume as usage-driven — add expected monthly messages in c3x-usage.yml to compare the three at your throughput.
What to do next
Messaging cost scales with volume, so model your throughput. C3X prices aws_sqs_queue and aws_sns_topic and takes message volume from c3x-usage.yml, so you can compare the three patterns at your scale before committing the architecture. The quickstart runs it in minutes.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.