Each of the "Big Three" public cloud providers offers a managed Kubernetes service — AWS has EKS, Microsoft Azure offers AKS, and Google Cloud provides GKE — and each of them does basically the same thing: They let customers run containerized workloads on managed infrastructure.
But the pricing of EKS, AKS, and GKE varies a bit. Depending on your workload requirements, one service may deliver better bang for your buck than another.
Keep reading for a cost comparison of EKS, AKS, and GKE and tips on finding the most cost-effective managed Kubernetes service.
What Are EKS, AKS, and GKE?
EKS, AKS, and GKE are the managed Kubernetes services of the Amazon, Azure, and Google public clouds, respectively.
Each service is designed to let customers deploy containers and orchestrate them with Kubernetes. The Kubernetes control plane is provided as a managed service, which means customers don't have to install and set up Kubernetes themselves.
In addition, in most cases customers can optionally select automated provisioning and management of the nodes that host their containers. This eliminates the need to configure and scale nodes manually.
EKS, AKS, and GKE Pricing Basics
In general, pricing of EKS, AKS, and GKE is based on three main variables (although, as we explain below, some additional cost variables may come into play depending on your cluster configurations):
- The amount of time your Kubernetes cluster(s) run. In most cases, you will pay a flat hourly fee for every hour that your cluster is operational. The fee – which the cloud vendors refer to as a cluster management fee – is the same regardless of the size of your clusters or what you have running in them. (As we'll see below, in some cases the hourly cluster fee can be avoided.)
- The amount of host infrastructure your workloads consume. This fee is generally equivalent to the cost of VM instances. For instance, the cost of each node in an Amazon EKS cluster is the same as the cost of running an Amazon EC2 VM instance configured with the same memory and CPU resources as the EKS node. In most cases, you can select reserved or spot instances to save on node hosting costs.
- Data egress fees. You pay these fees for data that is transferred out of your Kubernetes cluster. The egress fees are typically the same as those you'd pay for any type of outbound data transfer from any cloud service on the cloud platform that hosts your clusters.
Each of the cloud providers offers cost calculators, which you can use if you want a specific approximation of how much a given workload will cost to run on EKS, AKS, or GKE.
Key Pricing Differences Between EKS, AKS, and GKE
Broadly speaking, EKS, AKS, and GKE pricing are comparable. But there are a few important differences, which may or may not apply based on your workload configuration.
Infrastructure management fees
EKS and GKE offer optional services that allow customers to auto-scale the infrastructure that hosts their Kubernetes clusters. The main EKS offering in this vein is called Fargate. On GKE, it's called Autopilot.
When you choose one of these services, pricing is based on the total CPU and memory resources that your workloads consume, and the pricing for these resources is distinct from (and, typically, more expensive than) what you'd pay for equivalent VM instances.
So, if you opt to outsource Kubernetes infrastructure management (in addition to control plane management) totally to your cloud vendor, you'll pay a bit more.
Cluster management fees
As noted above, most managed Kubernetes services charge an hourly fee for each hour that your cluster is operational. Currently, that fee is $0.10/hour on both EKS and GKE.
AKS doesn't charge a mandatory cluster management fee. However, if you want an uptime SLA on AKS, you have to pay a cluster management fee of $0.10/hour per cluster.
Note, too, that GKE offers a free tier that covers the cost of one cluster per month. So, if you only run one cluster, you effectively don't have to pay a cluster management fee.
Ingress and IP configurations
In certain cases you may have to pay extra for special networking configurations.
In GKE, there are additional fees for multi-cluster ingress, which allows you to distribute network load across multiple GKE clusters or regions.
AKS also charges additional network-related fees if you opt to configure instance-level, reserved or load-balanced IP addresses for your clusters. There is no special AKS networking fee if you choose virtual dynamic IP addresses.
GKE offers a special backup service that you can optimally purchase. The fees are based on how many Kubernetes Pods you have in your clusters, as well as how much total backup storage you consume.
EKS and AKS don't have dedicated backup services. You can configure backup on your own, paying whatever it costs you to run backup software and store the backup data. But you won't pay a backup fee that is directly related to the EKS and AKS services.
Saving Money on Managed Kubernetes Service
Because of all of the cost variables described above, it's very difficult to make an apples-to-apples comparison between EKS, AKS, and GKE on price. The only surefire way to know which service will cost the least is to calculate pricing based on your workloads' specific requirements.
That said, it's possible generalize about which service offers the best pricing based on different needs:
- EKS is likely to be cheapest if you don't need managed backup for your clusters and you are running multiple clusters. (If you have just one cluster, you could avoid the cluster management fee by choosing GKE or opting not to have an SLA under AKS.)
- AKS is likely to be cheapest if you don't need a complex networking configuration and you don't want fully managed infrastructure.
- GKE is likely to be cheapest if you have only one cluster (in which case you avoid the cluster management fee) and you have a simple networking and load-balancing configuration.
Note, too, that you can save substantial amounts of money on EKS, AKS, and GKE by taking advantage of reserved or spot instances for your host nodes. Taking steps to reduce your egress fees by minimizing the extent to which data flows out of your clusters will help reduce costs, too. And, of course, observing your Kubernetes workloads to ensure that they are not wasting resources will help you strike an optimal balance between price and performance, no matter which managed Kubernetes service you choose.
About the authorChristopher Tozzi is a technology analyst with subject matter expertise in cloud computing, application development, open source software, virtualization, containers and more. He also lectures at a major university in the Albany, New York, area. His book, “For Fun and Profit: A History of the Free and Open Source Software Revolution,” was published by MIT Press.