How to reduce costs by migrating to the cloud.
Saving on costs is one of the key reasons for migrating the workload to the cloud environment. If used accurately, cloud infrastructure can lower total ownership cost in comparison to on-premises infrastructure. However, this does not necessarily mean that just moving apps and data to cloud inevitably leads to saving on costs.
Migration to the cloud environment is not the same as deciding to consolidate debt or to do mortage refinancing for a more attractive interest rate. Such measures almost always contribute to cost reduction, unless a clear mistake is made.
By contrast, cloud costs optimization as well as preserving predictability of cloud computing costs directly depend on the capacity to find reasonable solutions on how to distribute workloads. Let’s have a look at a couple of strategies which allow not only to save costs by moving to cloud environment, but also maximize these savings.
The optimum size of the virtual server instances
The most obvious step in cloud computing costs optimizing is to use virtual server instances adapted to real demands. Each public cloud provides different classes and varieties of virtual server instances. For each instance the amount of memory and computing resources ranges widely, as well as its costing. There are two main considerations that should be taken into account when selecting a type of an instance to ensure cost-effectiveness.
- Do not purchase unnecessary resources. If 4 GB of memory is enough for your workload, buying 8 GB will be a waste of resources.
- Obviously, it is necessary to provide a sufficient buffer size to handle surges in load (at the very least at the time of creating new instances if it is required to support the increased processing load for a long time).
- Choose an instance based on specific workload requirements. Ensuring reliable operation of some applications requires equally computing resources and memory. For other apps more memory is required, but less CPU time, and the other way round. There are applications that need a GPU. Regardless of the app nature, almost surely there is a type of an instance that fully meets its requirements. Therefore, prior to purchasing a universal instance with the same resources of virtual processors and memory, find out if there is a specialized option that is more appropriate in terms of the equilibrium between costs and resources. This might necessitate load testing of the app itself to define the optimal combination of various kinds of resources. In addition, cloud computing cost optimizing tools can be used, that are designed specifically to correctly define the appropriate instance size.
Cloud instances at a reduced price
One more obvious means to reduce cloud computing costs is by using instances at a reduced cost, for example as reserved instances on the AWS platform. For an instance at reduced price, normally it is required to reserve cloud resources in advance before using it. Therefore, this option requires planning and is not suitable for dynamic workloads. However, taking organizational measures to ensure forecasting of cloud instances requirements makes it possible to save up to 75% of the funds through using reserved AWS instances.
Multi-tiered cloud storage
In case of cloud workloads with high storage needs, money can be saved by using multi-tiered storages. The major providers of the public cloud offer different types of storage. Detailed information about these storages can be found on the service providers’ websites. Specific features differ based on the cloud which is used, but in any way it is possible to reduce the spendings on cloud storage by placing the data in so called “cold” or “archive” storages. Such storages can be used at cheaper prices.
The disadvantage of such approach is that access to data stored in cheaper storage takes longer than when using a standard service. What this means is that such affordable storage can be too slow for workloads associated with fast and continuous data retrieval. However, for tasks such as backing up and archiving that typically do not require frequent data access, such cheaper cloud storage is a valid means to reduce costs incurred in cloud computing.
Selecting the right cloud services
Virtual servers and data warehouses are the most commonly used types of cloud services. However, today’s public clouds present many other options, like AWS Fargate solution for running apps inside containers, Google Cloud features or Microsoft Azure Blockchain Workbench.
Depending upon how the app works, the needed level of performance can be achieved at less cost by deployment of the app using a service different from the standard cloud instances that use a virtual server. For instance, if an app consumes a significant amount of computing resources on an unforeseeable and non-persistent basis, a serverless computing platform might be a more appropriate option for its deployment.
The serverless platform is cost-saving, because usually in this case money must be paid only for the actual computing time used by the app.
Conversely, when using a traditional virtual server, money have to be paid for all the time during which the instance is operational, regardless of whether it is actually performing an action. In addition, serverless computing can even enhance security.
A matter of selecting the best cloud service for a certain workload is obviously outside the bounds of this article, but the key conclusion is that it is possible to save costs by going beyond the basic options which use a virtual server.
Multi-cloud architecture
The task of achieving the maximum cloud computing costs optimization is partly solved by multi-cloud architecture. Of course, the use of multiple clouds increases the labor costs associated with configuration and maintenance, but the total cost of cloud computing can be significantly reduced, as the deployment of various services in different clouds allows to achieve a perfect balance between expenditures and the performance level.
For instance, AWS allows to gain benefits of cheaper storage, and serverless functions deploying is cheaper to implement on Azure, or Vice-Versa (this example should not be considered as a real comparative assessment of AWS and Azure services cost).
By using two clouds at the same time the greatest results in terms of cost optimizing can be achieved. It should be understood that there are limitations on the scope of integration of cloud services from various providers.
Just like a direct connection of a serverless function deployed in Azure to S3 is not possible, and the effect of integration is apparently not worth the efforts of an indirect connection (not to mention potential hazards in terms of security).
However, for standalone workloads (for instance, if it is planned to deploy a web app on AWS and use Azure to back up the data), economically profitable multicloud strategy can be implemented easily from a technical standpoint.