The cloud is fast, agile, and easy. But it isn’t always inexpensive. If unchecked, cloud costs can spiral out of control.
Public cloud spending will touch $500 billion by 2023. But even when enterprises save money with cloud services, they may still overpay or waste money on unnecessary services. An average enterprise wastes 30% to 35% of their investment on public cloud services. Reducing such waste is critical for surviving a challenging business environment.
Here’s how to keep cloud costs in check:
1. Compare and Review Vendor Costs
The obvious way to lower the cloud costs is to identify the most cost-effective vendor.
Vendors base charges on several factors, such as the number of requests, the quantum of data out, and the provisioned capacity. Pricing structures vary between vendors. When vendors structure charges in tiers, the best option depends on exact consumption. A vendor may be a better choice when capacity requirements are low but more expensive as the applications. Use analytics to predict the requirements and opt for a package that serves the probable scenario.
Review data-out charges. All cloud platforms put a higher price on getting data-out. Outbound network charges vary from vendor to vendor, and from region-to-region. For instance, Google Cloud Platform charges far less for data transfers between its regions in the US than elsewhere in the world.
Check for hidden costs on the monthly bill. Review network charges. Identify subscriptions no longer required. The provisioning availed to leverage discounted pricing may no longer be relevant. Track daily and hourly costs based on data. Look out for spikes and anomalies. Set alert thresholds for prompt action.
Seek the best price for each workload. Many enterprises sign long-term service provider agreements for volume discounts. They buy lengthy cloud service plans without matching applications to the best service or service tier. But do not ignore the big-picture and the long-term cost. One cloud provider might have a low price for a product or SKU. But the cost for the entire solution may be higher. Also, consider the performance and reliability of the cost.
2. Get the Strategy Right
Optimizing cloud costs requires a sound strategy.
Plan the cloud migration. Do not focus on getting everything in the cloud by a fixed deadline. Prepare a detailed strategy, with a focus on long-term cost optimization of the cloud environment.
Give priority to applications that suit multi-cloud deployment. Cloud-native, microservice-based applications are better suited for distributed multi-cloud deployments.
Many enterprises expect the cloud to fix everything from bloated applications to problematic culture, and from messed-up infrastructure to faulty processes. But the cloud is only as good as the application put on it. For instance, putting a non-scalable, traditional application in the cloud will not make it elastic.
An application does not qualify for multi-cloud deployment if it :
- cannot break into smaller parts
- is not tolerant of variances in latency and performance.
3. Control Shadow IT and Zombie Assets
The easy nature of the cloud increases shadow IT. Departments and employees create their own cloud set-up, bypassing enterprise IT, for exigencies. Many such cloud services remain idle after a while, but with the subscriptions active.
The average enterprise has 5% to 10% of provisioned cloud services unused, and 10% to 20% of the provisioned services underutilized.
Have oversight of the use of cloud use across all departments. Identify “rogue” cloud services. Stop unused or “zombie” assets. Bring active services under the management of IT.
Some usual suspects for zombie assets include:
- idle EC2 and RDS instances,
- empty Elastic Load Balancers,
- unattached EBS volumes,
- containers.
4. Get the Configuration Right
Many enterprise cloud strategies undermine the benefits of the cloud. For instance, many enterprises overprovision to ensure application performance. They pay for peak usage 24/7. But such an approach negates scalability on-demand, one reason for moving to the cloud.
After terminating unused assets, review the provisioning of the remaining assets. Often developers launch instances with configurations that have worked in the past. Such instances may have more or less CPU, memory and storage than they need. Rightsizing saves costs. Use a cloud management platform for rightsizing decisions.
Check resource allocations. Provisions do not remain static. Over time, a root cause for variations becomes explicit, allowing enterprises to strike at the root on unnecessary cloud costs.
Look at non-production instances. Practices such as
- snapshotting
- backup configuration
- retaining old dev snapshots,
- copying configurations across production and non-production instances,
add up and increase cloud costs.
5. Reduce Outward Data Transfer
Optimize data out to reduce charges. The more the processing done inside the cloud, the lower the data-out charges.
Avoid deploying different components of the same application to more than one public cloud. But the need to host applications in certain geographical locations makes this approach nonviable. In such situations, make sure the application architecture mirrors network topology.
Consider a centralized network topology. Place the on-premise infrastructure at the centre of all data workflows. Ensure data moving from one cloud platform to another flow through the data centre. This way, the data from any cloud platform to another goes through a unified outbound path. The cost of forwarding traffic from the data centre out to other clouds is free, as different vendors treat it as inbound data transfer. Such a set-up increases bandwidth costs but reduces direct outbound transfers.
Opt for dedicated network connection services over transfers over the public internet. Services such as Google Cloud Interconnect or AWS Direct Connect keep data transfer charges down. It improves safety as well.
Offload web traffic to a content delivery network (CDN). Options include AWS CloudFront, Azure Content Delivery Network, or even an in-house offering. The CDN lowers data transfer costs and speeds up the delivery of data. It also extends the reach of web applications, without distribution across regions and platforms.
The dynamic nature of public cloud workloads makes optimizing cloud costs a continuous affair. A set-it-and-forget-it process does not work.