AWS just announced the new AWS EKS Auto Mode feature that automatically manages the scaling of the EKS nodes in an Amazon EKS cluster. This is a great start for the beginning of abstracting k8s management. I heard a lot about this feature (from the K8s community) at the beginning of the K8s Era, but it seems like it is slowly becoming a reality only now.
So far, it feels like AWS EKS Auto Mode is a great option if your team is trying to scale the EKS env but doesn't want to spend a lot of time understanding how to scale EKS nodes, basically hands-off teams.
But there are still some things to consider before enabling this, the main one is Cost.
What is the price for AWS Auto Mode?
While using AWS EKS Auto Mode, you are paying for:
- AWS EKS cluster (per hour fee) based on the cluster’s Kubernetes version. See the screenshot from the official AWS Documentation.
- AWS EKS Auto Mode (per hour fee) for the duration and type of Amazon EC2 instances launched and managed by EKS Auto Mode (for Worker Nodes). Pricing can be found in the AWS pricing calculator. Below is an example of the price in us-east-1 popular general purpose instances usage (m5.2xlarge, m5.24xlarge). Simply, there are extra management fees for the used EC2 instance type.
EC2 charges that are still applied are:
- Storage: EC2 instances come with root volumes, and additional EBS volumes are commonly used for persistent storage. EBS storage (like gp3 or io1) comes with it's pricing for storage capacity and IOPS.
- Elastic IP addresses: If you are using any Elastic IPs (for external access to worker nodes or load balancers), these are charged when not in use.
Additional EKS Costs that are staying the same:
- EBS Storage: Costs for persistent storage depend on volume type and size, as well as snapshot charges for backups.
- Fargate: For serverless Kubernetes (Fargate), you pay based on CPU and memory usage, which is cost-effective for variable workloads but may be pricier for steady workloads.
- Networking: Charges for VPC and cross-AZ/region data transfer.
- IAM Roles: While free, complex IAM configurations could incur additional costs.
- Add-ons (e.g., Helm charts, Route 53, third-party integrations)
How is EKS Auto Mode working within Spot instances ( and spot reservations)?
AWS EKS Auto Mode does support Spot Instances, but it doesn't provide native, flexible integration within a single node group. Instead, users must create separate node groups for On-Demand and Spot Instances, which require more management and configuration.
There are other considerations about the usage and pricing for AWS EKS Auto Mode.
I answered some of them, but do let me know if I missed something.
Can we leverage the Amazon EC2 instance purchase options with EKS Auto Mode?
Yes, absolutely. One-demand,Compute Savings Plans Spot instances plans are all included.
Is EKS Auto Mode similar to managed Karpenter? Or is it the same feature?
Unlike Karpenter EKS Auto Mode also manages and patches core EKS addons (CoreDNS, kube-proxy, VPC CNI) and other EBS CSI controllers and AWS load balancer controllers. Basically, as users, we are now managing fewer things.
Can I use AWS Autoscaler with EKS Auto mode?
[Update]: EKS Auto Mode uses Karpenter for compute autoscaling, which automatically provisions and scales EC2 instances based on demand. However, pod autoscaling (such as Horizontal Pod Autoscaler - HPA) must still be configured by the user.
My example here will be the case if your service isn't designed to tolerate disruptions. Scaling operations (like adding or removing nodes) can cause disruptions to running workloads, especially when nodes are drained or replaced.
Can EKS Auto Mode be enabled on the current clusters?
- Yes, this AWS official article shows steps on how to do it manually, so you can get an idea, but do not follow this and use any IaC to enable it.
If EKS Auto Mode is enabled on the current clusters, can I disable it?
- Yes, here is the AWS official article and how-to are here
Terraform support?
- It is coming the terraform PR is on the way.
In short, AWS EKS Auto Mode is great for simplifying management, but it’s important to understand the pricing structure and consider your scaling needs.