AWS cost · EKS
Why EKS is expensive: the $73/month control plane
The EKS control plane is the cost that starts before you do anything. Spin up a cluster and you are billed $0.10/hour for it - about $73/month - before a single node joins or a single pod runs. On its own that is easy to justify. The problem is that clusters multiply: one per environment, one per team, a couple of proofs of concept nobody tore down. I have run four at once, and that is already about $292/month in control-plane fees before you count the nodes underneath them.
Every EKS cluster bills $0.10/hour - roughly $73/month - just for the managed control plane, whether it runs one pod or none. After 14 months on an old Kubernetes version the rate jumps to $0.60/hour on extended support. The waste is rarely one cluster; it is the idle and forgotten ones spread across regions and environments.
How much does the EKS control plane cost?
At $0.10/hour on standard support, the flat fee scales with how many clusters you keep alive - and only counts the control plane, not the nodes, load balancers, or data transfer billed on top:
| Clusters | Control plane | Per year |
|---|---|---|
| 1 cluster | $73/month | $876/year |
| 4 clusters | $292/month | $3,504/year |
| 10 clusters | $730/month | $8,760/year |
What you pay for before any nodes run
The fee buys the managed Kubernetes control plane - the API server, etcd, and the scheduler - run and patched by AWS across Availability Zones so you do not operate it yourself. That is a fair deal for a cluster doing real work. It is a bad deal for a cluster doing nothing, because the meter does not care. An empty cluster left over from a migration or a demo bills the same $73/month as a production one.
The extended-support jump to $0.60/hour
Each Kubernetes version gets 14 months of standard support at $0.10/hour. After that it moves to extended support at $0.60/hour - six times the rate, about $438/month per cluster - until you upgrade to a supported version. A fleet left on an old version quietly reprices itself. Keeping clusters current is not only a security habit; it keeps you on the cheaper tier.
How to find your clusters and what they cost
Clusters are regional, so the expensive ones are usually the ones in a region you never open. List them everywhere, then check each for node groups - a cluster with none is a strong candidate for deletion:
# list clusters in one region (repeat per region you use)
aws eks list-clusters --region eu-central-1 --query 'clusters'
# for each cluster: version, status, and support period
aws eks describe-cluster --region eu-central-1 --name my-cluster \
--query 'cluster.{Version:version,Status:status}'
# a cluster with no node groups is often forgotten
aws eks list-nodegroups --region eu-central-1 --cluster-name my-cluster \
--query 'nodegroups'The nodes and networking usually dwarf the control-plane fee on a busy cluster - idle oversized worker nodes and CloudWatch log ingestion are where the real EKS money tends to hide. But the control plane is the one you pay even when nothing is running, so it is the first thing to prune.
Want to know how much of your bill is control planes, idle nodes, and log ingestion? Connect your account read-only and see what it is wasting, in real dollars.
The role can only read - Get, Describe, List, nothing else. Read the exact permissions before you deploy it, and delete the stack whenever you want.
Frequently asked questions
How much does an EKS cluster cost?+
The EKS control plane costs $0.10 per hour per cluster - about $73/month - on standard support. That is before any worker nodes, load balancers, storage, or data transfer, which are all billed on top.
What am I paying for with the EKS control plane?+
The managed Kubernetes control plane: the API server, etcd, and the scheduler, run and patched by AWS across multiple Availability Zones. You pay the flat hourly fee whether the cluster runs one pod or none.
Why did my EKS bill go up to $0.60 per hour?+
That is extended support pricing. A Kubernetes version gets 14 months of standard support at $0.10/hour, then moves to extended support at $0.60/hour - six times more - until you upgrade to a supported version. Staying current keeps you on the cheaper rate.
Does a cluster with no nodes still cost money?+
Yes. The control plane bills $0.10/hour the moment the cluster exists, with or without a node group attached. An empty cluster left over from a test is a pure $73/month waste.
How do I find EKS clusters I forgot about?+
Run `aws eks list-clusters` in every region - clusters are regional, so a forgotten one in a region you never look at keeps billing. Then check each for node groups and recent activity to see which are actually used.
Is EKS cheaper than ECS?+
ECS has no control-plane fee, so on the flat cost alone ECS is cheaper - you only pay for the compute. EKS charges $0.10/hour per cluster for managed Kubernetes. Whether that is worth it depends on whether you need Kubernetes; the fee is small next to the node and networking bill on a busy cluster.
Related cost breakdowns
Why your stopped EC2 instance is still being charged
A stopped EC2 instance keeps billing for its attached EBS disk and any Elastic IP. One 8 GB volume quietly cost me ~$70 over six years. Here is what still charges when an instance is off.
Spot instances: what is safe to run on them, and what is not
Spot instances are up to 90% cheaper than on-demand - I moved almost everything to spot. The catch is a 2-minute interruption notice. Here is what is safe to run on spot and what is not.
Graviton (ARM) is ~20% cheaper than x86 for the same work
AWS Graviton instances cost about 20% less than comparable x86 at equal or better performance, and arm64 Lambda is a one-dropdown switch. Here is how to find migration candidates.
How to find idle and oversized EC2 instances draining your bill
An EC2 instance sized for a peak that never comes idles at under 10% CPU while billing full price. Here is how to spot the oversized ones and right-size them down.