Cost breakdown

ntail vs. self-managed Kafka on AWS: what it really costs

Published 2026-08-17 · 5 min read

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 vs. self-managed Kafka on AWS EC2 — cost breakdown
ntailSelf-managed on AWS EC2
ComputeIncluded in pay-as-you-go pricing3 broker instances, sized to throughput≈$715/mo, general-purpose on-demand
Storage$20 per TB / monthSingle-copy pricinggp3 EBS at 3× replication≈$1,512/mo on ≈18.9 TB provisioned
Public internet traffic$0 — never meteredStandard AWS egress rate≈$1,631/mo on the share of reads leaving your VPC
OperationsIncluded — we carry the pagerYour 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.

Send us your AWS bill

We'll model the same workload on ntail, line by line, and show you exactly where the saving comes from — no obligation.