We have heard from our customers repeatedly that the cost of their public cloud deployment has gone beyond their expectations and they are really trying hard to curtail it. It is almost impossible to find a customer who is happy with their public cloud cost and is not trying to reduce it. So why does this happen when people pretty much know what they are signing up for from Day 1.
Here are some specific reasons we have seen for the cost sprawl over time:
- Pay-as-you-go pricing: Many public cloud providers charge users based on the resources they consume, such as the number of virtual machines, storage, and data transfer. As a user’s workloads and data grow, the cost of these resources can also increase.
It is not uncommon to see that the total cloud cost is almost double of the actual EC2 (compute) and EBS (storage) cost, which is the main focus of most customers.
- Resource sprawl: It can be easy for users to lose track of the resources they have deployed in the cloud, leading to unnecessary expenses. For example, users might spin up a large number of virtual machines that are not being fully utilized, or they might forget to delete old resources that are no longer needed.
This also happens with the new cloud native applications where it is easy to spin up more VMs or containers for performance or reliability or both. This also requires multiple load balances, for all the microservices that customers deploy.
- Lack of optimization: Users might not be using the most cost-effective resources or configurations for their workloads, leading to higher costs. For example, users might be using more expensive storage options or larger virtual machines than necessary. No one wants to deal with a production outage or performance issues when the problems can be fixed by spinning up more instances or larger sized VMs.
- Data transfer costs: Moving data in and out of the cloud can be expensive, particularly for users with large amounts of data or those who transfer data frequently. This is one of the most unexpected cost item that customers didn’t expect but it starts to grow very quickly if you are hosting any resources that are large like a video or audio file and is exposed publicly. In a real example, we found that some promotional videos that were part of a consumer mobile application, were costing close to five thousand dollars in terms of egress cost and just hosting them at a place with fixed egress cost per month, saved 90% of the cost.
- Consistent resource usage: Public cloud providers often charge users based on the resources they consume, such as the number of virtual machines, amount of storage on an hourly basis. While this is very useful for bursty workloads, this really hurts the workloads that run 24/7. In many customer environments, a test & dev workload falls in the same category as they are running CI infrastructure that is never idle. As a user’s resource consumption increases, the cost of using the cloud also increases linearly.
- Using specialized resources: Some public clouds offer specialized resources, such as GPU based instances or FPGAs, that can be more expensive to consume than other types of resources. Public cloud vendors have to spend a lot of upfront capital to make these available in hope of customers using them later on. So if a customer has a consistent need, they are better off building their own cluster and using them.
These reasons also lead to a class of applications that are most expensive on a public cloud. Here is a list of some of them:
- Data-intensive applications: Applications that require a lot of data storage or transfer, such as big data analytics or media streaming, can be expensive to run on a public cloud due to the cost of storage and data transfer.
- High-performance computing applications: Applications that require specialized resources, such as GPUs or FPGAs, or a large number of high-performance virtual machines can be more expensive to run on a public cloud.
- Applications with high or consistent usage patterns: Applications that have a lot of users or that are accessed frequently can be more expensive to run on a public cloud due to the cost of the resources required to support the workload.
Finally, to help control costs, it’s important for users to carefully monitor their resource usage, optimize their configurations, and use cost management tools provided by the cloud provider.
There is no silver bullet here but looking at some hybrid cloud solutions can also give an edge to the customers in better controlling their cloud costs.