aws_ eks_ node_ group cost estimation
Managed EC2 worker nodes for an EKS cluster. The node group has no charge of its own, it bills as the EC2 instances it launches. 3× m5.large is ~$210/month.
An aws_
The trap is desired_
capacity_
The other quiet cost is over-provisioning: node groups are often sized for peak and left there. Cluster Autoscaler or Karpenter scaling the group to actual demand is usually the single biggest EKS saving, ahead of instance-family changes.
c3x estimates the node group from scaling_
Terraform example
A minimal but realistic configuration that C3X can estimate.
resource "aws_eks_node_group" "workers" {
cluster_name = aws_eks_cluster.main.name
node_group_name = "workers"
node_role_arn = aws_iam_role.node.arn
subnet_ids = aws_subnet.private[*].id
instance_types = ["m5.large"]
capacity_type = "ON_DEMAND"
scaling_config {
desired_size = 3
min_size = 3
max_size = 10
}
}Pricing dimensions
What you actually pay for when you provision aws_.
| Dimension | Unit | What's being charged |
|---|---|---|
| Node instances | per instance-hour | desired_ $0.096/hour for m5.large → 3 nodes ≈ $210.24/month |
| EBS volumes on nodes | per GB-month | Each node's root/data EBS volume bills separately (gp3 ~$0.08/GB-month). Estimated as aws_ |
| EKS control plane | per hour | Billed on aws_ |
Sample C3X output
A 3-node m5.large managed node group, on-demand, running 24/7:
aws_eks_node_group.workers
└─ Node instances (Linux, on-demand) 2190 instance-hours $210.24
Monthly $210.24Optimization tips
Common ways to reduce aws_ cost without changing the workload.
Run Karpenter or Cluster Autoscaler
30 to 50% on node computeNode groups are usually sized for peak and never scaled down. Karpenter (or Cluster Autoscaler) provisions nodes to actual pod demand and removes idle ones, typically cutting node spend 30 to 50% on bursty workloads.
Use a SPOT capacity_ type node group for stateless workloads
Up to 90% on spot-eligible podsA second node group with capacity_
Right-size the instance family
~20% with Gravitonm5 → m6i/m7i is roughly the same price for more performance, and Graviton (m7g) is ~20% cheaper for ARM-compatible workloads. Match the family to whether pods are CPU-, memory-, or burst-bound.
Consolidate tiny clusters
$73/month per eliminated clusterEvery EKS cluster carries a $73/month control-plane fee. Teams running one cluster per service pay that fee many times over; namespaces on a shared cluster avoid it.
FAQ
Why does my EKS node group show as EC2 cost, not EKS cost?
Because that's how AWS bills it. Managed node groups launch standard EC2 instances; there's no separate 'node group' meter. c3x prices desired_
Does c3x price spot node groups at the spot rate?
No. Spot prices float and nodes are reclaimed, so any fixed spot number would be wrong. c3x prices a SPOT node group at the on-demand rate as a conservative ceiling, and flags it. Your real spot cost will be meaningfully lower.
Is the EKS control plane included in the node group estimate?
No. The flat $0.10/hour (~$73/month) control-plane fee bills on aws_
How is desired_ size used in the estimate?
c3x multiplies scaling_
Related resources
Estimate this resource in your own Terraform
Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including aws_.