Many organizations reap the benefits of hosting workloads in the cloud, yet this infrastructure model is not sustainable if you can't keep your cloud bills under control. Companies must carefully evaluate their cloud services fees.
Cloud bills skyrocket for multiple reasons, such as overprovisioned resources, unnecessary capacity and poor visibility into the environment. Fortunately, there are tools and cost optimization practices that can help eliminate unnecessary spending. Cost optimization also helps organizations strike a balance between cloud performance and spend.
Learn how to reduce cloud costs with the following practices and tools.
1. Opt for reserved or spot instances
In the cloud, organizations will find cheaper alternatives to on-demand resources if they're willing to commit to making certain tradeoffs. Use these discounted pricing schemes when possible:
- Reserved instances. Organizations that make an upfront commitment to use a certain amount of capacity over a one- to three-year period can save on cloud resources with reserved instances. Depending on the platform and other variables, reserved instances can offer savings up to 80% compared to on-demand instances. Each major cloud provider offers this pricing option with Amazon EC2 Reserved Instances (RIs), Azure Reserved VM Instances and the Google Cloud Committed Use program. AWS also has a Savings Plans program with similar discounts but more flexibility in usage than its standard EC2 RIs. Reserved instances are best suited for workloads with consistent, predictable capacity.
- Spot instances. Developers can access unused capacity for a deeply discounted price with Amazon EC2 Spot Instances, Azure Spot VMs, Google Cloud Preemptible VMs and Google Spot VMs. Savings with these pricing models depend on what type of resource is purchased and the price at the time of purchase. These instances are subject to abrupt cutoffs, depending on overall capacity demands in a region. They're best used for stateless workloads, batch jobs and other tasks that can tolerate disruption.
2. Capacity planning
Even though organizations can quickly spin cloud instances up or down, they often still pay for unused capacity. IT teams need to ensure enough capacity is available to handle unexpected traffic spikes and load fluctuations, but not so much that they overspend on unnecessary resources.
Part of capacity planning is choosing the right cloud resources for your workload. Compute instances are available in a wide array of configurations to meet the unique processing, memory, storage and performance needs of each application. With so many options available, it's easy to oversize an instance, providing far more processors, memory and storage than the workload actually needs. Those additional resources waste money -- every month -- unless they're used. Save money by "right-sizing" cloud instances.
Autoscaling also helps organizations ensure they don't pay for unused cloud capacity. Cloud providers offer native services with autoscaling features, such as AWS Auto Scaling. These features automatically monitor and adjust application scale to meet demands and can be used to prioritize cost, availability or performance.
Set up autoscaling parameters with cost in mind. For example, put performance limits on lower-priority workloads that don't require extensive scaling. Configure autoscaling settings to use the minimum number of necessary resources to meet demand. And incorporate some of the previously mentioned discount programs as appropriate.
Serverless computing can help with scaling issues, as well, but it still requires some upfront planning to avoid runaway costs. You can also use techniques such as queuing and caching to accommodate unexpected traffic spikes without paying for idle capacity.
3. Limit data transfer fees
It can be expensive to move data to and from a public cloud. Cloud providers charge data egress fees to move data off their platforms or even between regions. To reduce cloud costs, avoid unnecessary data transfers.
Start with an assessment of your cloud provider's transfer fees. Then, adjust your cloud architecture to reduce the number of necessary data transfers. For example, you could move on-premises applications that frequently access cloud-hosted data into the cloud to eliminate those hops.
Also, evaluate the fees of different transfer methods intended to accelerate and secure the movement of data between the cloud and your private data center. For example, compare the cost to use a dedicated network connection service, such as AWS Direct Connect, Azure ExpressRoute or Google Cloud Interconnect, to the cost of a physical transfer device, such as AWS Snowball or Azure Data Box.
4. Use cost monitoring tools
An effective cost management strategy requires the right tools in place to monitor spending.
AWS offers various cost monitoring tools. One tool, AWS Cost Explorer, analyzes your past spending -- up to 13 months prior -- and forecasts your cloud expenses for the next three months. Another option, AWS Budgets, uses custom alerts to notify admins when spending exceeds a certain point. It can also automatically limit resources to reduce cloud costs.
Microsoft cloud users can monitor their spending with Azure Cost Management + Billing. This suite of tools tracks spending across individual Azure services, provides future bill forecasts and alerts users when they go over budget. Similarly, Google Cost Management enables Google Cloud Platform users to identify cost spikes and set up spending reports for cost optimization.
In addition to cloud-native options, third-party cost monitoring tools help organizations make smart spending decisions. For example, CloudCheckr, now owned by NetApp, tracks spending across cloud resources and provides recommendations on where to cut costs. CloudZero and Densify are other examples of third-party cloud cost monitoring and management tools.
5. Prevent cloud sprawl
Cloud sprawl is the uncontrolled proliferation of cloud resources and is to blame for many cloud bill spikes. When organizations fail to eliminate cloud services that are no longer part of their overall strategy, they continue to pay for them.
For example, storage instances tend to accumulate -- especially when they're used for data protection or are disassociated from compute instances. If a cloud server instance is deleted, its associated storage may become overlooked. Identify unneeded storage instances and consider tactics to delete them in accordance with company data retention policies.
To minimize the risk of sprawl, in general, establish proper visibility into your cloud environment with infrastructure and application monitoring and management tools. Set up company policies on how and when to decommission cloud resources that are no longer needed. Use automated provisioning to shut down old workloads.
In addition to cloud policies, carefully monitor cloud bills and contracts to identify if your organization is paying for cloud services that are no longer in use.
6. Cache storage strategically
Some public cloud providers offer memory-based caching services, such as AWS ElastiCache. Caching moves important or frequently accessed data in-memory and closer to the compute instance, rather than having to retrieve data from storage instances. This can improve the performance of some applications and reduce the expense of higher-tier cloud storage -- especially when performance-sensitive workloads are run in remote regions or when efficient replication is needed for resilience. By comparison, Google Cloud Storage allows users to specify where storage buckets are geographically stored.
7. Run workloads where the computing is cheaper
Peak times and compute demands affect cloud pricing. Moving workloads to and from certain geographic service areas -- such as regions -- where demands and prices are lower can reduce cloud costs. As long as common storage services can support each location, the workload will only see a latency difference between service areas. Security and regulatory compliance requirements, however, may prohibit workloads from running in certain regions.
Cost management and control is often a core part of an organization's multi-cloud strategy as well. In some cases, an organization might deploy some workloads, or perform certain tasks -- such as software test and development -- on an entirely different cloud platform when cost benefits dictate.
8. Restrict access to the cloud
A central appeal of the public cloud is its self-service nature. Businesses routinely allow individual users and stakeholders to access the cloud to provision, deploy, monitor and troubleshoot workloads. Such open access can be convenient, but it can also drive unexpected, unplanned and, sometimes, unnecessary costs.
To reduce costs, some organizations limit cloud access to users with experience in cloud cost management, such as cloud architects and engineers. These cloud professionals are familiar with providers' offerings and cost structures and can design a cloud infrastructure that provides solid performance -- while limiting spend. The IT staff responsible for cloud use should determine the most appropriate cost control tactics for their organization.