The adaptability and flexibility of today’s cloud services present a lot of opportunities to cut infrastructure costs. Amazon Web Services and its plethora of services let you set up any kind of cloud environment for any type of application, without forcing you to make long-term commitments. At the very least, you don’t have to make a big initial investment to set up your cloud environments.
AWS resources are designed to make deploying cloud-native applications easy and affordable. Affordability is always important for businesses because cost-efficient applications guarantee higher returns on cloud investment. The way AWS services are set up allows for easy scaling of apps and cloud resource usage, but keeping your cloud environment efficient is not without its challenges.
The flexibility of existing services also makes setting up complex, resource-intensive cloud clusters easier. There is no application that you cannot run on AWS. When you have a complex cloud infrastructure with multiple EC2 instances, joint staging and production environments, and a long list of AWS services being utilized, it is easy to lose track of your infrastructure costs. Add the low costs of AWS services in general, and you start neglecting cost management; it will not be long before you end up with an inefficient infrastructure.
Amazon acknowledges this issue and provides a handful of tools and services to help you improve matters. Elastic services are already designed to automate scaling of services and applications, but you now have the option to go beyond just relying on automated scaling to make your cloud environment efficient. So, what is the best way to manage costs and save money on AWS? There are a lot of things you can do to get started; offers such as Savings Plans are definitely worth looking into as a starting point and we are going to review some of them in this article.
It Starts with a Cost Audit
Before you can start saving on your EC2 and Fargate instances, you need to first perform a complete audit of your environment. Amazon makes it easy with its Cloud Cost Management platform, which immediately lists all of the cost elements that affect your bottom line. The tool is designed to offer optimization recommendations based on actual condition.
When your microservices are not using the full capacity of your Fargate instance, for example, you are actually paying for resources you cannot utilize. Rather than continuing to pay for those unused resources, Amazon will recommend the best way to save money without sacrificing requirements and performance.
The tool immediately displays instances categorized as underutilized and useless. While you may think that you don’t have underutilized instances in your ecosystem, you’ll be surprised by what the tool can find.
Instances with 1% of utilization or lower are categorized as idle. Most of the time, they are instances that you only use occasionally—if ever—and they can be removed safely. You’ll be surprised by how much you can save from deleting unused instances alone.
Instances with utilization level of 40% or lower are classified as underutilized. There are several things you can do when you have a lot of underutilized instances. Combining multiple instances, scaling down the allocated resources, or using scheduler and other automation tools will significantly reduce your cloud infrastructure costs.
Don’t Leave Your Resources Running Idle
Unnecessary resources can be turned off or merged for better efficiency. The Amazon Cost Explorer lets you simulate the amount of money you can save every month based on the optimization opportunities presented. You will also get the efficiency level you can aim for in percentage, plus you get details such as monthly estimated savings for each instance.
The tool itself is a great way to do a cost audit because it understands usage patterns and has access to granular resource usage data. Through deeper analysis, the Amazon Cost Explorer can also recommend the best ways to save money, including taking steps such as moving to a smaller instance or merging multiple services.
While you are at it, consider using auto-scaling to keep your infrastructure costs at a minimum. Setting up auto-scaling is a lot easier than you think. You start with the least required resource amount for your microservices or applications, and then you define parameters that allow the instances to scale up when needed.
Amazon also offers a lot of elastic services these days, and they are usually more affordable compared to blocked compute units for certain use cases. If you only need the compute units over a short period of time, you can also integrate automation into your deployment pipeline, and you can use the budgeted hourly cost under Savings Plan to cover that.
As a bonus, here’s another tip you want to keep in mind: choose the correct S3 storage class. Switching from Amazon S3 Standard to S3 Standard-Infrequent Access, for example, will reduce your cloud storage cost all the way down to $0.01 per GB. Options like Glacier and One Zone reduces your storage costs even further.
Optimizing AWS Savings Plan with Cost Explorer
AWS Savings Plan lets you save significantly on your compute instances, but in order to fully take advantage of the discounts, you need to first understand your cloud resource consumption pattern. This is where AWS Cost Management and Cost Explorer come in handy. The two tools are specifically designed for understanding your AWS costs.
Using Cost Explorer, you can review your AWS usage and costs. In fact, Cost Explorer automates most of the tasks related to understanding your cloud infrastructure costs, including presenting insights on usage for each instance you have in your account and the cost associated with that instance. Cost Explorer analyzes resource usage levels and presents you with relevant recommendations.
You can sort resource usage levels and immediately identify EC2 instances that are not fully utilized. Cost Explorer categorizes instances into categories, with resources classified as Idle being the ones you can safely terminate. This alone lets you avoid paying for cloud resources you are not actively using.
You will also identify the hourly average spending that you currently have. After making the necessary cuts on unused instances, you will be able to calculate the right hourly budget to set for AWS Savings Plan and determine the most suitable term. Cost Explorer certainly takes the guesswork out of using AWS Savings Plan.
Savings Plans to the Rescue
AWS Savings Plan is designed primarily to let you save on the two main Amazon services we’ve mentioned: the EC2 and Fargate. It basically gives you the option to “book” compute resources on an hourly basis, giving you more control over how the resources are utilized.
Savings Plan provides flexible pricing at a highly discounted rate, and the only thing you have to give in return is a commitment to use a certain amount of resources on an hourly basis. The pricing model also lets you access the specific service tiers you need at any point.
AWS Savings Plan offers three main advantages, the first one being the dramatic cost savings. You can earn up to 72% of the discount on the computing resources you use by making an hourly commitment. You also have the flexibility of going for 1- to 3-year terms, depending on how much you are willing to allocate and how much you want to save.
The second benefit is its flexibility. You still have access to all of the service types and plans available, plus you can use AWS Savings Plan in more regions now that the feature is being offered to a wider audience. In fact, you can be very granular with how the hourly budget you have committed is spread among compute services.
That granular control doesn’t come with extra complexity. In fact, using AWS Savings Plan is very simple—which is the third benefit. You only need to define your hourly budget, commit to a term that suits you best, and you will start getting discounts on all the compute resources you use. The discount is applied universally across all available service plans.
The concept of Reserved Instances or RIs is not new to EC2 users. The option has been available for a while. If you know that you will be consuming a certain amount of cloud resources for an extended period of time, you can reserve an instance with that exact capacity and save a lot of money in the long run.
Savings Plans supercharges that concept. Instead of forcing you to reserve a predetermined configuration for 1 to 3 years, you can be more flexible with how you use compute products within the Amazon ecosystem. Rather than offering a fixed fee for a selected service, you basically commit to spending a certain amount of money for the available cloud resources.
The amount of savings offered by Savings Plans is actually substantial. For products like Fargate, you can save up to 66% off of your regular service fees without losing any flexibility. For example, you can still move from one region to another or change the type of instance you use while enjoying the same amount of discount.
Savings on EC2 instances are even bigger at around 72%. There is no size limit, too, so you can move between instance sizes and operating systems. What’s interesting about the approach is that you can focus on calculating the amount you are willing to spend on cloud infrastructure every hour. Yes, you use an hourly spending amount as your benchmark.
Granularity in Cloud Environment Cost Management
The hourly approach lets you do a lot to save on your cloud costs. Here’s another good example. You can take a closer look at your peak consumption, and resource consumption during quieter timeframes, such as at night, and then find the sweet spot by averaging the two. You can then use the result of the calculation and commit an hourly spend to save money in the long run.
Since Amazon also provides an in-depth look at your resource utilization, Savings Plans is an interesting option to use. The only real challenge is when you start matching instance sizes and services. While the offered discount remains relatively the same, you are still looking at different fees for different service types and sizes.
There is also the fact that the discount only applies to a particular type of resource, so you have to be more strategic with your approach to Savings Plans. Yes, you do have the option to stack Savings Plans, but that adds complexity to the equation. You have to be more meticulous in managing the different Savings Plans you use to maximize your monthly savings.
Nevertheless, Savings Plans give you more options when it comes to optimizing your cloud resource usage and cloud computing costs. Amazon’s Cloud Cost Explorer is certainly an indispensable tool to use if you are serious about optimizing your cloud environment. You have to make an hourly commitment, but you already have data from existing instances to rely on.
It is also important to note that Savings Plans is not for everyone. While you can still get close to maximum saving by making an hourly commitment, it is not the only way to save. You can take a more manual approach and be more selective with the EC2 instances you run. Either way, there are plenty of opportunities to save and the tips and tricks we covered in this article will help you get started right away.
Caylent provides a critical DevOps-as-a-Service function to high growth companies looking for expert support with Kubernetes, cloud security, cloud infrastructure, and CI/CD pipelines. Our managed and consulting services are a more cost-effective option than hiring in-house, and we scale as your team and company grow. Check out some of the use cases, learn how we work with clients, and read more about our DevOps-as-a-Service offering.