Now that public cloud is omnipresent, companies are enjoying the numerous benefits—including flexibility, agility, and ease of innovation—that cloud computing makes possible. As we discussed in a recent blog article, however, now that cloud adoption has become pervasive in the majority of small and medium companies, many teams are finding themselves struggling to manage increasingly complex and fragmented multi-cloud environments.
Today, an estimated one-third of cloud spending is wasted, but recognizing which resources are underutilized (and which are mission-critical) is no easy task. That’s why we wanted to provide you with a playbook with expert tips on how to organize and optimize your cloud. By managing complexity, you’ll also be able to control your costs—and ensure you’re taking full advantage of the business value your cloud resources can bring.
Here are our top seven tips for right sizing your cloud resources:
As a first step in gaining control over your cloud environment, we recommend that you implement a tagging policy. This means marking every cloud resource in your environment with a key value pair that provides information about that resource. This information can help you understand how your costs are currently allocated, which is an essential foundation for justifying and optimizing them.
Tags can include information about:
Tagging alone won’t reduce your cloud costs. But it’s an important tool that can help you figure out how to reduce them. Once you know who owns a resource, you’ll know who to ask all the questions that we’ll raise in the remainder of this article.
Tagging can be completed with first-party tools offered by your public cloud provider, or within your cloud configuration management database (CMDB). No matter where you do it, you should be accurate and consistent, eventually applying tags to all cloud resources within your organization.
An example of useful native public cloud management solutions includes landing zones by AWS, which can be set up using AWS Control Tower. Landing Zones help govern a secure, multi-account AWS environment.
There are other proprietary solutions available in the market that supplement public cloud services. One such example that can be used in conjunction with AWS is Robotize Control Tower that allows users to create, monitor and delete accounts and resources in an automated way, reducing the need for manual creation and administration of accounts.
This simply means deleting resources that you no longer need. Public cloud providers will only bill you for the time that resources are provisioned or in use, so if there are outdated or abandoned projects in your environment, they should be removed.
If, for instance, you built out a proof-of-concept for a data lake six months ago and a large amount of storage is still allocated to it, you can achieve considerable savings by deleting your extraneous proof of concept and data.
Not all resource types can leverage this “shutting down” capability, but many do. Virtual machines (VMs) are a good example. Usage is billed by the second, and for every second that they’re turned off, you’re not paying for them. If you shut them down and de-allocate VMs, you can still spin them back up again within a minute or two if you need them, but you’ll reduce your costs in the meantime.
You can also use a temporary shutdown period as a precursor for decommissioning. If you shut down workloads and no one notices (and none of your applications stop working), you can be certain that it’ll be safe to delete them permanently.
Automatically shutting down non-production workloads when they’re not in use can significantly reduce your overall running costs. Let’s say your development team is located in the U.S., with all members working in the same time zone. If the development environment is scheduled to auto-shut down during nights and weekends, you’ll still have it available whenever it’s needed, but for less than a third of the cost of keeping it up and running at all times. One of our customers recently reduced their overall running cost in Azure by approximately 30% by adopting this approach
Each VM that you’re running is allocated a certain number of CPUs and a certain amount of RAM and you’re billed for those whenever the VM is running. Maybe you have a VM that you moved into the cloud from an on-premises environment. Perhaps it only needs half as many CPUs and half as much RAM to achieve the performance you’re looking for. If that’s the case, you can reduce what’s allocated to it and decrease the cost of running that VM by half.
By right-sizing your workloads down so that they use fewer CPUs and less RAM, you can save money over the long term without necessarily compromising performance. To get this right, you’ll need to use tools and metrics to validate that, as you size things down, you’re not going to create performance issues.
Public cloud providers supply free tools that can help you make these decisions.
Microsoft, for example, offers Azure Advisor, a tool that will scan your environment to help you find VMs that are underutilized. Azure Advisor can help you optimize the performance of your Azure workloads while giving you recommendations for how to downsize and save money.
Another tool available on Microsoft Azure is VM Insights. VM Insights monitors the health and performance of your virtual machines, giving you information on their CPU utilization and how much RAM is available. With the information available in these dashboards, you can make evidence-based decisions about which ones to size down without worrying about performance degradation.
AWS also has a tool that provides visibility into the security, agility, performance and resilience of their workloads and infrastructure. Their Well Architected Framework ensures that that visibility translates into a set of guidelines that users cab apply to right-size the cloud and allocate resources in an efficient way.
Enterprise software like SQL Server or Oracle databases are licensed according to the number of cores that are part of the machine on which they’re running. So, for instance, running SQL Server on a VM with sixteen cores requires you to purchase sixteen licenses.
Public cloud providers may enable you to restrict the number of cores available to that software, so that access is limited to a subset of the total cores that are available. In Microsoft Azure, these are known as constrained cores. In cases where not all the cores on your VM are needed to maintain the software’s performance, this can be a strategy for saving money as well.
Microsoft Azure also provides advantageous pricing through a reservation system. If you can commit upfront to the purchase of a certain VM for the next one to three years, Microsoft will give you between a 40 and 65% discount on that VM’s running cost. This will work for storage, compute and any workloads that will be up and running at least two-thirds of the time.
For the AWS cloud, you can also make the most of capacity reservation, savings plans and regional reserved instances to optimize your cloud spending, activated only when needed.
In some cases, replacing infrastructure services with platform services can make sense. PaaS is typically more expensive than its infrastructure components would be if purchased on their own but is often much easier to manage and maintain. Instead of spending time doing things like scanning for vulnerabilities, applying software patches or monitoring performance, your IT operations team can simply run the software that you need. Most of the backend maintenance will be taken care of for you, freeing your staff to spend their time on activities that can help the business grow and innovate.