If you have planned to deploy your infrastructure on Kubernetes, you quickly faced with the puzzle of the choice.
Control your own Kubernetes by installing it in your own on-premise Data Center? This requires a dedicated DevOps team and plenty of time to manage it.
Use Managed Services (“Managed Kubernetes”)? This relieves you of certain tasks and allows you to better focus on your job, where you have a real added value.
Or install and manage Kubernetes on conventional cloud services, so using virtual machine services, Load Balancer, DNS, etc … It’s an in-between that allows you to unload parts of the administration tasks of infrastructure, but not Kubernetes. Tools like kops and Terraform, for example, make it easy for you, but there is still a lot of work to be done. By cons, in terms of cost, it is probably the cheapest solution in euros, but not in human cost.
In this article, I will focus on the managed Kubernetes option. Once this choice is made, a question arises: which cloud provider to choose? Here we will only talk about the three main ones: AWS (Amazon Web Services), GCP (Google Cloud Platform) and Azure (Microsoft).
Each offers its own managed Kubernetes offer:
- EKS for AWS,
- GKE for GCP,
- AKS for Azure.
The business model globally relies on leasing virtual machines for nodes. AWS also charges the virtual machine used for the master while Azure and Google do not charge it. This makes a difference on the overall cost. And this difference increases with the addition of clusters.
So we’re going to make a cost comparison based on similar virtual machines, as you see here:
- for AWS: scenario 1 with t2.large (2 vCPU, 8GB RAM) and scenario 2 with m5.xlarge (4 vCPU, 16GB RAM),
- for Google: scenario 1 with n1-standard-4 (4 vCPUs, 15GB RAM) and scenario 2 with n1-standard-2 (2 vCPUs, RAM 7.50GB),
- for Azure: scenario 1 with D2 v2 (2 vCPUs, 8 GB RAM, 50 GB storage) and scenario 2 with D4 v3 (4 vCPUs, 16 GB RAM, 100 GB storage).
Here is the result of the comparison for 1 cluster and 3 nodes (hourly rates, worker nodes annual costs for 2 instance type for on-demand and 3-year RI plans):
Here are some explanations to read this table:
- Typical Instance is the instance type of the virtual machine,
- On-demand is the non-binding offer of virtual machines,
3-year RI (Reserved Instance) is the lease offer for a virtual machine with a 3-year commitment,
- Control plan / cluster is the master.
- Only the costs of renting the virtual machines and the master have been integrated.
These tables make it possible to draw several conclusions:
- The cost of the cluster for AWS plumbs the finances.
- GCP is clearly the cheapest offer as well for the offer without commitment as with commitment over 3 years.
- Azure is more expensive than AWS offers on demand but less expensive on offer with commitment over 3 years.
However, beyond the purely financial criteria, AWS has the advantage of the huge cloud service offering that can benefit the managed Kubernetes service.
However, it is clear that GCP is a very good candidate for anyone who wants to discover Kubernetes without lightening their wallet.
I presented here the result of my research. If you have any clarifications or corrections to make to this article, do not hesitate. Cost estimation can be a difficult exercise in the cloud world.