hamburger icon close icon
AWS Costs

AWS Cost Optimizations: Tools, Checklist, and Best Practices

Read Next:

Organizations are moving more applications and services to Infrastructure as a Service, Platform as a Service, and Software as a Service models. A sizable part of IT budgets is diverted to cloud providers, and understanding your cloud bill and budget on cloud providers like Amazon Web Services is becoming a prime concern. AWS cost optimization has become a discipline of its own with specialized tools, economic models and cost reduction best practices.

In this article:

Why Optimize Costs on AWS?

Here are key benefits of cloud costs optimization: 

  • Save costs - you can use Spot instances to save up to 90% on EC2 costs, and AWS Savings Plans to save up to 72%. You can also save up to 10% by rightsizing workloads with AMD-based instances or migrate to AWS Graviton2-based instances and save up to 20%.
  • Increase agility - cost optimization can help you free up resources to scale applications cost-effectively. With additional resources, organizations can finance more projects to better serve customer needs or provide more resources to existing applications to improve performance.
  • Streamline selection - AWS provides recommendations based on millions of simulations to help you choose the most suitable instance type and rightsize the compute environment.

What Are the 5 AWS Design Principles for Cost Optimization?

The AWS Well Architected Framework recommends five design principles for AWS cost optimization. Here is a summary of these principles:

  1. Implement cloud financial management - Cost Optimization, or Cloud Financial Management, can help you accelerate business value realization and achieve financial success in the cloud. It involves dedicating time and resources to build capability through programs, resources, knowledge building, and establishing processes.
  2. Adopt a consumption model - AWS recommends paying only for the required computing resources and increasing or decreasing usage according to business needs. For example, staff typically use development and testing environments eight hours per day during a workweek. You can potentially achieve 75% cost savings by stopping these resources when they are not used.
  3. Measure overall efficiency - this principle recommends measuring the business output of a given workload and all costs required to deliver it. This information can help you identify the gains from increasing output and reducing costs.
  4. Do not spend money on undifferentiated heavy lifting - AWS is responsible for data center operations such as racking, powering servers, and stacking. Additionally, AWS offers managed services to help remove the operational burden of managing applications and operating systems. These services free you up from IT infrastructure tasks, helping you focus on customers and business projects.
  5. Analyze and attribute expenditure - clouds can help you accurately identify the cost and usage of systems, allowing transparent attribution of IT costs to the individual workload owners. It enables you to measure return on investment (ROI) and helps workload owners optimize resources and reduce costs.

AWS Pricing Models and How They Help Optimize Costs

1. On-demand pricing

The basic AWS pricing model is on-demand, with pricing for services based on actual usage, billed per hour or per second (supported for some services). It is highly flexible, but also the most expensive option. Many organizations start with on-demand pricing to understand their cloud needs and later switch to another model. 

  • Suitable for organizations that prefer to structure their expenses as Operating Expenses (OpEx) with no up-front payments or time commitment.
  • Suitable for applications that are mission critical or have unpredictable spikes in load.

2. Savings Plans

AWS Savings Plans offers a flexible pricing model with compute usage savings of up to 72%. It lets you reduce costs for AWS usage, including for AWS Lambda, AWS Fargate, and Amazon EC2 instances. You benefit from discounted prices regardless of instance size, Region, instance family, operating system, or tenancy. 

AWS Cost Explorer provides recommendations to help you optimize costs - ensure you select one-year compute options without upfront costs. When you sign up for Savings Plans, AWS automatically charges your compute usage at the lower Savings Plans rates. 

  • Suitable for organizations that want to maintain flexibility while avoiding upfront costs.
  • Suitable for applications with varied usage requirements but will likely operate over a long time.

3. Reserved instances

Amazon lets you reserve instances for a period of 1-3 years and receive discounts of up to 75%. In a reserved instance model, if you need to scale down, you cannot get rid of the reserved instances. Scaling up will require consuming resources on-demand at a higher cost. This reduces the flexibility of the Amazon offering, although you can still benefit from the advanced automation options and rich ecosystem of services Amazon provides. 

  • Suitable for organizations that are primarily running existing or legacy enterprise applications on the cloud.
  • Suitable for applications that have predictable usage which can be planned a long time in advance or have a predictable growth trend.

4. Spot instances

Spot instances are only available for Amazon EC2. They offer the deepest discounts available on Amazon, up to 90% from on-demand instance pricing. Spot instances allow you to bid for spare computing capacity on Amazon’s open market. Pricing may change every five minutes, and if your price bid is above the current market price, you receive the spot instance. The Amazon EC2 Spot service can interrupt your instance if capacity is not available, or the current spot price exceeds your maximum price. 

  • Suitable for organizations that have advanced cloud-native development capabilities, with the ability to dynamically cluster, start, stop and migrate applications.
  • Suitable for applications that are stateless and either highly distributed, or run non-time-critical workloads, for example overnight batch processing of analytics data.

AWS Cost Management Tools

Amazon provides a broad set of free tools for cost management and optimization. Familiarize yourself with these tools, and use them to gain data, make decisions, and create rules and automated actions that will help you save money on AWS.

Billing and Cost Management Console

The billing section of the Amazon Console lets you see what services you are consuming on AWS and optimize their structure. Use tagging to organize services by project or department, and consolidate AWS accounts to create one billing entity for each project that has a separate budget within your organization. Read the official documentation on how to consolidate AWS billing accounts.

AWS Cost Explorer

The Cost Explorer interface lets you view usage, costs, and return on investment for Amazon services. It shows data for the past 13 months and helps you forecast future spend. Create customized views that can help you analyze your costs and identify areas for improvement. Cost Explorer also provides an API that lets you access the data via your analytics tools.

AWS-Cost-ExplorerSource: Amazon Web Services

AWS Budgets

AWS Budgets lets you set and enforce budgets for specific Amazon services, and receive emails or messages from the Simple Notification Service (SNS) when budgets are reached or exceeded. You can specify an overall cost budget or connect the budget to specific data points, such as number of instances or data usage. The Budgets dashboard provides similar views to those of Cost Explorer, showing how services are being used compared to their budgets.

AWS Trusted Advisor

AWS Trusted Advisor is an automatic tool that provides guidance on best practices for your Amazon services. One of the five areas checked by Trusted Advisor is cost optimization. It provides automated optimization recommendations related to: 

  • EC2 reserved instance optimization and lease expiration
  • Low utilization of EC2 instances
  • Idle load balancers
  • Underutilized EBS volumes
  • Unassociated elastic IP addresses
  • Idle DB instances on Amazon RDS
  • Redundant Route 53 latency resource record sets
  • Underutilized Amazon Redshift clusters

Amazon CloudWatch

Amazon CloudWatch lets you set alarms based on a large variety of metrics captured from your Amazon services. CloudWatch is commonly used for cost optimization. For example, you can set up an alarm and notification when an EC2 instance’s utilization goes below 30%, investigate why the instance is underused, and take action to right-size the instance or combine workloads.

AWS Cost Reduction Checklist

Follow this checklist to reduce the costs of your AWS resources: 

Control costs

  • Create a budget plan to guide AWS resource spending.
  • Analyze your costs using the Cost and Usage Report in the AWS Console.
  • Use AWS Trusted Advisor to view cost estimates and unused resources. 

Optimize compute instances

  • Use instances on EC2 or any other service that fits your requirements.
  • Purchase reserved instances for a reasonable period of time. If you don't need an instance, don't keep it longer than necessary.
  • Use the latest instance types - they typically provide higher efficiency or better performance at a lower price.
  • Carefully select which workloads to run on reserved instances and which to run on on-demand instances.
  • Consider the use of spot instances for workloads that don’t require high reliability.
  • Schedule instances to ensure they run only during business hours or when needed. You can achieve this automatically using AWS Instance Scheduler or other tools. 

Optimize storage and other resources

  • Avoid orphaned EBS volumes by checking the Delete on Termination checkbox when creating EC2 instances.
  • In most cases, keep EBS snapshots for only a few weeks and delete them as new ones are created.
  • Terminate unneeded resources such as database volumes and Elastic IPs that are not in use.
  • Store production files in S3 and move them between storage tiers based on activity, or dynamically using S3 Smart Tiering.
  • Archive infrequently used data in S3 Glacier and back up your long-term archived data in Glacier Deep Archive.

AWS Cost Optimization Best Practices

Identify Amazon EC2 Instances with Low Utilization

AWS Cost Explorer provides the Resource Optimization report, which shows idle or underutilized EC2 instances. You can drive cost reduction by stopping these instances or switching them to a smaller instance size. Another option is to automatically stop underutilized instances using the AWS Instance Scheduler, or automate scheduling of instances using AWS Operations Conductor. 

The AWS Compute Optimizer provides additional recommendations for EC2 instances. For example, it can suggest how to downsize instances across instance families, or switch to more powerful instances to avoid performance bottlenecks. It can also provide recommendations for efficient use of Auto Scaling groups.

Use or Sell Underutilized Reserved Instances

Reserved Instances can significantly reduce costs on Amazon, but only if you actually use them. If you have idle reservations, it is important to make use of them to avoid losing your investment. 

When you discover an unused or underused reserved instance, you can use them for a new application, or an existing application running on more expensive on-demand instances. Otherwise, you can sell your RIs in the Reserved Instance Marketplace.

Use Amazon EC2 Spot Instances for AWS Cost Reduction

If your workload is fault-tolerant, using Spot Instances can reduce EC2 costs by up to 90% and is a key strategy for AWS cost reduction. The main caveat is that spot instances can be interrupted at two minutes’ notice. Examples of typical workloads include big data, containerized workloads, CI/CD, web servers, and development/testing. 

Amazon provides the Spot Fleet feature, which lets you run both on-demand and spot instances in the same Auto Scaling group, letting you reserve some on-demand instances which cannot be interrupted, for critical components.

AWS Cost Reduction with Cloud Volumes ONTAP

NetApp Cloud Volumes ONTAP, the leading enterprise-grade storage management solution can do even more to help reduce your overall AWS spending through its powerful storage efficiency technologies, space-efficient snapshots, and zero-cost data cloning. With the thin provisioning, data compression, and deduplication storage efficiencies, companies can reduce storage footprint and costs on AWS by 70% and more.

New call-to-action

Read More About AWS Costs

AWS cost optimization is a broad topic. Different Amazon services have different pricing models and cost optimization techniques. Read the articles below to gain a deeper understanding of Amazon cost management strategies, with a special focus on storage services and opportunities for optimizing storage costs.

AWS Storage Costs

Amazon provides several popular cloud storage services: Elastic Block Store (EBS), Elastic File System (EFS), Simple Storage Service (S3), S3 Glacier, and more, each with its own pricing model and unique pricing parameters.

Understand storage costs across each of the primary storage services, and see Amazon storage pricing all in one place, with examples covering the most common scenarios. 

Read more: AWS Storage Costs: All in One Place

Controlling EBS Costs

Amazon EBS provides persistent storage for Amazon EC2 instances. However, when you shut down an EC2 instances, the EBS storage volume may be not automatically deleted. This can lead to major cost overages, for example in case you deploy auto scaling and automatically create largen numbers of EC2 instances, but forget to erase their attached EBS volumes when they are no longer needed.

Learn how to find unused EBS volumes and automatically delete them using an AWS Lambda function, to control EBS costs and avoid waste.

Read more: Control EBS Costs: How to Find and Delete Unused AWS EBS Volumes Using a Lambda Function

Cloud Snapshot Costs: AWS Snapshots, Azure Snapshots, and Cloud Volumes ONTAP

Snapshots are an important part of keeping data protected no matter which cloud you’re using. But if you’re not aware of the costs involved both in the creation of snapshots and for storing them, you might wind up straining your cloud budget, especially when there are demands for consistency, which requires constant backing up.

This post deals with managing the costs of the native snapshots capabilities that are available for Amazon EBS and for Azure storage. You’ll see examples of how the snapshots are created and the pricing formulas on each service. Plus, you’ll see how NetApp Snapshots with Cloud Volumes ONTAP Cloud give a cost-saving third option for snapshot protection that works in any cloud.

Read more: Cloud Snapshot Costs: Cloud Volumes ONTAP, Azure, and AWS EBS Snapshot Pricing

AWS Cost Management: 9 Free Tools to Help Cut Your Costs

Amazon Web Services (AWS) provides a range of free tools for optimization and cost management. Discover a range of free Amazon cost management tools that can help you visualize, analyze, and cut cloud costs in the AWS cloud.

Read more: AWS Cost Management: 9 Free Tools to Help Cut Your Costs

AWS RDS Pricing Explained

Amazon Relational Database Service (Amazon RDS) provides a fully-managed database that includes security and high availability. Learn about key components of RDS pricing, including the free tier, pricing per database engine, database storage, provisioned IOPs, and more.

Read more: AWS RDS Pricing Explained

EFS Pricing Explained

Amazon Elastic File System (Amazon EFS) offers serverless elastic file systems. Understand the basic components of EFS pricing - storage, redundancy, and storage tiers - and learn how to optimize your EFS costs.

Read more: EFS Pricing Explained

AWS Calculator: Step By Step

You can use the official, free AWS Pricing Calculator to research AWS services and generate cost estimates for future usage of AWS. Learn how to use the AWS Calculator to generate quick estimates, advanced estimates, organize workloads using groups, and more in our detailed guide.

Read more: AWS Calculator: Step By Step

AWS Snowball Pricing Simplified

AWS Snowball is a service that ships a physical device to your data center, in order to transfer large amounts of data to or from Amazon S3. Get a simple explanation of AWS Snowball pricing components, including job and day rates, upfront commitments, data transfer, storage pricing, and shipping fees.

Read more: AWS Snowball Pricing Simplified

AWS Storage Gateway Pricing Explained

AWS Storage Gateway is designed to establish a secure connection between the AWS cloud storage infrastructure and on-premises software appliances. Understand pricing for all types of AWS Storage Gateway: including S3 File Gateway, FSx File Gateway, Volume Gateway, Tape Gateway, Hardware Appliance, and more.

Read more: AWS Storage Gateway Pricing Explained

Understanding AWS Total Cost of Ownership (TCO)

Cloud TCO involves calculating the costs required to host, run, integrate, secure and manage workloads in the cloud over their lifetime. Learn how to estimate AWS Total Cost of Ownership as compared to the TOC of your on-premises environment, and how to evaluate the viability of your AWS migration.

Read more: Understanding AWS Total Cost of Ownership (TCO)

Yifat Perry, Technical Content Manager

Technical Content Manager