Cloud suppliers for Kubernetes Clusters — a pricing guide
The IT environment has stepped into a new culture. The culture of Cloud. Not so long ago, each company had to become Agile, as that was the expectation of the culture, management and the people. Every company, team and project that was not agile was seen as evil and doomed for refactorization. It didn’t matter whether the character of the project, tasks or people were suitable for this kind of organization.
Embracing Cloud Culture
Now, a new era has dawned and we have proudly stepped into Cloud culture. We all are blindly marching into a new trend. Most of us already have seen companies that barely understand the idea of cloud architecture. Many times huge budgets are dedicated to moving old, monolith applications to cloud environments. Rarely are these companies intending to use all the benefits of such an architecture. They scale terribly, they serve a few clients in a local region, and they are entirely not cost-optimized. Often all that companies achieve is to scale costs, destroy the availability of their budgets and stream the cash flow into oblivion.
But cloud architecture isn’t for everyone
Not all business models are suitable for cloud architecture as they simply will not benefit from the huge task of moving a project into the cloud. Especially when the decision has been taken without experience, based solely on the movement’s popularity. Such rapid decisions may even lead some major companies to move back to hybrid or on-premise architecture in order to cut losses. Still, the technology itself is a great opportunity for a scalable, secure, available, global environment that could be perfect for our rocket exploding project. It can save us a lot of trouble, cut problems with human resources in DevOps departments, or make our startup advance with fewer problems
Understanding the risks and opportunities of Cloud architecture
The right way to go is to grab a calculator and with a full understanding of risks and opportunities of moving to the Cloud rather than making a rash decision. There are many resources to support us. There’s no shame in asking for advice from experienced teams to make that decision safely. Some of the questions that you might ask are:
- Is the cloud a perfect match for us?
- Is it better to choose one of the “big three” providers or others might meet our demands?
Hopefully, the below calculations could be a good start for making a decision between various Cloud suppliers for Kubernetes clusters.
Deciding between different Cloud suppliers for Kubernetes clusters - an useful tool
Please bear in mind that I had to make several assumptions and simplifications in order to make a general and fair comparison. Also note that the price is very dependent on the project specification, especially when it comes to the high amount of egress data, high-performance computing and use of particular cloud services.
Mostly European regions have been chosen. As the ratio prices differ considerably by region, it would be unfair to stay in the same region for each provider. Therefore regions have been selected to favour the current provider. However, depending on your need, you might not be able to choose one of the smaller providers as it simply won't be present where you need it or prices in the specific region might be higher. Also in the comparison, attention was only placed onto the price of the Kubernetes cluster and other significant aspects such as stability, accessibility, support and additional services were ignored.
Similar calculations were made by Sid Palas in March 2020 in the jupyter notebook. As it’s best not to reinvent the wheel, I decided to update data and add new, smaller players such as Linode, Digital Ocean and Civo to better grasp the current market situation. Please use the notebook to adjust calculations to your will and check other configurations.
Smaller Cloud suppliers offer better prices
As we can in the diagrams the smaller providers offer much better prices. It may be especially noticeable for companies with compact clusters or numerous clusters. This is because there is an obligatory payment for management clusters in GKE and EKS which is as high as $0.1 per hour per cluster. It’s also visible that prices for main providers are a fair bit higher in this iteration and they also feature a high price for egress data particularly GKE.
Commitment discounts offered by larger Cloud providers
In defence of the big three Cloud providers, they are the only ones to allow us to use commitment discounts and spot instances which can save us approximately 40% in case of a 1-year commitment, and 60% in case of a 3-year commitment. We also can choose low priority spot instances which let us save almost 80%. On the other hand, a balance between those plans and normal compute instances might be quite hard. Many companies struggle to make proper adjustments due to fear, optimism or lack of patterns in their business model. Potential savings on those commitment plans highly depend on the type of the project.
As we can see it’s possible to reduce our cost for compute resources and make them closer to what we would pay on providers from the lower part of the diagram. Nevertheless, even in a case of well-optimized cost, those figures still would be higher on the big three than on the new competitors.
The prodigious cost of data egress
One more crucial aspect of cost estimation is the prodigious cost of data egress and that’s where small providers shine. Once your cluster starts to increase data traffic, costs can rapidly mount. That would not be the case if we have our clusters managed by Linode, Civo or Digital Ocean. With the growing amount of functionalities and availability, they might be a perfect match for startups, smaller companies and maybe big players who would choose innovation and cost optimization over the stability and safety of the biggest providers.
The verdict on Cloud provider costs
In the end, it’s impossible to give an unequivocal verdict. It could be a good idea to use a fleet of spot instances on AWS for batch processing, but for projects that will not benefit from various cloud services with big data transfer, Linode might be simply a better choice. As presented above, the price for a managed Kubernetes cluster would highly depend on our expectations and the detailed characterization of the project.
Ultimately, the best idea is to create estimation using providers' free calculators. The good news is that the competition is rising and we can also move our clusters into providers like Scaleway, Vultr, IBM, Oracle Cloud, Alibaba etc. Therefore sooner or later we should see options that are more stable, cheaper and competitive.