awsekskubernetescost-optimization

AWS EKS full cost breakdown: the control plane is the small line

EKS cost is control plane ($73/mo) + worker nodes (the bulk) + EBS + load balancers + NAT + cross-AZ transfer. Here's the full breakdown and where the real savings are — almost all in the nodes.

The C3X Team··7 min read

Quick answer

EKS cost is: control plane $0.10/hour (~$73/month, the smallest line) + worker EC2 instances (the bulk) + EBS volumes + load balancers + NAT gateway data + cross-AZ transfer + observability. A modest production cluster runs $500-1,500/month. The savings are almost all in the nodes: autoscale, Spot, Graviton, plus VPC endpoints to cut NAT and ingress consolidation.

Ask what EKS costs and most people name the control-plane fee. That's the one number that doesn't matter much — $73/month is a rounding error against the real bill, which is the worker nodes and the infrastructure that surrounds them. Here's the full picture, biggest line to smallest.

The full breakdown

  • Worker nodes (the bulk): the node group bills as EC2 instances — desired_size × instance rate. 3× m5.large is ~$210/month; production clusters run far more.
  • EBS volumes: each node's root/data volume (gp3 ~$0.08/GB-month).
  • Load balancers: one ALB/NLB per LoadBalancer Service (~$16.43/month base each) — sprawl adds up.
  • NAT gateway: data processing on image pulls and external calls — see aws_nat_gateway.
  • Cross-AZ transfer: pods in different zones talking to each other pay inter-AZ data transfer.
  • Control plane: $0.10/hour (~$73/month) per cluster.
  • Observability: CloudWatch / logging ingestion.

Where the savings actually are

  1. Autoscale the nodes. Karpenter or Cluster Autoscaler to actual pod demand — usually 30-50% on bursty workloads. See EKS vs ECS total cost for the broader compute picture.
  2. Spot node pools for stateless pods, up to 90% off — the spot trade-off.
  3. Graviton nodes for ~20% off — see Graviton migration.
  4. VPC endpoints so ECR image pulls and S3 traffic bypass NAT processing — the single biggest hidden-cost fix on container clusters.
  5. Consolidate ingress behind one ALB instead of a LoadBalancer Service per app.
  6. Reserve the baseline nodes you always run.

FAQ

What does an EKS cluster actually cost?

The control plane is a flat $0.10/hour (~$73/month) per cluster. Everything else is the workers and supporting infrastructure: worker EC2 instances (the bulk), their EBS volumes, load balancers for ingress, NAT gateways for egress, and data transfer. A modest production cluster easily runs $500-1,500/month, with the control plane being the smallest line.

Is the EKS control plane the main cost?

No — it's usually the smallest line item. At $73/month it's dwarfed by the worker node group, which can be hundreds or thousands per month. People fixate on the control-plane fee, but the optimization opportunities are almost all in the nodes and supporting infrastructure.

What are the hidden costs of running EKS?

The ones that surprise teams: NAT gateway data processing for image pulls and external calls, load balancers (one per Service of type LoadBalancer), EBS volumes per node, cross-AZ data transfer between pods in different zones, and CloudWatch/observability ingestion. These 'supporting' costs can rival the node bill.

How do I reduce EKS costs?

Right-size and autoscale node groups (Karpenter or Cluster Autoscaler), run Spot node pools for stateless pods, use Graviton nodes (~20% off), add VPC endpoints so image pulls bypass NAT, consolidate LoadBalancer Services behind one ingress, and reserve the steady baseline. The node group is where the biggest savings live.

Does Fargate change the EKS cost picture?

EKS on Fargate removes node management and bills per pod vCPU/memory, which suits spiky or low-density workloads but carries a premium for steady ones — the same Fargate-vs-EC2 trade-off as ECS. Many clusters run a mix: EC2 node groups for the steady base, Fargate for bursty or isolated pods.

How does C3X estimate full EKS cost?

C3X prices the aws_eks_cluster control plane, the aws_eks_node_group worker instances, and the supporting resources (EBS, load balancers, NAT) in your Terraform, so the whole-cluster cost — not just the control-plane fee — is visible before deployment.

What to do next

The control-plane fee is the easy number; the cluster's real cost is the sum of nodes, storage, load balancers, and NAT. C3X prices the aws_eks_cluster, its node groups, and the supporting resources together, so you see the whole-cluster monthly cost before deploying. The quickstart runs it in minutes.

Try C3X on your own Terraform

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