Businesses have been migrating to the cloud for quite a while: according to statistics, 94% of companies use cloud technologies, which accommodate 67% of their IT infrastructure. The cloud computing market reached $480 billion in 2022, and it keeps growing. Clouds have many advantages, which include not only their own hardware and almost unlimited capacity, but also their ability to rapidly scale following company needs and higher safety than on-premise solutions.
Cloud services can reduce the company’s IT budget significantly by replacing the burden of infrastructure capital costs with flexible subscription-model usage rates. However, is not always evident how to analyze and control expenses for the cloud. For this reason, many organizations began to introduce FinOps practices. We have decided to make our contribution and give you some practical tips on how to take control over bills from AWS, Google Cloud, Azure, and other cloud services.
Start with structuring your costs and figuring out what exactly you pay the cloud provider for. Usually, they give rather detailed information on what makes up your monthly bill. Moreover, most major providers have special tools to control costs, such as Cost Management from Google and Microsoft, or AWS Cost Explorer from Amazon.
Create a top-down cost structure: first, identify the main accounts that generate the costs, then sort the services within these accounts by descending. The next level of detail is at the particular resources level. In many cloud services, you can identify data for analysis with tags, for example, allocate costs across projects or departments. As a result, you will have a big-picture view of the main cloud cost producers. They have the greatest potential for optimization, so take a very close look at them.
Having analyzed your most significant expenses, you will surely have found services that you do not use. These can be virtual machines created for a test project, or so-called zombie-instances – old tasks that continue to run and spend computing resources at your expense. File repositories are often overlooked, too. Look at the date of last access to the disk–if no one is using it for a long time, the data stored there may well be no longer needed.
Getting rid of what you don’t need is a process that should be approached thoughtfully, with a cool head, so as not to accidentally lose important information or an important application. This is especially true for virtual machines: before disconnecting them, double-check whether it would affect other related systems.
One way to optimize the cost of the cloud service is to choose the storage class that is appropriate for your business. These are levels of data availability: the faster the data can be extracted from the storage, the more expensive its cost. Not all files need real-time availability: for example, archival data, backups, and other types of information can be obtained with delay.
Cloud providers usually offer several options of storage classes–from the most expensive quick access to deep archiving with time to recover data of a few hours. Amazon, for instance, has a S3 Intelligent-Tiering that automatically controls the class and price of data storage based on data demand and usage patterns.
Are you sure you need all those applications running in the cloud 24/7? Of course, commercial systems and critically important software should always be available. But what about the virtual machines used by developers, or the apps that only a few people in the office need?
Weekends and nights can account for up to 50% of total cloud computing time. Unlike your own server, which is much cheaper even when working around the clock, cloud load is billed by time. To reduce costs, you can configure scheduled activation of some applications and automatic launch and shut down of development environments.
Another way to save money is to specify the exact amount of memory and computing resources available to each application. Default parameters usually include a reserve, so it makes sense to bring them as close as possible to reality and base the numbers on accumulated data.
The poorly optimized system not only dissatisfies users but also consumes more hardware resources, such as CPU, RAM, network, input/output, etc. And even a cloud service provider will be happy to allocate you higher capacities, be sure you will pay for this. To find out how much resources the application needs, you should conduct scalability testing. Based on its results you could reveal weak points and optimize the code, and therefore reduce cloud costs.
Another thing to consider is autoscaling parameters. Many cloud service providers offer an autoscaling feature, which automatically allocates more resources when your app needs them. This seems fair enough: the more resources you use, the more you pay. But how heavy should be the load to trigger such scaling and how much will the increase be? Incorrect autoscale parameters can cause uncontrolled growth of allocated capacities which comes at a serious price. To avoid this, you should test your autoscale configuration with one of the specialized tools, such as the PFLB platform.
What type of performance testing do you need?
Find out on a free consultation with our experts.
One of the advantages of the cloud is its flexibility in scaling: an increase of resources available to the company takes a few moments and can be automated. Automated scaling is marketed by large providers as an option that helps cut costs, as your system receives exactly as many resources as it needs at any given point in time. However, we recommend a differentiated approach to this service.
In some cases, a significant increase in the consumed resources indicates the malfunctioning of the software. Businesses can incur additional costs for critical systems which are needed 24/7, but if the overuse is caused by an app in the testing environment or an auxiliary virtual machine, it should not cost you a fortune.
Almost every cloud service provider offers various technical support plans. Check how your employees use the service’s technical consultants’ support over the past few months–you may be paying for services no one uses. For a small business or a young startup, free support should be enough–it works rather well with all the providers.
When cloud services have no use for free resources, they sell them at very competitive prices. Such spot instances are unpredictable and unlikely to be suitable for critical or resource-intensive tasks, but if you need to run a small batch task, try looking out for a hot offer.
Reserved instances are the complete opposite of spot instances. They are your stock–your prepaid cloud power slots that you have to use in a specified time frame. They usually allow only certain tasks and have limitations on accessibility and the area of use. However, if you regularly run the same load in the cloud, prepaid instances will help to save: discounts can reach 75%.
Since software in the cloud has to be paid for, it makes sense to look for ways to reduce these costs, too. For example, Microsoft Azure has a hybrid licensing program for servers and databases, while AWS offers different versions of Amazon Machine Image licenses through its marketplace.
Technical tools to optimize cloud costs are not the only way: there are organizational measures to be taken, too. The bigger the company, the more employees can run tasks in the cloud and thus influence the bill from the provider. To manage cloud costs, you need to be able to relate them to company departments and specific employees. You can use tags and other attribute tools provided by cloud services. Each task performed should be considered and monitored within the budget available to the responsible staff member.
Cloud cost management should be in the focus of your attention both if you work for a small startup or a transnational corporation. Proactive management of the cloud environment allows you to get the most out of it, effectively using every dollar paid. In this article, we have collected the most obvious ways to optimize your expenses in the cloud, but there is no limit to perfection in this matter. To achieve the best results, study the offers of providers closely, combine cloud services, optimize the load–and approach the process creatively, not dogmatically.