ZigaForm version 5.5.1

AWS Cost Optimization: Best Practices and Checklist

Share this with your friends

Are you paying for more than what you use on AWS?

AWS or Amazon Web Services has many services and solutions to help you in your business journey. From raw computing power to over 200 + services, AWS is the oldest and the largest player in cloud services. The platform’s simplicity, global infrastructure, affordable solutions, and flexible pricing models make AWS the most popular public cloud provider.

But how do you ensure that you make the best use of the money spent on the cloud with AWS?

In this blog, we will explore some of the AWS cost optimization best practices and create a checklist for you to monitor and optimize cloud spending as you go forward in your cloud journey.

So, what’s cost optimization in AWS?

Cost optimization can be defined as a process of continual refinement and improvement done on a workload in its lifecycle to ensure that it achieves the business outcomes while minimizing the cost and maximizing the ROI. This requires you to build and operate cost-aware workloads.

AWS and other cloud services are consumption-based models. When you are moving to AWS from on-premises, you do not have to pay the costs upfront. You only have to pay for what you use and provision resources on an as-need basis. This means that you need a total change in the operational best practices, automation, and organizational incentives to implement cost optimization.

The best way is to start implementing AWS cost optimization practices early on so that you can scale it as your business grows. The well-architected framework consists of best practices laid down by AWS that focus on six areas to optimize your AWS usage.

A well-architected framework helps ensure that your cloud infrastructure is optimized for performance, security, cost, reliability, sustainability, and operational excellence.

Cost optimization is thus one of the six pillars of AWS’s well-architected framework and ensures that you use the infrastructure and services to deliver the best value at the lowest prices. For that, you need to,

  • Understand the cloud spend over time and manage fund allocation
  • Select the right resource type and quantity
  • Scale to meet business goals without overspending

Did you know?
For most traditional IaaS, charges grow as usage increases but for AWS, the more you use, the less you must pay.

5 design principles of AWS cost optimization

There are 5 design principles for the cost optimization pillar in AWS that will help you achieve your cost optimization goals. Let’s look at them in order.

1.Implement cloud financial management in the organization

Investing in cloud financial management is the first step to achieving financial success and faster realization of business value in the cloud. You need to invest time, money, and resources in building financial management capability and become a cost-efficient organization. To build capabilities in the domain of technology and usage management, you need to use knowledge building, programs, resources, and processes.

2. Adopt the right consumption model

You only have to pay for what you use on the cloud. Design your cloud environment to increase or decrease the usage of resources based on the requirements. For example, your development and test environment are only used for 8 hours on a typical day. If you consider a week, only about 40 hours out of 168 hours. This means that you can save up to 75% cost if you only provision resources at the hours they are required.

3. Measure the overall efficiency of the workloads

Measure the business output and the associated cost of delivery for every workload and use the data to understand the gains that you can obtain by increasing functionality and output or by decreasing costs.

4. Do not spend money on undifferentiated heavy lifting

AWS does the heavy lifting for data center operations like racking, stacking, and powering servers, and also does operational tasks with managed services such as managing operating systems and applications.

5. Analyze and attribute expenditure

Accurately identify the cost and usage of workloads, and attribute IT costs to revenue streams and individual workload owners to make it more transparent. You can measure return on investment (ROI) and allow workload owners to optimize their resources and reduce costs.

AWS cost optimization best practices

AWS offers a lot of services and pricing models which allow you to get the performance and capacity you require while managing the costs effectively. Here are some of the best practices to optimize your AWS cloud spending. 

1. Set up your AWS account to optimize costs 

Set up your AWS account, use the right AWS cost optimization tools to get an understanding of your cloud spending, and optimize cost. 

  • Set up consolidated billing 

AWS organizations help you automate account creation, and to create and govern group accounts. With consolidated billing, you can get a complete overview of all your accounts and bills. 

  • Implement a tagging policy, cost, and usage report 

Tags make it easy for teams to identify, organize, manage and search for resources. You can use cost allocation with this which can be used with AWS cost explorer. You can also use tools and implement a cost and usage report creation to manage your AWS cost efficiently 

2. Choose the right pricing model 

AWS cost explorer is one of the AWS cost optimization tools that can be used to get recommendations based on the cloud usage and to select the right pricing models. 

  • Reserved instances (RIs) 

Reserved instances offer flexibility and help you to minimize risks and manage costs effectively. To reduce RDS, Redshift, ElastiCache, and Elasticsearch costs, you can use reserved instances and save up to 75% of using equivalent on-demand capacity. You can pay the whole upfront cost, partially or no upfront cost at all. But you get more discounts as you pay more upfront. You can use RI purchase recommendations based on your usage in AWS Cost Explorer.  

  • Spot Instances 

You can use Amazon EC2 spot instances to reduce EC2 costs. You can get up to a 90% discount on-demand pricing without term-based commitments. For fault-tolerant and flexible applications such as big data, containerized workloads, CI/CD web servers, high-performance computing, and test and development environments, spot instances are an ideal choice.  Saving Plans 

You can get up to a 72% discount on AWS compute usage with the savings plan model. With this pricing model, you get lower prices on Amazon EC2 instance, AWS Fargate, and AWS Lambda. 

3. Right size capacity based on demand 

One of the best ways to ensure AWS cost optimizations is to scale, right-size, pause or stop instances based on demand to reduce cost. 

  • Right size underutilized Amazon EC2 instances 

Identify underutilized or idle Amazon EC2 instances with AWS Cost Explorer Resource Optimization and reduce costs by stopping or downsizing these instances. You can use AWS Instance Scheduler and AWS Operations Conductor to automatically stop and resize the EC2 instances respectively. 

  • Stop or pause RDS and Redshift with low utilization 

Identify DB instances with no connection for the past 7 days with Trusted Advisor Amazon RDS Idle DB instances check and stop these DB instances. With the underutilized Redshift clusters check, identify clusters with no connections for the last 7 days, and less than 5% cluster-wide average CPU utilization for 99% of the last 7 days and pause these clusters. 

  • Use Autoscaling or On-demand scaling for Dynamo DB 

Use Consumed Read Capacity Units and Consumed Write Capacity Units metrics to analyze Dynamo DB usage and implement autoscaling. To balance cost and performance, you can use the pay-per-request option for read and write requests which is the on-demand option. 

4. Set processes to identify wastage of resources 

One of the important AWS cost optimization best practices is to use Amazon Trusted Advisor to identify resource wastage and set automated processes to manage them. 

  • Delete underutilized Amazon EBS Volumes and obsolete snapshots 

Use the Trusted Advisor Underutilized Amazon EBS Volumes Check to identify EBS volumes that are not used over 7 days, snapshot them and delete them to reduce costs.   

Every time an EC2 instance is launched, an EBS volume is attached to it to act as the local storage. But when you terminate EC2 instances EBS volumes are deleted only when the “delete on termination” is checked. There could be many unattached EBS volumes contributing to your AWS bill.   

Snapshots are used for storing backup for EBS volume to an S3 storage bucket. In the case of snapshots, every snapshot contains information to restore your data fully from the moment it was taken. So, you only need to keep the most recent one. You can delete all the irrelevant snapshots.  

  • Use lower-cost storage tiers based on the frequency of access 

There are six storage tiers in AWS, 

  • S3 Standard 
  • S3 Intelligent Tiering 
  • S3 Infrequent Access 
  • S3 Infrequent Access (Single Zone) 
  • S3 Glacier 
  • S3 Deep Archive Glacier 

The cost decreases as the time of retrieval increases. You can store in lower-cost tiers data based on how frequently you need them.  Storing data in S3 Glacier cost a lot less than storing in S3 standard.  

Analyze storage access patterns for 30 days or longer with S3 analytics and move objects to cost-efficient tiers like S3 Infrequently Accessed (S3 IA). Life Cycle Policies can be used to automate moving objects to lower-cost tiers.  

To automate the entire process of analyzing and moving your objects to the appropriate storage tier, use S3 Intelligent-Tiering. 

  • Delete Load balancers with low utilization  

Check RequestCount of load balancers with Trusted Advisor Idle Load Balancers check. Delete the load balancers with a count less than 100 over the past 7 days. 

AWS Cost Optimization Checklist

AWS cost optimization is an ongoing process. You can follow the AWS cost optimization design principles and AWS cost optimization best practices to ensure that you only pay for what you need and use. Here’s a checklist to make sure that your AWS environment is optimized.

1. Use AWS cost management tools

Set up cost and usage reports and use AWS cost optimization tools like Amazon Trust Advisor to get recommendations about usage. You can also set up alerts when your resource usage level goes high.

2. Terminate all zombie assets

Zombie assets are unused assets that contribute to AWS costs.

  • Unattached EBS Volumes
  • Obsolete snapshots
  • Unattached IP addresses
  • Activated components of failed instances
  • Unused Elastic Load Balancers

3. Upgrade to the latest generation instances

The latest generation of instances has better performance and functionality. You can either upgrade your existing instances or downsize them with borderline utilization metrics to get the same level of performance at a lower cost.

4. Schedule specific on/off time based on utilization

Check patterns of usage and schedule instances to be off when not in use. Keep in mind that you will be charged for all the components and EBS volumes attached to the instances.

Optimize AWS costs with the help of an expert

By optimizing your AWS resource usage and costs, you can reinvest in more resources that will help your business grow. Implementing an organizational-level cost management policy and decentralizing cost optimization practices are important to optimize costs. AWS Cost optimization is a continuous process and as your business scale, the process can become more complex. Therefore, you need a cloud-managed service partner like Nuvento. Our cloud experts can ensure that you are only paying for what you use in AWS and that you are investing in the right resources. We use tools, reports, and expertise to implement AWS cost optimization best practices and ensure that you can focus on your business without worrying about spiraling cloud costs.

For guidance on right-sizing instances and optimizing AWS costs, talk to Nuvento’s cloud migration consultants today and get the cloud managed services.