AWS cost optimization: 5 best practices for 2026


Table of contents
Subscribe to our newsletter
Get insights to help move your business forward.
Updated date: 08/10/2026
With a 28% market share, Amazon Web Services remains the biggest cloud provider on the planet. Organizations across industries use AWS to build secure and scalable digital environments.
However, as businesses scale cloud adoption, operating costs become a natural concern. Fortunately, there are several popular strategies for AWS cost optimization that allow your business to manage cloud spending in a responsible way.
In this post, we’ll share popular strategies for reducing your AWS cost without affecting application performance.
Let’s start by exploring the resources that create a significant cost burden. One such service is EC2 (Elastic Compute Cloud). We definitely need a solution that stops a redundant EC2 instance or modifies its instance type to a lower price type. RDS, EBS volumes, and AI/ML services like Sagemaker can also pile up your AWS costs.
Here are a few techniques to help you tackle the usage of the above resources.
Monitor AWS spend with native cost management tools
Before getting into the nitty-gritty of the strategies, it’s important to understand the existing state of your infrastructure. You can analyze your spending and immediately limit further costs by accessing billing information and usage records.
AWS provides a few native tools that can help you gather cost data and system metrics to identify cost-related inefficiencies in your setup:
These tools evaluate your bill to forecast future spending and provide a thorough report on where your money went. This information is especially useful for budget plans. Note that Cost Explorer, the Cost and Usage Report, and AWS Budgets are available to every account, while the full Trusted Advisor cost optimization category requires a Business or Enterprise support plan.
Use tags to allocate AWS costs by team and application
Using an AWS tag is a pre-emptive step toward cost optimization. A tag is a label that you or AWS apply to an AWS resource. You can arrange the resources in use by tags to see who is utilizing which AWS service and how.
A strong IT governance policy that requires all cloud-based resources to be tagged is another way to prevent the creation of rogue infrastructure and to make unauthorized resources easy to detect.
Cost Allocation, which allows you to categorize and track your AWS expenditures, can also be done using tags. This lets you associate costs with technical or security dimensions, such as specific applications, environments, or compliance programs.
Simplifying your S3 Lifecycle configurations using object tags will be most helpful if you currently have tens or hundreds of rules in your lifecycle configuration filtered through your prefixes. We recommend consolidating those rules by using object tags.
The ability to split down the AWS charges by tag is supported by AWS Cost Explorer. Check out this post by AWS for more information on using cost allocation tags.
Rightsize EC2, EBS, and network resources
The pricing of most cloud providers is complex. It appears straightforward at first (typically based on basic parameters like $/GB/month, $/hour, or, more recently, $/second), but when your cloud infrastructure grows and includes multiple regions and services, you’ll find it difficult to keep track of the ever-increasing cost.
For example, in a development environment, two "t3.medium" instances might be operating, whereas four "c6i.xlarge" instances might be running in production. Although it saves money, we still must run extra NAT Gateways per Availability Zone that were deployed as part of the main VPC configuration. Data transfer across Availability Zones is not free. So, what are the cost-cutting options?
Consider the following pointers to evaluate your configurations against some rightsizing options:
- Evaluate if you need the same VPC setup in all situations. For lesser settings, would a single AZ be enough? Do production and performance environments require multiple AZs?
- Evaluate if you are using the correct instance type. In the above example, we can reduce cost by up to 20% by moving to Graviton-based instances such as the t4g or c7g series, and Graviton4 instances deliver up to 40% better price-performance than comparable x86 instances. Always check pricing before enabling AWS Compute Optimizer for automated findings.
- Use Auto Scaling to scale your application based on demand. Analyze the result using describe-scaling-activity to see if the scaling policy can be tuned to add instances less aggressively. Auto Scaling is one of the most effective ways to control AWS costs. Schedule it with CloudWatch Event Rules for an automated stop/start of the instance when not in use or use AWS Instance Scheduler.
- Use the Trusted Advisor Idle Load Balancers Check to get a report of load balancers that have a request count of less than 100 over the past seven days. Then, you can delete these load balancers to reduce costs. Additionally, you can also review data transfer costs using Cost Explorer. For better insight, DevOps engineers should check with the development and business teams to check if these resources can be safely decommissioned.
- Evaluate if you are using the latest EBS volume type. For e.g., upgrading from gp2 to gp3 volumes can save up to 20%.Amazon EBS gp2 volumes are simple to use, but their performance is coupled with provisioned size that increases linearly with the volume size. On the other hand, gp3 provides predictable 3,000 IOPS baseline performance and 125 MiB/s, regardless of volume size. With gp3 volumes, you can provision IOPS and throughput independently without increasing storage size. As a result, conversion to gp3 definitely helps in the cost-optimization of volumes. EBS volumes that have very low activity (less than 1 IOPS per day) over a period of 7 days indicate that they are probably not in use. Identify these volumes using the Trusted Advisor Underutilized Amazon EBS Volumes Check. To reduce costs, first snapshot the volume (in case you need it later), then delete these volumes. You can automate the creation of snapshots using the Amazon Data Lifecycle Manager.
- Evaluate whether you really need a NAT Gateway. If your workload uses it only to reach Amazon S3 or DynamoDB, a gateway endpoint removes both the NAT Gateway hourly rate and its data processing charges, at no cost for the endpoint itself. Services such as SES only offer interface endpoints, which are billed hourly per endpoint and per availability zone, plus per GB processed. At low volumes an interface endpoint can cost more than the NAT path it replaces, so model it before switching.
- Evaluate EC2 Pricing Model. By opting for the EC2 Instance Savings Plan, businesses can reduce costs by up to 72% compared to on-demand pricing, in exchange for committing to a single instance family in a single region. Compute Savings Plans reach up to 66% but apply to EC2 usage regardless of instance family, size, AZ, region, OS, or tenancy, and also cover Fargate and Lambda usage. And by opting to spot based instance pricing, they can save up to 90%.
- Terminate orphaned EC2 instances and volumes to save cost. Look at the CloudWatch dashboard and estimate past usage and use AWS Cost Explorer Resource Optimization to get a report of EC2 instances that are either idle or have low utilization. You can reduce costs by using AWS Instance Scheduler to automatically stop instances or scale down the ASGs requirement to a minimum. Use Amazon EventBridge rules with Systems Manager Automation to automatically resize the EC2 instances.
- For reducing the cost on Amazon SageMaker AI instances, pause the instances that you don’t need for performing modeling jobs. You can do this manually or by using compute services. You can also try finding the RDS in ‘available’ state by creating your own custom lambdas and then scheduling a time to stop instances or databases that are not attached to any other resources.

Reduce Amazon S3 costs with storage classes and lifecycle rules
S3, the Simple Storage Service, is one of AWS’s most well-known and widely utilized services. However, it can have adverse consequences if not adjusted properly. While we’re not going to focus on security here, there are still a few factors to keep in mind when storing items in S3:
- Should I version my objects? Version objects consume storage and so contribute to the overall cost. So, if versioning isn’t necessary, don’t enable it. Even if enabled, use appropriate lifecycle rules to automate the removal of expired versions.
- Choose the right storage class for your objects and if possible, choose S3 Intelligent-Tiering. Analyze the object usage using S3 Storage Class Analysis and decide on the storage type, standard, infrequent access, etc., as each has its pricing.
- Also, remember to use the S3 life cycle for objects with object tags filter. Transitioning objects to colder storage classes reduces cost when access patterns justify it, but factor in per-request transition charges and minimum storage durations first, from 30 days for Standard-Infrequent Access up to 180 days for Glacier Deep Archive. Transitioning small objects or short-lived data increases the bill rather than reducing it.
For static websites or frontend, it is preferable to choose S3 behind Amazon CloudFront instead of EC2 , since it removes instance hours, patching, and scaling from the equation entirely, and CloudFront reduces origin requests and egress cost for repeat traffic.
Move eligible workloads to serverless to stop paying for idle capacity
AWS offers technologies for running code, managing data, and integrating applications, all without managing servers. Serverless technologies feature automatic scaling, built-in high availability, and a pay-for-use billing model to increase agility and optimize costs. This also eliminates infrastructure management tasks like capacity provisioning and patching; so you can focus on writing code that serves your customers. Serverless applications start with AWS Lambda, an event-driven compute service natively integrated with over 200 AWS services and software as a service (SaaS) applications.
In addition to cost savings, serverless architecture also helps you create a more secure and scalable infrastructure, improving the overall developer experience.
Cost optimization is a modernization decision
The most durable AWS savings rarely come from a single cleanup. They come from treating cost as an architectural signal: migrating to current instance families, re-platforming workloads that were never designed for elastic infrastructure, and putting governance in place so that spend stays proportional to value. Read that way, a cloud bill is a modernization backlog with prices attached.
Modus Create is an AWS Advanced Consulting Partner holding four AWS Competencies: Security, Life Sciences, Generative AI, and the Migration Acceleration Program. We help enterprises in regulated and high-scale environments optimize and modernize their AWS infrastructure together, from Graviton migrations to full cloud modernization programs. Talk to our AWS experts about turning your cloud bill into a modernization roadmap.

Why did my AWS bill increase when my usage stayed the same?
Four causes account for most flat-usage increases. An expired Savings Plan or Reserved Instance sends the same workload back to on-demand rates overnight. Twelve-month free tier eligibility ends. Storage grows even when compute does not, through noncurrent S3 object versions, EBS snapshots, and CloudWatch log groups with no retention set. And support plans are billed as a percentage of spend, so they scale with everything else. Check commitment expiry dates first, since that produces the sharpest single-month jump.
Should I clean up waste before buying Savings Plans?
Yes, and the order is not interchangeable. A Savings Plan is a one or three year commitment that cannot be reduced, so committing against a baseline that still contains idle instances locks in that waste for the full term. Cost Explorer's recommendations are calculated retrospectively over a 7, 30, or 60 day lookback, which means they include the resources you are about to delete. Clean up first, let usage settle for two to four weeks, then size the commitment.
Should I choose Compute or EC2 Instance Savings Plans?
Compute Savings Plans reach up to 66% off on-demand and apply across instance families, sizes, regions, and operating systems, plus Fargate and Lambda. EC2 Instance Savings Plans reach up to 72% but lock coverage to a single instance family in a single region. The extra six points only materialize if utilization stays high for the entire term, so the narrower plan suits workloads whose instance family and region will not change. Mixed or evolving estates are better served by the flexible option.
Do I need a paid AWS support plan to use cost optimization tools?
Mostly no. AWS Cost Explorer, AWS Budgets, Cost and Usage Reports, Cost Anomaly Detection, S3 Storage Lens free metrics, AWS Compute Optimizer, and Cost Optimization Hub are all available at no additional charge. The exception is AWS Trusted Advisor: a core set of checks is open to every account, but the full cost optimization category requires a Business or Enterprise support plan.
How do I allocate AWS costs that cannot be tagged?
Some spend has no taggable resource behind it, including inter-availability-zone data transfer, NAT Gateway processing, support fees, and shared Kubernetes clusters. Three approaches work. Enable split cost allocation data in the Cost and Usage Report to attribute Amazon EKS costs down to pod level. Separate teams into distinct AWS accounts so allocation happens at account level. For the remainder, agree on a proportional allocation key with finance and document it, rather than leaving it in an unallocated bucket that nobody reviews.
How long before optimization work shows up on the bill?
Cost and usage data refreshes roughly every 24 hours, so the direction of travel is visible within a day or two. The full effect takes a billing cycle. Two things can make the first month look worse than expected: storage class transitions carry per-request charges and minimum storage durations, from 30 days for Standard-Infrequent Access up to 180 days for Glacier Deep Archive, and Savings Plans with upfront payment appear as amortized cost rather than immediate reduction. Compare against a like-for-like month, not against the month you did the work.
How do I control the cost of AI inference on AWS?
Pricing mode matters more than infrastructure for most inference workloads. On Amazon Bedrock, batch inference runs asynchronous jobs at roughly half the on-demand token rate, and prompt caching reduces the cost of repeated input context by up to 90%, though cache writes carry a premium so a low hit rate can cost more than not caching. Route simple tasks to smaller models and benchmark cost per completed task rather than per token, since a cheaper model that produces verbose output can cost more overall. SageMaker AI Savings Plans apply commitment discounts to training and inference endpoints.

Rahul is a DevOps Engineer at Modus Create with deep expertise in the AWS ecosystem. He is a passionate technologist with extensive experience in enabling agile DevOps practices, design, and solutions across various cloud technologies and platforms. Outside of work, he enjoys spending time with his family and discovering new places and cultures.
LET'S GET STARTED
Talk to Modus Create
Big challenges need bold partners. Let’s talk about where you want to go — and start building the path to get there.
Related Posts
Discover more insights from our blog.


