According to Forbes, the cloud computing marketplace is expected to increase from $67B in 2015 to $162B in 2020 attaining a compound annual growth rate (CAGR) of 19%. While customers are spending more on public cloud, resources are often over-provisioned. Since they pay for what they provision not what they use, this results in a waste of money on the underutilized resources. In this blog, we provide a few general tips on cloud resource optimization to reduce your bill.
1. Monitor and track your services usage
The key to reduce your wasted spending is to avoid over-provisioning. But with the fear of under-provisioning, customers usually end up over-provisioning. If one can track their services usage and find meaningful repetitive patterns, they can confidently change their provisioning or create usage schedules based on the patterns. These schedules may start/stop services, set resource provisioning at desired levels at appropriate times, use different types of resources at different times etc. This is a good practice when the overall number of instances is small and when the patterns are obvious.
2. Buy Reserved instances
With Reserved Instances, you can save up to 75% over equivalent on-demand capacity. AWS provides 3 options – All up-front (AURI), partial up-front (PURI) or no upfront payments (NURI). Of course, the larger the upfront payment, the greater the discount. The challenge is to predict how much capacity you will need in the future. Therefore, you still need to monitor and track your services usage. Remember, even if you under-predict your usage, you still save on what you predicted. If you over-predict your usage, say no more than 20%, it still costs much less than on-demand because of the discounts.
3. Use Spot instances
Amazon EC2 Spot instances allow you to request spare EC2 capacity for up to 90% off the On-Demand price. It should be noted that Spot instances can be interrupted and taken back when the EC2 needs the capacity back. Therefore, Spot instances are recommended only for fault-tolerant and flexible applications.
4. Use cloud efficiency metrics
As the number of instances increases, it becomes more difficult for someone to keep an eye on the instance utilization patterns and create management schedules. Cloud efficiency metrics are higher level measures to monitor public cloud environment. For example, by tracking the changes of cloud cost efficiency and cloud cost saving efficiency, one can easily tell when they need to upgrade or downgrade their instances, or whether there is a malicious attack. Our technical paper “A Learning-based Cost Management System for Cloud Computing” provides more details on how to use cloud efficiency metrics for cloud cost management.
5. Machine learning based optimization
Machine learning changes cloud optimization from passive to proactive. It learns meaningful patterns from historical data and predicts future usage. When it foresees ups or downs in usage, it will accurately increase or decrease provisioning. This can be done through semi or full automation. In semi automation, the system provides a recommendation of provisioning and customer’s approval is required to confirm the change. In full automation, customer authorizes the system to automatically make the change.
FittedCloud provides Dynamic Cloud Optimization solutions to help customers reduce their public cloud infrastructure costs transparently and automatically. The solutions include cost management, actionable advisories, cost optimization, and anomaly detection. Data shows that our solutions save customers up to 50 % of their cost on average. For more details, please visit https://www.fittedcloud.com/.