In uncertain times, it’s a natural reaction to focus on funds. Yet, there is a clear difference between tripping over dollars to pick up pennies and being a good steward of one’s budget, ensuring systems are optimized for cost efficiency. Fortunately, cloud cost optimization is a pillar in both AWS’s Well Architected Framework and Microsoft Azure’s Architecture Framework. Indeed, with the help of several tools offered by the cloud providers themselves and some analysis, cloud cost optimization can be achieved.
Establish a Baseline
The first step in an optimization project is to understand the starting point; establish key metrics — like current cloud spend by team, by resource, etc. — and set a baseline for them. You’ll want regular visibility into these metrics. I recommend a tool like the free AWS Cost Explorer or Azure Cost Management + Billing that allows you to quickly get an understanding of your cloud spend. They come with out of the box reports that will let you see high-level data while giving you tools to dig deeper into trends or anomalies. With a clear understanding of the starting line, these tools can help give you situational awareness of your metrics and will show over time how your optimization efforts are impacting them.
Get a Well Architected Review
Each cloud platform has a recommended architecture. For example, AWS and Azure both call theirs the Well Architected Framework and both offer a Well Architected Review (or WAR) to ensure your architecture is configured to meet a variety of best practice goals, an important one of which is cost optimization. A WAR will pinpoint areas where your architecture could change to further optimize for costs, helpfully saving you money. The review results in an analysis that you can use to remediate issues and optimize systems to manage cloud costs.
Hunt for Unused Resources
It is common to have a need for a short-lived simple EC2 instance or cluster. Cloud users may want to quickly test something but once they are done with it, it is also very common to forget to shut down or terminate these instances. This is a common pattern in non-production environments. Ideally, you want to provide a sandbox for these types of activities. To save expenses, you can set up a resource monitoring tool such as Cloud Custodian to automatically shutdown resources after a given time (say two weeks) unless they are tagged to indicate the resource should stay up and running.
Hunt for Underutilized Resources
Long-lived non-production environments are commonly underutilized as development teams use them during work hours. If your application is serverless (think Lambda) you will pay for only what you use. However, if the application runs EC2 instances and it runs overnight and over the weekends, you will pay for them. If you consider there are 40 work hours in a 168-hour week, you are paying 4x what you actually need. To avoid these unnecessary costs, in AWS for example, you can use the AWS Instance Scheduler to shut down and start resources on a schedule.
Select the Best Pricing Plan
Selecting the best EC2 pricing plan for your needs is another way you can control cloud costs. While each cloud platform offers its own branded instance types, for ease of discussion, I use AWS labels here to discuss three distinct right-sizing tactics:
- Spot Instances are spare compute capacity offered at a steep discount. According to Amazon, you can purchase Spot Instances for up to 90% less than its On-Demand instances. Yet, it’s important to note that Spot Instances are less expensive because AWS makes no commitment to provide the instance at a given time. You choose what you’d like to run and for how long, and AWS runs it when capacity becomes available. As a result, I recommend Spot Instances for organizations with flexible workloads that can take advantage of spot availability as a viable mechanism to optimize cloud costs.
- Reserve Instances also offer good savings to users; AWS reports up to a 72% savings compared to On-Demand pricing. While not as steep of a discount as Spot Instances, Reserve Instances offer certain assurances from AWS, like the ability to reserve capacity. Reserve Instances can be bought on a one or three year plan, so they are ideal for organizations committed to the platform, and know that they can commit to a specific instance type.
- AWS Savings Plans are a third tactic for right-sizing instances, also offering about a 72% cost reduction. Savings Plans offer you a great deal of flexibility, as unlike Reserve Instances, you can use any instance types you like. However, you’ll need to be able to estimate your usage as AWS commits to provide a specific amount of compute power in exchange for a 1- or 3-year commitment from you. Savings Plans work for the majority of workloads, they are an attractive option, especially if you are able to commit to AWS more than a year, for, the longer you commit, the more money you can save.
Note that as workloads change, instance needs will likely change, too. As a result, right-sizing your instances should be an ongoing exercise where usage is continuously reviewed to ensure that you optimize instances for cost management.
Replatform for the Cloud
While more resource-intensive upfront, replatforming an application for the cloud can result in outsized savings. Moving from on-premises servers, private cloud or another “always-on” solution, to serverless / cloud-native allows an application to take full advantage of cloud functionality like elasticity and auto-scaling that extend the greatest possible cost efficiencies. While I encourage a cost-benefit analysis before replatforming an application, for the right workloads, this approach can offer vast cost efficiencies over a lift-and-shift migration.
In addition, cloud-native apps provide greater process optimization which grows productivity and utilization. Thus, allowing developers to speed time to market with updates quickly pushed to customers and giving them more time to spend on strategic initiatives.
Moving to the cloud gives organizations greater control, including greater cost control. Companies move from Capex to Opex, allowing them to turn the dials up or down based on business demand and need for cost control. Despite these benefits, simply moving to the cloud doesn’t guarantee them, a significant reason organizations choose to strategically spend to replatform rather than simply lifting and shifting to the cloud. With the strategies outlined here, enterprises can gain even greater control over cloud costs, reaping the benefits of their cloud cost optimization efforts.
Post Date: 09/09/2020