platform-engineeringkubernetescost-estimationaws

How much does it cost to run an internal developer platform?

An internal developer platform serving 150 engineers across three Kubernetes clusters costs about 3,069 dollars a month, or 20 dollars per engineer. Here is the breakdown and which lines grow with headcount.

The C3X Team··8 min read

Quick answer

An internal developer platform serving 150 engineers across dev, staging, and production Kubernetes clusters costs roughly 3,069 dollars a month on AWS, or about 20.46 dollars per engineer per month. The largest lines are worker nodes at 817 dollars, self-hosted observability at 712 dollars, ingress load balancers at 283 dollars, and NAT gateways at 283 dollars. Only about a third of the bill scales with headcount; the rest is fixed platform overhead, which is why cost per engineer falls sharply as an organization grows past 100 people.

Platform teams are asked two questions repeatedly: what does the platform cost, and is it worth it. The first is answerable precisely. The second depends on knowing which parts of the bill are fixed overhead and which grow with the number of engineers using it. Here is a full costing of a realistic mid-size platform.

The workload we are pricing

Assume 150 engineers across 40 teams in us-east-1, running about 60 services. There are three Kubernetes clusters: production with a stable 12-node group, staging with 4 nodes, and development with 6. Teams spin up roughly 200 ephemeral preview environments a month, each living about 6 hours. The platform provides a service catalog, CI integration, secrets management, ingress, and self-hosted metrics and logging. Container images and Terraform state live in the same account.

The monthly breakdown

ComponentSpecificationMonthly cost
Worker nodes12 prod on Savings Plan, 10 non-prod on Spot (m6i.large)$817.22
Observability3 x r5.xlarge plus 2 TB EBS for metrics and logs$711.88
Ingress load balancers3 ALBs plus about 40 LCU$282.89
NAT gateways3 gateways plus 4 TB processed$282.87
Platform databaseRDS db.m5.large Multi-AZ plus 200 GB$272.66
Cluster control planes3 EKS clusters at 0.10/hr each$219.00
Artifacts and state5 TB S3 plus requests$155.00
Node storage22 nodes x 80 GB gp3$140.80
Container registry800 GB of images$80.00
Preview environments200 envs x 6 hrs on t3.medium$49.92
Secrets80 secrets at 0.40 each$32.00
DNS and certificatesRoute 53 zones and queries$25.00
Total$3,069.24

Fixed overhead against variable cost

CategoryLinesMonthlyScales with
Fixed platform overheadControl planes, NAT, ingress, platform DB, DNS$1,082.42Nothing
Semi-fixedObservability, registry, artifacts$946.88Service count
VariableWorker nodes, node storage, previews, secrets$1,039.94Engineers and workloads

Roughly 35 percent of the bill does not move when you add an engineer. Three EKS control planes cost 219 dollars whether one person or a thousand use them. Three NAT gateways cost 98.55 dollars in fixed charges regardless of traffic. That fixed base is why an eight-person startup should not build this platform, and why a 500-person company gets it for around 8 dollars per engineer.

EngineersEstimated monthlyPer engineer
25about $1,600$64.00
150$3,069$20.46
500about $6,900$13.80

Observability is the line to watch

Seven hundred and twelve dollars of self-hosted metrics and logging is 23 percent of the platform bill, and it grows with the number of services and the cardinality of their metrics, not with engineer count. Sixty services each exposing a few hundred metric series with per-pod and per-endpoint labels produces millions of active series, which is what drives the memory-optimized instances and the 2 TB of storage.

The comparison worth making is against a managed alternative. The same ingestion volume on a per-gigabyte managed logging service would be roughly 750 to 1,000 dollars, so self-hosting is a wash on pure cost and wins only if the platform team is already operating it well. The real lever in either case is cardinality discipline: dropping a single high-cardinality label like request ID or pod name from a widely-used metric can halve active series.

Preview environments are cheap, and that is the point

Two hundred ephemeral environments a month costs 49.92 dollars, or 25 cents each. This is the clearest return in the whole table: for the price of two coffees, every pull request gets a running environment. The cost only becomes a problem when environments are not ephemeral. An environment left running for a week instead of 6 hours costs 7 dollars rather than 0.25; a hundred of those is 700 dollars a month of forgotten infrastructure. A hard TTL with automatic teardown is the single highest-leverage policy a platform team can set.

The cuts worth making

Three NAT gateways at 282.87 dollars is the clearest waste. Non-production clusters rarely need highly available egress, and gateway endpoints for object storage plus interface endpoints for the registry remove most of the processing charge. Consolidating to one NAT gateway for non-production and adding endpoints typically takes this to about 90 dollars. Similarly, three separate ALBs at 282.89 dollars can often become one shared ingress per cluster with host-based routing, saving around 100 dollars.

Together with cardinality work on metrics, those changes take the platform to roughly 2,650 dollars, or 17.67 dollars per engineer. Against a loaded engineering cost of 12,000 dollars a month per person, the platform is 0.17 percent of what it supports, which is the argument that actually matters. Price the platform from Terraform against the resource catalog so the per-engineer number is defensible when someone asks.

FAQ

How much does an internal developer platform cost?

About 3,069 dollars a month on AWS for a platform serving 150 engineers across three Kubernetes clusters, including worker nodes, control planes, ingress, NAT gateways, a platform database, container registry, artifact storage, secrets, preview environments, and self-hosted observability. That works out to roughly 20.46 dollars per engineer per month.

How does platform cost per engineer change with organization size?

It falls sharply. Around 35 percent of the bill is fixed overhead that does not move when you add people: cluster control planes, NAT gateway hourly charges, ingress, the platform database, and DNS. A 25-engineer organization pays roughly 64 dollars per engineer for the same platform, 150 engineers pay 20.46, and 500 engineers pay about 13.80.

What is the biggest cost in a developer platform?

Worker nodes at 817 dollars, followed closely by self-hosted observability at 712 dollars, which is 23 percent of the bill. Observability grows with the number of services and metric cardinality rather than with engineer count, so 60 services emitting high-cardinality labels drive memory-optimized instances and terabytes of storage. Dropping one widely-used high-cardinality label can halve active series.

How much do preview environments cost?

About 25 cents each, or 49.92 dollars a month for 200 six-hour environments on t3.medium instances. That is the best return in the whole platform bill. The risk is environments that are not actually ephemeral: one left running a week costs 7 dollars instead of 0.25, and a hundred of those is 700 dollars of forgotten infrastructure. A hard TTL with automatic teardown prevents it.

How do I reduce internal developer platform costs?

Consolidate NAT gateways, since non-production clusters rarely need highly available egress, and add VPC endpoints for object storage and the registry: that takes 283 dollars to about 90. Share one ingress load balancer per cluster with host-based routing instead of three, saving around 100. Then work on metric cardinality. Together those take the platform to roughly 2,650 dollars, or 17.67 per engineer.

How does C3X help a platform team control cost?

C3X prices infrastructure from Terraform against a live catalog, so node groups, control planes, load balancers, NAT gateways, and storage are costed before they are applied. For a platform team that owns modules other teams consume, that means the cost of a module change is visible in the pull request, and the per-engineer figure they report to leadership traces back to actual infrastructure definitions.

What to do next

Make your platform cost defensible. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.

Try C3X on your own Terraform

Free and open source. No API key required. One command to install, one command to estimate.