Denys Rudyi - Fotolia
Amazon Elastic Kubernetes Service, or EKS, is a major contender in the realm of managed Kubernetes services. It's...
easy to deploy and highly scalable. It also offers hybrid cloud support via AWS Outposts and EKS Anywhere.
It can be difficult, however, to evaluate and compare EKS pricing to alternative services, such as Azure Kubernetes Service (AKS) and Google Kubernetes Engine (GKE). The pricing formulas are complex and costs can vary depending on factors such as whether you use AWS Fargate in conjunction with EKS. Additionally, there is no free tier support for EKS Anywhere, which makes it more challenging to sort through EKS pricing since you can't test out the product for free before committing to a paid plan.
That said, an understanding of the basic EKS pricing structure can help teams determine whether the managed Kubernetes service is a good fit for their budget and workloads.
EKS pricing basics
EKS splits management responsibilities between the cluster control plane and worker nodes. AWS deploys and runs the former, and users handle the latter.
Unlike some managed Kubernetes services, EKS automatically creates a highly available cluster with control plane nodes dispersed across three Availability Zones in an AWS Region. The service also manages Kubernetes upgrades and patches, and automatically detects and replaces unhealthy control plane nodes. All this functionality is offered at no extra cost.
On the other hand, upon cluster creation, users must provision -- and pay for -- worker nodes as EC2 instances and connect them to the EKS endpoint, unless they use Fargate mode.
Baseline prices are critical to understanding the EKS pricing model, which is as follows:
Control plane: $0.10 per hour of use, per cluster.
Worker nodes: Unless you use Fargate mode, you pay standard EC2 prices for nodes. Standard pricing also applies for any other Amazon services consumed by your nodes, such as Elastic Block Store volumes used in the cluster.
With Kubernetes namespaces, you can create virtual clusters to define access controls and security policies. This enables you to host multiple applications in a single cluster. Where AWS limits accounts to three EKS clusters, it is expected to share between applications. You don't need to deploy a separate cluster -- and pay separate control plane fees -- for each application or workload.
Currently, EKS supports a maximum of 1,000 nodes, which enables applications with massive resource demands to coexist.
Walk through a pricing example
Let's illustrate EKS' pricing model with a simple example for a 12-node cluster. This EKS model uses four variations with two different instance sizes for the worker nodes. It calculates both On-Demand and three-year Reserved Instance (RI) pricing with no prepayment. This example assumes the cluster operates all year long and thus would see a substantial discount of between 42% and 51% by using RIs.
Realistically, this containerized workload example would assume more sporadic usage, in which the cluster only deploys when needed and automatically scales up and down. RIs are much less valuable in this situation.
To perform a cost estimate for this type of dynamic workload, prorate the numbers above by the average number of hours per week and average number of nodes per cluster. For example, if the average cluster size is 10, instead of 12, and only operates 80 hours a week, not 168, the annual cost for an m5.xlarge On-Demand cluster would be $8,699.61 -- less than half of the above price.
Compare with the competition
It is difficult to compare prices for managed Kubernetes across AWS, Azure and Google, as they all use different billing models and instance sizes. But we can calculate the annual costs for similarly sized Kubernetes clusters on AKS and GKE.
Like EKS, these services charge $0.10 per hour in cluster management fees. For AKS, this fee only applies if you opt into AKS' SLA uptime guarantee. Otherwise, a cluster management fee is not charged. In general, the cluster management fees will be the same on each service.
The node fees can vary. The table below includes comparable VM instances from the cloud providers, but the sizes aren't identical. For Azure, both on-demand and three-year reserved pricing are cited. In contrast, Google Cloud automatically builds sustained use discounts into persistent workloads, which is reflected in the on-demand pricing. For the three-year reserved price comparison, there is a 57% committed use discount for Google instances. In all three cases, assume clusters operate continuously for a full year.
GKE is substantially less expensive than either of its competitors. This is not only due to its basic rates for VM instances, but also for its automatically applied sustained use discounts. Keep in mind the various implementation differences, notably EKS' high availability, which would increase the cost for other cloud providers when you apply an equivalent configuration.
While EKS might not be the cheapest option, it provides tight integration with other Amazon cloud services and works with existing Virtual Private Cloud networks, as well as Identity and Access Management security policies.
EKS Fargate pricing
EKS pricing is different if you use Fargate mode. This mode enables you to deploy workloads on EKS without setting up nodes as EC2 instances. Instead, Fargate automatically provisions node infrastructure.
With Fargate, you don't pay EC2 costs or the costs of associated resources like EBS volumes. Instead, you pay a fixed rate based on the compute and storage resources your workloads consume. Currently, the Fargate fees in the U.S. East (Ohio) region are as follows:
- $0.04048 per vCPU per hour
- $0.004445 per GB per hour
Due to this flat, consumption-based pricing model, Fargate could save you money if you have workloads with fluctuating or unpredictable resource requirements. Fargate enables you to deploy those workloads without provisioning and paying for EC2 instances that are larger than you need.
AWS Outposts and EKS Anywhere pricing
If you have a hybrid environment and want to use EKS to manage on-premises servers, you can use either AWS Outposts or EKS Anywhere.
With Outposts, you pay the $0.10 per hour cluster management fee, in addition to your Outposts infrastructure costs. This fee is paid to AWS because AWS supplies the hardware for Outposts. There are no extra fees related to EKS.
With EKS Anywhere, you don't have to pay any fees to AWS -- not even a cluster management fee. You deploy EKS Anywhere on your own infrastructure, so your infrastructure costs are whatever you spend for the servers you use. You can, however, optionally sign up for an EKS Anywhere Support Subscription, with cost starting at $24,000 per year. Standard EKS comes with basic support at no additional charge.
Editor's note: This article on EKS pricing was originally written by Kurt Marko in 2018, and then updated and expanded by Chris Tozzi in 2022. Kurt Marko was a longtime TechTarget contributor who passed away in January 2022. He was an experienced IT analyst and consultant, a role in which he applied his broad and deep knowledge of enterprise IT architectures. You can explore all the articles he authored for TechTarget on his contributor page.