The cloud provides an easily accessible platform for developers and businesses to jump-start ideas rapidly. It is not only quick to set up, with no lead times for purchasing, installing, and testing equipment, but it is also a low-cost starting point with a Pay-As-You-Go (PAYG) model.
Particularly the low cost of entry can be misleading when systems transition from the early stages of Proof-Of-Concept (POC) or development into a more mature product that is launched into the wild and now used by customers on a daily basis. Small inefficiencies that were acceptable in an initial jerry-rigging POC to get the system off the ground, become far more noticeable when usage goes up and more data is stored and transferred, compute resource requirements increase and serverless executions multiply.
Bringing cloud costs under control is crucial for businesses to continue to flourish in the cloud so that budget is used efficiently to support further development and growth. Here are 8 of the top strategies to minimise unnecessary cloud expenditure.
Perhaps one of the more important, and certainly one of the easiest, solutions is right-sizing, which refers to using the right instance type and size for your workloads. For example, if your instance metrics show that the CPU usage is running consistently either below 5% or over 75%, you should consider scaling your instance so that the CPU usage is neither too high nor too low. This is the concept of right-sizing, or finding the ‘Goldilocks’ instance which comfortably manages the capacity requirements without being over- or under-provisioned. This is most effective when workloads or systems are well-established or predictable.
In conjunction with right-sizing, Savings Plans and Reserved Instances provide a means to secure reduced rates for resources when able to commit to a longer period. The kicker is precisely that, however, as you have to commit to periods of a year at a minimum, and up to three years to get the best discounts. By reviewing your workloads and understanding the available options, you can choose between cost-savings, flexibility, and future planning.
Spot instances are unused cloud resources, often purchased as reserved instances and then not required for the duration, which are made available for other users to bid to buy capacity. This marketplace allows those with long-term commitments they don’t need to recoup some of their upfront investment, and for users wanting ad-hoc capacity to get heavily discounted rates. Buyers can set a desired price for a certain capacity requirement, and when an available instance price drops below that price, it is automatically purchased and put into use in that user’s environment, based on their configurations.
Spot instances are however only intended for use with non-critical workloads or bulk processing, as the availability of spot instances is not guaranteed and can be terminated at any time. With this unpredictability comes significant savings, as spot instances are typically markedly cheaper than on-demand resources.
Auto-scaling is the practice of dynamically adjusting resources based on your current demand. This can be based upon periodic batch processing, user volumes, response times, or other metrics that are appropriate for your workloads. These schedules can be fixed but typically would operate automatically based on predefined criteria to optimise performance and cost. This ensures that during quiet periods, you do not run unnecessary resources while retaining the ability to scale up at short notice should the demands on the system increase. Auto-scaling is a fairly low-hanging fruit in the cost optimisation paradigm, as it can be implemented transparently without requiring long-term commitments or even materially modifying the solution, instance types, or available resources. A solid implementation of auto-scaling changes the PAYG model to a Pay-As-You-Need approach where your system constantly adjusts resources to meet but not exceed your needs, thus dramatically improving cost efficiency.
Everyone needs a development environment, and hopefully, everyone makes good use of a test environment. However, these environments are typically fairly low-use, low-resource, and will already be scaled proportionally. This does not make them suitable candidates for auto-scaling, long-term commitments like reserved instances or savings plans, but instead, they have very predictable operating hours. These types of environments and resources are usually not in use outside of the working day, meaning that after the 9-to-5 routine on the weekdays, they’re likely to sit idle and could instead be shut down. By scheduling these resources to stop and start as needed, their uptime can be cut by as much as 75%, with a significant cut in costs.
Primarily effective for solutions employing substantial quantities of blob storage, storage tiering allows for objects to be put into lower-cost tiers when they are not frequently retrieved or don’t need low latency retrieval. For example, infrequently accessed files can be moved to storage tiers that charge more per retrieval but less to store per day, which can work out more cost-efficiently. Or backups can be put into cold storage which is materially cheaper than warm storage. Lifecycle policies can be used to automatically move tiers or delete items based on predefined criteria.
Cloud providers have developed extensive managed service offerings to provide an easy-to-access and low-cost solution for setting up workloads in the cloud. A typical example would be serverless solutions like AWS’s Lambda and Azure’s Functions, which abstract the underlying infrastructure. These types of services are typically offered on a Pay-as-you-go pricing model which provides unparalleled low costs of entry.
Every comprehensive cost optimisation strategy involves some form of basic cost tracking. To know where you spend the most, and thus have the biggest opportunity to make an impact on your cost, you first have to track it. Cost tagging enables you to add tags to resources to identify it in the cost explorer. Further to a previous example about cutting out idle resources, cost tagging can help identify unexpected costs in areas that were previously thought to be highly efficient. Identifying the drivers of cost is the first step in reducing them, even if it isn’t very exciting.
Although the tools are the same for every context, there is no ‘one-size-fits-all’ approach to cost optimisation in the cloud. It’s a process that requires a clear and detailed understanding of your environment, usage load, requirements, and priorities and to then meticulously apply that to the cost model to identify areas where improvements can be made and implement suitable solutions.
With the dizzying array of services and solutions offered by cloud platforms, there are additional complexities when it comes to managing cost and performance. Understanding the intricacies of resourcing for different service types is vital to ensure an efficient cost control across the cloud estate, so that both performance and cost-effectiveness are improved.
The Cloud Services process at The Virtual Forge is a collaborative and iterative process, designed to expertly advise, manage and operationalise the solution that best fits your needs. Feel to reach out to us at connect@thevirtualforge.com to speak to one of our experts to learn more or see how we can help.
Have a project in mind? No need to be shy, drop us a note and tell us how we can help realise your vision.