We have seen the world change drastically due to Covid 19, over the last few months, with more businesses than ever looking to transform just to survive.
With record lows in consumer confidence, sales can be very unpredictable. Therefore, many businesses are looking to areas they can control with cost savings being high on their agenda. One area that has come under a lot of cost focus is cloud hosting costs.
Below are eight simple steps that you can use to make large savings in your cloud hosting spend.
Step 1: Know where you are today
Of course, the first step is to understand how much you are spending today and how that breaks down. Every major cloud vendor has native tools to monitor cloud spend, or you could use third party tools (such as Cloudyn, Park My Cloud, or Cloudability) or you could create your own by ingesting your cloud spending data and creating bespoke reports.
This requires very strong discipline and a process for tagging resources and having consistent naming policies. Be aware – we often find that data quality is so poor that there needs to be a clean up phase before you can actually start making changes confidently.
Step 2: Automatically scale down development environments and manually scale them up
This is perhaps the easiest and least disruptive recommendation to enact, but can save you 30-50% of your development cloud costs.
Write a script that automatically scales services down to the lowest tier service outside of office hours, i.e. evenings and weekends. If your service provisioning is scripted, then creating the environments again is a fairly trivial exercise.
Avoid automating the scale up process to keep the cost of unused services low. Developers can manually scale up specific environments the following morning, while they are making their fancy morning coffee!
Step 3: Destroy all unprotected environments automatically within a subscription
At the end of the week, create a script that automatically deletes all “unprotected” environments to prevent spend sprawl.
Whitelist the services that you need to keep and then all the rest are deleted on a schedule. This way any discretionary services or unused sandboxes do not stay enabled for months on end burning unnecessary money. If your environments are scripted, they can be easily recreated if needed, without too much effort.
Step 4: Right size your services
A key advantage of cloud computing is the ability to scale up or down, as required. However, this makes it easy to scale up services for high workloads and forget to downsize them again.
The goal is to achieve the best performance at the lowest cost by maintaining optimal compute, storage, and network provisioning. For example, using scaling to a lower tier SQL after scaling up to process a large query, or using cheaper storage for archive data.
Step 5: Share resources across environments
Many cloud services have a minimum cost and, even at this baseline tier, the services are more than you need. In this instance, it makes sense to share resources across environments instead of having one per environment.
This might not be possible for security reasons, but if you can, it can save a lot of money. You want to still design your software in a decoupled way, but share resources where you can.
Step 6: Remove legacy and unused subscriptions
You are likely to have many legacy (old) subscriptions from old projects that are no longer used. These are obvious candidates to remove and save costs.
You don’t want to be paying for subscriptions you don’t use!
Step 7: Opt for pre-buy capacity
Instead of using on demand cloud services, you can opt for reserved instances where you have workloads with consistent, predictable capacity.
A reserved instance is where you pre-buy capacity and make an upfront commitment to use a certain amount of capacity over a one to three year period. Depending on the cloud provider and the type of resources, this can be 30-70% cheaper than using on demand.
Step 8: Utilise cloud automation for precision management
There are many ways that cloud automation can help you reduce your cloud hosting costs. Three examples include:
Scripting your provisioning scripts using (Infrastructure as Code) cloud automation allows you to install, configure, and manage your computing services with precision. This will ensure that only the services that you require are created.
Automating tasks, such as backup, security, compliance, deployments, etc., can almost eliminate human intervention. This will both reduce manual errors and allow your teams to focus on higher-value activities.
Autoscaling ensures that the server capacity will automatically scale according to the measured load.
While cloud services have been a game changer, without strong governance and controls, costs can spiral out of control. Luckily, if you use the steps outlined in this article you can make some significant savings to your cloud hosting spend.