Apache Kafka itself doesn't cost anything to license. That's usually the first line in the pitch for running it yourself on EC2 instead of paying a managed provider. It's also the reason the total is easy to underestimate: the software is free, but the instances, the storage, the bandwidth and the team keeping it all running are not. Here's what that actually adds up to for one real workload.
The workload
10 MiB/s of compressed data in, 20 MiB/s of compressed data out (a common 2× fan-out), 7‑day retention — roughly 6.3 TB retained at any time. The same mid-sized production stream we use in our Confluent Cloud comparison.
Pricing, side by side
| ntail | Self-managed on AWS EC2 | |
|---|---|---|
| Compute | Included in pay-as-you-go pricing | 3 broker instances, sized to throughput≈$715/mo, general-purpose on-demand |
| Storage | $20 per TB / monthSingle-copy pricing | gp3 EBS at 3× replication≈$1,512/mo on ≈18.9 TB provisioned |
| Public internet traffic | $0 — never metered | Standard AWS egress rate≈$1,631/mo on the share of reads leaving your VPC |
| Operations | Included — we carry the pager | Your team's timePatching, upgrades, monitoring, on-call — not in this total |
| Example monthly cost10 MiB/s in · 20 MiB/s out · 7-day retention | $876 | $3,858 |
Illustrative, list-price figures: 3× m5.xlarge-class on-demand brokers, gp3 storage at 3× replication ($0.08/GB-month), and standard AWS internet egress ($0.09/GB) on a third of reads assumed to leave the VPC. The full model and assumptions are documented in our pricing calculator FAQ. It doesn't include engineering time — see below.
The instance-sizing trap
The broker cost above looks small next to storage and egress, but it understates the real number for a lot of teams. gp3 volumes come with a baseline of 3,000 IOPS and 125 MB/s of throughput, and Kafka's combined load of sequential writes, replication between brokers and consumer reads can burn through that baseline on a genuinely modest workload. From there you have two options, and both cost more than the sticker price on the instance: pay for provisioned IOPS and throughput above the gp3 baseline, or move up to a larger instance size — because EBS bandwidth is capped per instance, not just per volume, so a small instance can't drive a fast disk no matter how it's provisioned. Either way, the instance size that keeps disks fed is usually bigger than the instance size CPU and memory alone would justify.
Bandwidth: the line that doesn't quote well upfront
AWS's standard internet data-transfer-out rate applies to every byte your consumers read that leaves your VPC, with no free allowance built in for a streaming workload. It's easy to price a Kafka cluster by instance and storage alone and forget this line entirely — until a new consumer, a new region, or a partner integration starts reading the same topics and the bill moves with it. ntail's public internet traffic is $0, at any volume, so this line simply doesn't exist on the invoice.
The cost that never appears on the AWS bill
Everything above is infrastructure. None of it includes the actual work of running Kafka: patching and upgrading brokers, sizing and rebalancing capacity ahead of growth, monitoring consumer lag, responding to a broker failure at 3am, and testing that a region failure actually recovers cleanly before it happens for real. That's not a line item AWS bills you for, but it's real time from real engineers, recurring every month whether or not anything goes wrong. A managed service doesn't make that cost zero — it moves it onto us instead of your team.
A European company, on our own European infrastructure
ntail is operated by Factual Tech AB, a company registered in Sweden. Customer data is processed and stored in the EU by default — other regions, including the US, available on request — on infrastructure we operate ourselves. For teams with stricter residency or sovereignty requirements, we can also run a dedicated cluster fully off the public cloud, in a specific region of your choice. See how we handle security for the full detail.
Which one is right for you
Running Kafka yourself makes sense if your team already has the operational depth for it and the workload is small and stable enough that instance sizing and bandwidth stay predictable. If EBS provisioning, egress and the on-call rotation are eating time you'd rather spend elsewhere, it's worth modeling your own workload against ntail's pricing, or seeing how ntail compares to the other managed streaming options.