Amazon EKS — AMI Types
AMI Types for EKS
The AMI (Amazon Machine Image) determines the operating system and base configuration of your worker nodes. EKS supports several AMI types.
Available AMI Types
| AMI | OS | Description | Best For |
|---|---|---|---|
| AL2 (Amazon Linux 2) | Linux | Default EKS AMI, most tested | General workloads |
| AL2023 | Linux | Next-gen Amazon Linux | New clusters |
| Bottlerocket | Linux | Minimal container OS by AWS | Security-focused |
| Ubuntu | Linux | Canonical-maintained | Teams familiar with Ubuntu |
| Windows | Windows | Windows Server 2019/2022 | .NET workloads |
Amazon Linux 2 (Default)
managedNodeGroups:
- name: al2-nodes
instanceType: m5.large
amiFamily: AmazonLinux2 # Default
desiredCapacity: 3
Pros: Most tested, broadest compatibility, AWS support Cons: Full OS (larger attack surface than Bottlerocket)
Bottlerocket
Bottlerocket is a minimal, purpose-built OS for running containers:
managedNodeGroups:
- name: bottlerocket-nodes
instanceType: m5.large
amiFamily: Bottlerocket
desiredCapacity: 3
bottlerocket:
settings:
motd: "EKS Bottlerocket Node"
Pros:
- Minimal attack surface (no SSH by default, no package manager)
- Atomic updates (entire OS updated at once)
- Faster boot time
- Read-only root filesystem
Cons:
- Can’t install extra packages
- SSH debugging requires SSM
Comparison
| Feature | AL2 | Bottlerocket |
|---|---|---|
| SSH access | Yes | No (SSM only) |
| Package manager | yum | None |
| Update model | In-place | Atomic (A/B partition) |
| Root filesystem | Read-write | Read-only |
| Boot time | ~45 sec | ~25 sec |
| Attack surface | Medium | Minimal |
| Recommendation | General use | Security-focused |
Common Mistakes
| Mistake | Fix |
|---|---|
| Using AL2 when security requires minimal OS | Use Bottlerocket |
| Custom AMI without testing | Always test bootstrap and pod scheduling |
| Mixing AMI types without labels | Label nodes by AMI for targeted scheduling |
What’s Next?
Specialized compute: GPU & ARM Instances.