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.
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
| Component | Specification | Monthly cost |
|---|---|---|
| Worker nodes | 12 prod on Savings Plan, 10 non-prod on Spot (m6i.large) | $817.22 |
| Observability | 3 x r5.xlarge plus 2 TB EBS for metrics and logs | $711.88 |
| Ingress load balancers | 3 ALBs plus about 40 LCU | $282.89 |
| NAT gateways | 3 gateways plus 4 TB processed | $282.87 |
| Platform database | RDS db.m5.large Multi-AZ plus 200 GB | $272.66 |
| Cluster control planes | 3 EKS clusters at 0.10/hr each | $219.00 |
| Artifacts and state | 5 TB S3 plus requests | $155.00 |
| Node storage | 22 nodes x 80 GB gp3 | $140.80 |
| Container registry | 800 GB of images | $80.00 |
| Preview environments | 200 envs x 6 hrs on t3.medium | $49.92 |
| Secrets | 80 secrets at 0.40 each | $32.00 |
| DNS and certificates | Route 53 zones and queries | $25.00 |
| Total | $3,069.24 |
Fixed overhead against variable cost
| Category | Lines | Monthly | Scales with |
|---|---|---|---|
| Fixed platform overhead | Control planes, NAT, ingress, platform DB, DNS | $1,082.42 | Nothing |
| Semi-fixed | Observability, registry, artifacts | $946.88 | Service count |
| Variable | Worker nodes, node storage, previews, secrets | $1,039.94 | Engineers 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.
| Engineers | Estimated monthly | Per engineer |
|---|---|---|
| 25 | about $1,600 | $64.00 |
| 150 | $3,069 | $20.46 |
| 500 | about $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.
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.