8. Choose the right storage tier
Many organisations use expensive storage tiers when not needed. Selecting the right storage tier is crucial for balancing not cost but also performance, as each tier is optimised for specific data access needs. Let’s explain this:
- High-performance tiers (Hot tier Azure) are ideal for frequently accessed data but have higher storage costs.
- Cold storage tiers are for infrequent access and long-term retention. They cost less to store but have slower retrieval times and higher access fees.
We'd recommend you to create a policy where you automatically move data between storage tiers based on its usage and age.
9. Schedule resources
While often overlooked, scheduling resources is a great practice to save you a significant slice of your cloud budget. Resource scheduling involves resource usage patterns and automating processes to shut down resources during idle periods.
In simple terms, you save drastically by shutting them down in quiet hours. In fact, there are loads of idle workloads for hours.
For example: Development environments are often used during business hours. But they can be shut down during after-hours (overnight or at weekends) to avoid unnecessary costs. If they happen to decide to work after hours, you can use automated scripts or manually start resources when needed.
Make use of analytics platforms to spot usage patterns easily. This makes automated schedules easy while also cutting cloud-budget waste (without hurting productivity).
Cloud cost optimisation tools, like Azure Advisor, can help you monitor workloads and optimise spending. The tool gives helpful insights to your costs and cost-saving practices like right-sizing or finding underused resources. But you should use it with common sense.
11. Autoscaling
Manual scaling is challenging. It's difficult to get right, and even when you think you have, you often end up over-provisioning and wasting money.
But with autoscaling you can adjust cloud resources based on workload demand. This is super useful for dynamic businesses with unpredictable workloads and changing customer demand. Autoscaling saves you time, people and money.
For example: when demand spikes, additional instances are automatically provisioned. And when demands drop, these resources are scaled down without you lifting a finger.
There are many ways to achieve autoscaling, but Kubernetes (K8s) is a great place to start. As a container orchestration system, it's designed to deploy, manage, and scale applications.
12. Continuously audit and monitor
Regular audits ensure you’re not paying for resources that have outlived their purpose in cloud environments.
Continuous auditing involves finding resources while also asking the right questions. Some resources may still be in use, but are they actually needed?
For example: you might find an application generating data no one looks at any more. Or a resource tied to a project that ended months ago. This is where conversations should take place, discussing how long it’s needed and how it’s being used.
Continuously monitor your cloud expenses. Most cloud providers offer tools to track and analyse costs in real-time. Regularly review your usage, look for anomalies, and adjust your strategy.
13. Reduce data egress fees
Data egress fees are often an overlooked cost in cloud computing. While data ingress (uploading to a region) is free, egress (downloading or moving between regions) is not. And it can cost a pretty penny and add up fast.
To manage these costs, identify popular data sets and store them in the closest region to where they're used.
For example: if you have on-premises applications that access cloud data, consider migrating those apps to the cloud. That way, data doesn't need to be transferred at all.
Implementing centralised storage also helps reduce inter-region transfers. Additionally, periodically purging stale or duplicate data reduces storage fees and overall costs.
14. Upgrade instances
As cloud providers on the get-go introduce new instances and generations within the same family, these updates are often more efficient and available at reduced prices.
Upgrade your instances to these newer versions to lower cost while keeping up with or, even better, enhancing performance. Don’t forget to review available instance upgrades regularly.
15. Leverage Reserved Instances
With Reserved instances you can reserve usage for 1 or 3 years and achieve cost savings compared to on-demand prices (with discounts up to 72%).
In Azure for example, Reserved Instances can be requested on a combination of type, region and Stock Keeping Unit (SKU).
(Great for workloads with constant resource usage).
But be careful: always have a baseline period before committing your request research. And research before you commit so you don’t lock yourself into resources or regions you may not need later.
16. Spot instances
Whereas Reserved Instances are for more predictable workloads, Spot Instances are ideal for short-term, interruptible tasks. They let you rent unused compute capacity at discounts (up to 90% off).
These are best for non-critical tasks (batch processing, rendering, or testing) where interruptions won’t disrupt your operations. But leave out critical and time-consuming ones out here.
17. Minimise downtime cost
The cost of downtime can reach extreme levels. Downtime can cost small businesses up to $427 per minute, while larger enterprises can get to a staggering $1 million an hour.
Avoid these excessive costs by proactively monitoring health metrics (such as CPU usage and latency) for early downtime signs. With predictive analytics tools, you can detect irregularities and address issues before they cause outages.
It's also essential to have a disaster recovery plan in place. This way, your business can quickly deploy additional resources to help cover systems experiencing downtime.
Disaster recovery involves spreading workloads across multiple regions, so if one area experiences an outage, your end users can still access your apps. Azure's geo-redundant storage and site replication tools can help. They can quickly recover systems so you can stay available and reduce downtime.
Closing thoughts
Cloud cost optimisation is a critical component of any cloud strategy and involves reducing expenses and aligning costs with business goals.
Following the best practices we discussed can drastically improve efficiency and give you more control and prevent unexpected costs.
Rather than seeing cloud cost optimisation as a one-time effort, we should think of it as an ongoing optimisation process.
That being said, finance and engineering teams should treat managing cloud spending as a shared priority between each other.