Saving money is one of the main reasons for moving workloads to the cloud. When used properly, cloud infrastructure can reduce total cost of ownership (TCO) as compared to on-premise infrastructure. That does not mean, however, that simply migrating applications and data to the cloud will necessarily result in cost savings. Moving to the cloud is not like, say, choosing to consolidate debt or refinance your mortgage for a better interest rate. Those activities almost always result in cost savings (unless you really screw them up).
In contrast, optimizing costs on the cloud--and keeping your cloud computing costs predictable--depends on your ability to make smart decisions about exactly how and where you host workloads. Below, we take a look at several strategies that can help ensure that the cloud saves you money and recommend how to maximize those cost savings.
Right-Size Virtual Server Instances
The most basic step for cloud computing cost optimization is to make sure that you are using virtual server instances tailored to your needs.
Each of the major public clouds offers virtual server instances in a variety of categories and flavors. The amount of computing power and memory provided by each instance varies widely, as does its price.
To optimize your cost savings, you need to weigh two key considerations when choosing an instance type:
- Don’t purchase resources you don’t need. If your workload requires 4 GB of memory, paying for 8 GB is a waste of money. Of course, you also want to ensure that you leave yourself enough of a resource buffer within your instance to handle spikes in demand (at least long enough to create new instances if you need to support increased demand over the long term).
- Choose the instance that is tailored to your workload’s specific needs. Some applications require compute resources and memory in equal measure to do their job reliably. Others may need more memory but less CPU time, or vice versa. And specialized applications may require other types of resources, such as GPUs. Whatever your application’s needs, there is almost certainly an instance type tailored to it. So, before you purchase a generic instance with equivalent amounts of virtual CPUs and memory, check to see whether a specialized instance might provide a better balance between resources and cost. This may require you to run some load tests on your application itself in order to determine the optimum mix of different types of resources for it. You can also take advantage of cloud computing cost optimization tools designed specifically for right-sizing instance types.
Discounted Cloud Instances
Another obvious way to lower your cloud computing costs is to take advantage of discounted instance types, such as Reserved Instances on AWS. Discounted instances typically require that you reserve cloud-computing capacity in advance of when you use it. As such, they necessitate a fair bit of planning, and are not a good fit for on-the-fly workloads.
But by committing yourself to the proper level of organization required to predict your cloud instance needs ahead of time, you can use discounted instance types and save quite a bit of money--up to 75 percent in the case of AWS Reserved Instance
Tiered Cloud Storage Classes
For cloud workloads that are heavy on data storage, an easy way to save money is to take advantage of tiered storage classes.
The major public cloud vendors offer various storage classes; you can read about the details of storage classes on AWS S3 here and on Azure here. Although the specifics vary depending on which cloud you use, in general you can lower your cloud storage costs by placing your data into what the vendors call “cold” or “archive” storage classes. These storage classes are available at a lower price point.
The tradeoff is that accessing data that you place in lower-priced storage tiers takes more time than doing the same for data stored using the standard service. This means that low-cost storage may not work well for workloads that need to retrieve data quickly and constantly. But for tasks like data archiving and backup, which typically don’t require frequent access to data, low-cost cloud storage classes are a great way to lower your cloud computing bill.
Choose the Right Cloud Services
Virtual servers and data storage are the most common types of cloud services. But modern public clouds offer a litany of other services, ranging from AWS’s Fargate solution for launching applications inside containers, to Microsoft’s Azure Blockchain Workbench, to Google Cloud’s Cloud Functions serverless computing platform, to name just a few examples.
Depending on how exactly your application runs, you may be able to achieve the performance you require at a lower cost by deploying the application using a service other than your cloud’s standard virtual server instances. For example, if you have an application that needs to consume a large amount of compute resources on an unpredictable and inconstant basis, a serverless computing platform may be a more cost-effective way to deploy it. Serverless can help save money because you typically pay only for the compute time that your application actually uses. With a traditional virtual server, in contrast, you to pay as long as your instance is up, whether or not the instance is actually doing anything. (Plus, serverless computing might even improve security.)
The process for choosing the right cloud service for your particular workload is beyond the scope of this article, but the basic lesson is that you can often save money by looking beyond the basic virtual server services offered by your cloud.
Consider a Multi-Cloud Architecture
If you’re looking to achieve the greatest level of cloud computing cost optimization, a multi-cloud architecture is probably going to be part of the answer.
While a multi-cloud strategy requires more effort to set up and maintain, it can significantly lower your overall cloud computing costs by allowing you to strike the ideal balance between cost and performance for different services on different clouds. For example, AWS may offer lower-priced file storage but charge more for Azure deploying your serverless function (or vice versa--that statement should not be read as a specific assessment of the relative costs of any AWS or Azure service). By using both clouds at once, you can achieve the best cost optimization.
Keep in mind that there are limits on just how extensively you can integrate cloud services from different vendors. For instance, connecting a serverless function deployed on Azure directly to S3 storage isn’t possible, and the work (to say nothing of the potential security risks) required to complete this integration in an indirect way is probably not worth the effort.
But if you have discrete workloads--for example, if you want to deploy a Web application on AWS and use Azure for data backup--a cost-effective multi-cloud strategy is easy to implement from a technical perspective.