SQS pricing is a price per million requests, standard queues cheaper than FIFO, with every started 64 KB of a payload counting as a request of its own; SNS charges per million publishes and per delivery by protocol, EventBridge per million events on custom buses, Kinesis Data Streams per shard hour and PUT payload unit or in on-demand mode per GB and stream hour, Firehose per GB ingested in 5 KB steps, and MSK per broker hour and GB-month of storage or in serverless mode per cluster hour, partition and GB. On the bill, requests dominate on SQS, SNS and EventBridge, running into the billions with small messages, and on Kinesis and MSK the provisioned shards and brokers that run around the clock.

Pricing dimensions

The six services share two models: the messaging services SQS, SNS and EventBridge charge per request or event with a size rule that multiplies large payloads; the streaming services Kinesis, Firehose and MSK charge capacity per hour or throughput per GB. Every item carries its own usage type, and the product code differs per service.

DimensionUnitWhat drives itOptional
SQS requestsMillion requests, standard and FIFO at own rates in three tiers; the first million a month freeEvery API action: send, receive, delete, change visibility; every started 64 KB counts as a request, a batch of up to 10 messages as oneNo
SNS publishes and deliveriesMillion requests for publishes; deliveries by protocol: SQS and Lambda free, HTTP per 100,000, email per 100,000, mobile push per million, SMS per message by countryEvery publish, every started 64 KB, every delivery to every subscriberNo
SNS FIFOMillion publishes plus GB of payload in and outFIFO topics with ordering and deduplicationYes
EventBridge eventsMillion events on custom buses, per started 64 KB; AWS service events free; targets in the same account freeCustom and partner events, cross-account deliveries, API destinations, Pipes per request, Scheduler per invocation above 14 million, archives per GBYes
Kinesis Data Streams provisionedShard hour plus million PUT payload units of 25 KB each; extended retention per shard hour; enhanced fan-out per consumer-shard hour and GBThe number of shards, 1 MB/s of writes and 2 MB/s of reads each, used or notYes, against on-demand
Kinesis Data Streams on-demandStream hour plus GB written and GB read; retention beyond 24 hours per GB-monthThe actual volume, with no shard choiceYes
FirehoseGB ingested in tiers, each record rounded up to 5 KB; format conversion, dynamic partitioning and delivery into a VPC per GB or hourEvery delivered record; from MSK or Kinesis as a source without the 5 KB roundingNo
MSK provisionedBroker hour by type, standard or Express, plus GB-month of storage per broker; tiered storage at a lower rate; Express brokers plus per GB writtenThe number and size of brokers and the provisioned storageYes, against serverless
MSK ServerlessCluster hour plus partition hour plus GB in and out plus GB-monthEvery serverless cluster, whether traffic flows or notYes
Data transferNot charged between brokers and zones of an MSK cluster; clients across zones at EC2 rates; SQS and SNS within the region freeProducers and consumers in other zonesYes (data transfer pricing)
Purchase optionNone for the six services

On the messaging services the number of requests decides, not the number of messages: an SQS message costs at least three requests, send, receive and delete, and a consumer that polls an empty queue pays every poll; long polling lowers them, batches of up to ten messages share them. FIFO queues cost a quarter more per million and deliver ordering and deduplication. SNS charges the publish and then every delivery by protocol, with deliveries to SQS and Lambda costing nothing and email and SMS being the expensive targets. EventBridge counts every custom event per 64 KB, leaves the AWS services' events free and does not charge targets in the same account; API destinations, Pipes and the Scheduler have rates of their own.

On the streaming services the capacity mode decides: a provisioned Kinesis shard costs per hour whether data flows or not and carries 1 MB/s of writes and 2 MB/s of reads, plus every PUT payload unit of 25 KB costs; on-demand pays per GB written and read plus a stream hour, with no shard choice. MSK provisioned pays broker hours and storage per broker, with Express brokers that deliver more throughput per broker and charge storage differently; MSK Serverless pays cluster hours, partition hours and GB in both directions. Firehose pays per GB ingested, with every record rounded up to 5 KB, so many small records are dearer than their volume.

How it appears in your billing data

In the Cost and Usage Report every service carries its product code: AWSQueueService for SQS, AmazonSNS, AWSEvents for EventBridge, AmazonKinesis, AmazonKinesisFirehose and AmazonMSK; lineItem/ResourceId names the queue, topic, bus, stream or cluster, and the usage type's prefix is the region code, EUC1 for Frankfurt. SQS appears as EUC1-Requests-Tier1 for standard queues and EUC1-Requests-FIFO-Tier1 for FIFO, with the tiers as separate lines and the allowance as Global-Requests at 0; SNS as EUC1-Requests-Tier1 for publishes and EUC1-DeliveryAttempts-HTTP, EUC1-DeliveryAttempts-SMTP, EUC1-DeliveryAttempts-SQS and EUC1-DeliveryAttempts-LAMBDA by protocol, the last two at 0, FIFO topics as EUC1-F-Request-Tier1 with EUC1-F-Ingress-Tier1 per GB.

EventBridge appears as EUC1-Event-64K-Chunks with the operation PutEvents, cross-account deliveries as EUC1-Invocation-64K-Chunks with the operation CrossAccountInvoke-CustomEvent or InvokeApiDestination, Pipes as EUC1-Request-64K-Chunks with PipeRequest, the Scheduler as EUC1-ScheduledInvocation, archives as EUC1-ArchivedEvents-Bytes. Kinesis provisioned appears as EUC1-Storage-ShardHour, EUC1-PutRequestPayloadUnits, EUC1-Extended-ShardHour and EUC1-EnhancedFanoutHour with EUC1-ReadBytes, on-demand as EUC1-OnDemand-StreamHour, EUC1-OnDemand-BilledIncomingBytes and EUC1-OnDemand-BilledOutgoingBytes; Firehose as EUC1-BilledBytes with the operation PutRecord or PutRecordBatch and EUC1-DFCBilledBytes for format conversion; MSK as EUC1-Kafka.m7g.large with the operation RunBroker, EUC1-Express.m7g.large, EUC1-Kafka.Storage.GP2 and EUC1-Kafka.Storage.Tiered per GB-month, serverless as EUC1-KafkaServerless-ClusterHours, -PartitionHours, -In-Bytes and -Out-Bytes.

What the reports do not deliver is attribution per producer or consumer: the queue, topic or stream is the resource, and tags on them are the only path to a team unless every team has resources of its own. The metrics NumberOfMessagesSent and NumberOfEmptyReceives on SQS and IncomingBytes and WriteProvisionedThroughputExceeded on Kinesis show who produces the requests and whether the shards fit. The report's structure is described in the AWS Cost and Usage Report. In the FOCUS export, ServiceName carries each service's name and x_ServiceCode the product code; every item is ChargeCategory Usage (FOCUS columns).

a resource per teamshared resourcesSix product codes: SQS, SNS,EventBridge, Kinesis,Firehose, MSKThe resource: a queue, topic,bus, stream or clusterCost per team?Attributed by the resourceOnly through tagson the resourceWho produces the requests:only the CloudWatch metrics,such as messages sent andempty receives
Every messaging service bills its resource under its own code, so attribution to a team needs tags or resources per team, and the producer shows only in the metrics

Levers

Configuration: on SQS, long polling and batches are the levers, because they fold empty polls and single requests into few requests; on SNS the delivery protocols, because SQS and Lambda are free and email and SMS cost per delivery; on EventBridge the size of the events, because every started 64 KB counts. On Kinesis the mode is the lever: provisioned shards for steady throughput, on-demand for irregular, with the break-even at a fraction of a shard's capacity; on MSK the broker count and size and tiered storage for data kept for long; on Firehose the record size, because 5 KB rounding charges five times for 1 KB records, and bundling before sending.

Purchase option: none of the six services has reservations or Savings Plans; the SQS tiers kick in only at hundreds of billions of requests.

Architecture: an SQS consumer that reads with long polling and batches costs a fraction per message of one that polls every second; EventBridge as a distributor of AWS events costs nothing, as a bus for custom events per million; Kinesis on-demand for new streams, provisioned once the throughput is known and steady; MSK only where Kafka is required, because a cluster of three brokers across three zones around the clock costs more than the messaging services for the same volume. The consumers of the streams are usually Lambda functions, whose cost is in Lambda pricing.

AWS serviceeventsmessages toconsumersa streamKafkarequiredWhat moves betweenthe parts?EventBridge: freeas a distributor,per million forcustom eventsSQS with longpolling and batches:a fractionper messageKinesis: on-demandfor a new stream,provisioned once thethroughput is steadyMSK: three brokersacross three zonesaround the clock
Events through EventBridge, messages through SQS with long polling and batches, streams on Kinesis in the mode the throughput allows, and MSK only where Kafka is required

Where it goes wrong

  • The empty queue costs. A consumer without long polling polls every second and pays 2.6 million requests a month per instance, empty or not. NumberOfEmptyReceives shows it; ReceiveMessageWaitTimeSeconds at 20 ends it.
  • The message is 200 KB. Every started 64 KB counts as a request of its own on SQS, SNS and EventBridge, so a 200 KB message counts four times. Large payloads belong in S3 with a reference in the message.
  • The shard is 5 percent utilised. Provisioned shards cost per hour whether data flows or not. IncomingBytes per shard against 1 MB/s shows the utilisation; on-demand or fewer shards fix it.
  • On-demand under steady load. A stream at a steady 1 MB/s pays several times the shard price per GB on-demand. The comparison of the GB lines with the shard hours of a matching stream shows the break-even.
  • Firehose rounds to 5 KB. Records of 1 KB pay 5 KB each. BilledBytes against the actual volume shows the factor; bundling to 5 KB or more ends it.
  • The MSK cluster has brokers without load. Three brokers across three zones pay around the clock, and every broker brings provisioned storage. The metrics BytesInPerSec per broker show whether the count fits; tiered storage lowers the storage for long retention.
  • SNS sends emails to thousands. Every email delivery costs several times an HTTP delivery per 100,000, and every SMS per message by country. Notifications to systems belong on SQS, Lambda or HTTP.

Example

List prices in USD for Frankfurt (eu-central-1), read on 2026-10-21 from the AWS price list: SQS costs USD 0.40 per million standard requests and USD 0.50 per million FIFO requests after a million free; SNS USD 0.50 per million publishes, USD 0.06 per 100,000 HTTP deliveries after 100,000 free, USD 2.00 per 100,000 emails after 1,000 free, deliveries to SQS and Lambda free; EventBridge USD 1.00 per million custom events, USD 0.24 per million invocations of API destinations, USD 0.46 per million Pipes requests, USD 1.15 per million Scheduler invocations after 14 million free. Kinesis provisioned costs USD 0.018 per shard hour and USD 0.0175 per million PUT payload units, on-demand USD 0.048 per stream hour, USD 0.096 per GB written and USD 0.048 per GB read; Firehose USD 0.033 per GB for the first 500 TB; MSK USD 0.2445 per hour for a kafka.m7g.large and USD 0.252 for a kafka.m5.large, USD 0.119 per GB-month of storage and USD 0.0639 for tiered storage, Express brokers express.m7g.large USD 0.489 per hour plus USD 0.015 per GB written, serverless USD 0.90 per cluster hour, USD 0.0018 per partition hour, USD 0.12 per GB in and USD 0.06 per GB out.

A stream at a steady 1 MB/s, 2,592 GB a month in records of 25 KB, costs provisioned with two shards 2 × 730 × 0.018 = USD 26.28 plus 106 million PUT units × 0.0175 = USD 1.86, USD 28.14 in all; on-demand USD 35.04 of stream hours plus USD 248.83 written plus USD 124.42 read, USD 408.29 in all. An SQS queue with 100 million messages of 1 KB a month costs, at three requests per message, 300 million requests, USD 119.60 after the allowance, and a tenth with batches of ten messages; a message of 200 KB counts four times. An MSK cluster of three kafka.m7g.large with 1 TB of storage each costs 3 × 730 × 0.2445 = USD 535.46 of brokers and 3,072 × 0.119 = USD 365.57 of storage, USD 901.03 in all, and with tiered storage for two thirds of the data 535.46 plus 121.86 plus 130.87 = USD 788.19. The figures show that Kinesis on-demand costs fifteen times the shards under steady load, that on SQS the requests count and not the messages, and that on MSK the provisioned storage almost reaches the brokers.

Sources

Read on 2026-10-21. Prices: Amazon SQS pricing, Amazon SNS pricing, Amazon EventBridge pricing, Amazon Kinesis Data Streams pricing, Amazon Data Firehose pricing, Amazon MSK pricing, AWS Price List for eu-central-1: AWSQueueService, AmazonSNS, AWSEvents, AmazonKinesis, AmazonKinesisFirehose, AmazonMSK. Billing data: Cost and Usage Report columns: lineItem, FOCUS 1.0 with AWS columns.