Free — no signup required

Node Groups: Managed, Self-Managed, and Fargate

2 min read

Three Ways to Run Your Workloads

Before diving into networking, it is important to understand the three distinct ways EKS can run your pods, because the choice affects cost, operational burden, and capability.

1. Managed Node Groups (MNG)
AWS provisions and manages EC2 instances for you. You define the instance type, AMI, and scaling bounds. AWS handles:
- Launching nodes with the correct EKS-optimized AMI
- Draining nodes gracefully before termination
- Rolling updates when you change the node group configuration

This is the most common choice for general workloads. You still pay for the EC2 instances, but the operational overhead of node lifecycle management is reduced significantly.

2. Self-Managed Node Groups
You manage the EC2 instances yourself using an Auto Scaling Group. You are responsible for:
- Choosing and updating the AMI
- Bootstrapping nodes to join the cluster
- Draining nodes before termination

Use this when you need deep customization — custom AMIs, specific kernel parameters, or instance types not yet supported by Managed Node Groups.

3. AWS Fargate
There are no EC2 nodes at all. AWS runs each pod in its own isolated micro-VM. You define a Fargate Profile that matches pods by namespace and labels, and AWS handles all underlying infrastructure.

  • Pro: Zero node management. No patching, no capacity planning.
  • Con: No DaemonSets, no privileged containers, no GPU support, higher per-pod cost, and cold start latency.
  • Best for: Batch jobs, infrequent workloads, or teams that want to eliminate node operations entirely.
Managed Node Groups Self-Managed Fargate
Node patching AWS-assisted You AWS
DaemonSets
GPU support
Cost model EC2 EC2 Per pod vCPU/memory
Customization Medium High Low

This is one of 18 chapters

Get every chapter — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

See pricing