How to Use Cloud Infrastructure in the Most Cost-Effective Way
Tech companies around the world are moving to the cloud for a series of obvious reasons. The cloud promises greater agility, shortening development teams’ time to “Hello, world.” Cloud infrastructure is also used for scalability, allowing teams to test products and projects — and then grow them as needed. And, finally, cloud infrastructure is designed to save companies lots and lots of money.
CIOs and CTOs are able to shut down their expensive on-premise data centers when they find the right cloud provider. This presumably creates savings.
But not always.
Believe it or not, cloud infrastructure can grow to be even more expensive than on-premise solutions without the proper management. How do cloud infrastructure costs grow out of control? Check out the various ways the cloud becomes expensive below, as well as examples of cloud management tools that can help you keep those costs in line.
The 10 Ways to Control Cloud Infrastructure Costs
Not properly managing your cloud infrastructure? If not, the cost of using AWS, GCP, Azure and similar tools is going to rise unnecessarily. Here’s a look at the 10 most common ways that cloud infrastructure can start costing you more without proper management.
1. Conduct Regular Audits and Analyses
It’s rarely a good idea to let infrastructure tools run and operate without audits or analyses. Most cloud infrastructure providers like AWS, Azure and GCP offer reporting dashboards and features that can keep your IT team apprised of activity — but your team must use those dashboards and features for them to work on your behalf.
In addition to cloud providers’ reporting, find a way to stay in touch with your own clients and users about performance. You likely have in place service level agreements (SLAs) that guarantee specific levels of performance. In some cases, while your cloud dashboard may show a high level of performance, your own client or user may be having a far worse experience.
The nature of your product or business is unique, so come up with a unique approach to auditing and analyzing the performance of your cloud infrastructure. It's often best to use a combination of the dashboards and tools provided by your vendor, as well as a process for talking to your clients and users about what they're experiencing on their end.
2. Provisioning Realistically
It can sometimes be difficult to estimate the amount of cloud storage that you will need for any given application or project when you're first starting out. This is especially true when you’re accustomed to working through an on-premise data center rather than in the cloud. That's why over-provisioning is so common.
If you can find ways to optimize during the initial provisioning process, there will be less to manage and maintain later down the road after you have gone live. Keep in mind that the typical on-premise server offers far more storage space than a single application requires. This can lead to an over-provisioning mindset when you are new to the cloud. Remember that you can often get away with provisioning far less storage for a single application in the cloud compared to what you would provision on a dedicated on-premise server.
Some cloud infrastructure platforms make provisioning easy. For example, AWS allows users to create different types of instances — on-demand, spot, reserved, etc. The on-demand instance eliminates overprovisioning. An on-demand instance comes at a higher cost, though, as pre-committed reserved instances are available at lower rates.
Very few SaaS clients tap into the full capabilities of the tools they use. This is almost certainly true for users of cloud infrastructure.
Cloud service providers like Azure, GCP and AWS typically offer some sort of automation service, including features that automatically scale your storage up as needed. But you can also use built-in automation features to scale down your storage as needed, too.
You don’t even have to scale up or down for long periods of time. Many applications experience heavier volume and storage needs during business hours and on weekdays. For example, dev servers are designed for heavy usage, but they are only used to the fullest extent during the workday when developers are using them. At night and over weekends, downscaling those dev servers can generate savings.
If this is the type of cadence your product experiences, you can automate storage to scale down on nights and weekends and then back up in the mornings and on Mondays. If you are not using automation tools within your cloud service provider, you are likely spending more than needed on cloud infrastructure. No matter how vigilant an IT team, it will be unable to replicate the responsiveness of automation tools.
4. Releasing Unneeded Storage
The beauty of the cloud is that you can configure and provision remote servers as needed in a short period of time. We mentioned above the importance of conducting audits and analyses of your cloud performance, but it's not enough to just conduct these audits and analyses. You must also act on the information obtained.
Unneeded storage is one of the primary reasons why companies spend more than they need on cloud infrastructure. Your team needs to create a process, not just for identifying unused storage, but also for actively reducing this unneeded storage once you find it. This is easier said than done, naturally, as development operations and IT teams typically have unique cultures. It is essential that you embed this type of activity into the culture of your team.
5. Quality Code
The quality of your code can make a difference in how much you spend on cloud infrastructure. For example, if you're running individual lines of a multi-part query on a web server, network traffic will unnecessarily increase — which increases the amount of money you pay for cloud infrastructure overall. But, if instead you choose to embed the query on the database server, you will likewise limit network traffic — which reduces the amount of money you pay for cloud infrastructure overall.
This is just one example of how the quality of code on your web servers can impact the capacity you need in the cloud. Poor code means paying more than needed for greater capacity — while quality code means you minimize your storage needs.
6. Choosing a Cloud Owner
We noted above that it’s essential to monitor and regularly audit and analyze the performance of your cloud infrastructure. It is just as important to designate a cloud owner — someone who is looking for provisioning requests, identifying and snuffing out redundancies across your company, optimizing server utilization, and generally controlling cloud-related costs. Typically, the cloud owner is someone who understands GCP, Azure, AWS or whatever infrastructure platform you’re using.
There's a concept in business that many companies experience called "shadow IT." Shadow IT is when tasks, systems and programs that should be managed centrally by an IT team are actually established, used and monitored across various departments. In many cases, individual departments will be unaware of the SaaS tools being used outside of their group. A cloud owner should be hyper-aware of the potential for shadow IT to creep into your organization. Ultimately, this cloud owner should be focused on bringing all cloud infrastructure tasks, systems and programs under a single umbrella.
7. Organized Cloud Documentation
In many cases, individual departments establish their own cloud infrastructure because they are unaware of cloud infrastructure already in place. Your cloud owner should clearly document cloud services available to the company by creating a list of these services as well as a process for requesting/approving access.
If your cloud infrastructure is completely undocumented, or if team members at your company find it inaccessible, they will naturally turn to shadow IT approaches to accomplish the things they need to through cloud service providers. Again, this could be a cultural issue. Your cloud owner should attack that cultural issue by putting on training opportunities for your team and clearly outlining how your team members can take advantage of the cloud infrastructure services available to them.
8. Cancelling Legacy Support Contracts
Many companies in the process of moving from on-premise solutions to cloud infrastructure fail to address their support contracts. After the move to the cloud is complete, failure to close legacy support contracts can be an expensive oversight.
This issue may also go beyond just support. Managing cloud infrastructure is completely different than managing on-premise data centers. Take a close look at the roles supporting your on-premise program, both in-house and contracted. And then reconfigure or replace those roles and resources with ones that are designed to best support your cloud infrastructure program.
The good news is that you will often pay far less for support and other services after moving to the cloud compared to on-premise data centers. This is just another one of the many benefits of using cloud infrastructure — as long as you take the essential steps needed to reduce cloud infrastructure costs.