Migrate to RunxBuild and earn up to $50 in hosting credit on your first deposit.

Calculate your savings
unxBuild

AWS Cost Optimization Best Practices: Reserved Instances, Savings Plans, and Sizing

Sean

Platform Writer

Jul 05, 2026
7 min read

AWS cost optimization has five levers: rightsizing (match instance type to actual workload), commitments (Savings Plans / Reserved Instances for steady-state workloads), Spot Instances (80-90% off for fault-tolerant workloads), lifecycle policies (move old data to cheaper storage tiers), and turning off idle resources. The team that applies all five typically saves 30-60% versus running everything on-demand. The team that does just one sees modest gains.

AWS Cost Optimization Best Practices: Reserved Instances, Savings Plans, and Sizing

Table of contents

The five levers

AWS cost optimization, ranked by impact:

  1. Rightsizing: Match instance type to actual workload. Many teams over-provision by 2-3x. AWS Compute Optimizer or Trusted Advisor gives recommendations.
  2. Commitments: Savings Plans (1- or 3-year) for predictable workloads - up to 72% off on-demand.
  3. Spot Instances: 70-90% off on-demand for fault-tolerant workloads (batch jobs, stateless APIs, CI runners).
  4. Storage tiering: Move old data from S3 Standard to S3-IA or Glacier. Turn on S3 Intelligent-Tiering.
  5. Idle resource cleanup: Stop dev/test environments outside business hours. Delete unused EBS volumes, snapshots, load balancers, EIPs.

The team that applies all five typically saves 40-60% on the AWS bill. The team that does only commitments saves 20-30%.

Right-sizing with Compute Optimizer

AWS Compute Optimizer analyzes CloudWatch metrics (CPU, memory, network) and recommends instance type changes:

aws compute-optimizer get-ec2-instance-recommendations \
  --instance-arns arn:aws:ec2:us-east-1:123456789012:instance/i-12345

The output suggests downsizing (e.g., m5.xlarge to m5.large) or upsizing if undersized. The team that runs this monthly and applies the recommendations over a quarter typically reduces instance count or size by 20-40%.

Tools that complement Compute Optimizer:

  • Vantage: Cloud cost visibility across multiple clouds.
  • CloudHealth: VMware’s cloud management platform.
  • Spot.io (now NetApp): Spot instance automation.
  • Kubecost: K8s-specific cost visibility.

Savings Plans vs Reserved Instances

Savings Plans (the newer model) and Reserved Instances (older) both give discounts for commitments.

Savings Plans:

  • EC2 Instance Savings Plans: up to 72% off, apply to a specific instance family in a region (e.g., m5 in us-east-1).
  • Compute Savings Plans: up to 66% off, apply to any instance family, region, or even Lambda/Fargate.
  • SageMaker Savings Plans: for ML workloads.

Reserved Instances:

  • Standard RI: up to 75% off, locked to instance type/region.
  • Convertible RI: up to 66% off, can change instance type/region.

The team that has predictable workloads commits with Savings Plans. The team that needs flexibility uses Compute Savings Plans. The team that has bursty workloads uses Spot.

Spot Instances for fault-tolerant workloads

Spot instances are AWS’s spare capacity, sold at 70-90% discount. AWS can reclaim them with 2 minutes notice.

Good fits:

  • Stateless web/API servers behind a load balancer (k8s node groups with mixed on-demand + spot).
  • Batch processing (EMR, ECS batch, Glue).
  • CI/CD runners.
  • ML training (especially with checkpointing).
  • Rendering, simulation, anything that can resume.

Bad fits:

  • Stateful databases (don’t tolerate reclaim).
  • Single-replica services (no fallback).
  • Real-time systems with strict latency budgets.

The team that uses Spot for the right workloads saves significantly. The team that puts databases on Spot has outages.

Storage tiering

S3 storage classes:

  • S3 Standard: $0.023/GB/month. Frequent access.
  • S3 Intelligent-Tiering: $0.023/GB for frequent, $0.0125 for infrequent, $0.004 for archive. Auto-moves based on access.
  • S3 Standard-IA: $0.0125/GB/month. Infrequent access (30-day minimum).
  • S3 Glacier Instant Retrieval: $0.004/GB/month. Archive with millisecond retrieval.
  • S3 Glacier Flexible Retrieval: $0.0036/GB/month. Minutes-to-hours retrieval.
  • S3 Glacier Deep Archive: $0.00099/GB/month. Hours-to-days retrieval.

The team that turns on S3 Intelligent-Tiering for buckets with mixed access patterns saves 20-50% on storage costs. The team that uses lifecycle policies to archive old data after 90 days saves more.

Cleanup automation

Common idle resources that cost money:

  • Stopped EC2 instances (still pay for EBS).
  • Unattached EBS volumes.
  • Old EBS snapshots.
  • Unused Elastic IPs ($0.005/hour each).
  • Idle load balancers ($0.0225/hour).
  • Unused NAT gateways ($0.045/hour).
  • Idle RDS instances.

Tools:

  • AWS Instance Scheduler: Stop/start instances on schedule.
  • Cloud Custodian: Open-source rules engine for cleanup.
  • Terraform / Pulumi: Tear down resources when not needed (dev environments).

The team that runs a weekly cleanup script finds and removes 5-15% of cloud spend that was leaking.

FAQ

What is the biggest AWS cost saving?

Usually rightsizing. Many teams over-provision by 2-3x. The team that runs Compute Optimizer and applies recommendations for a quarter typically reduces compute spend by 20-30%.

How much do Savings Plans save?

Up to 72% off on-demand for 3-year commitments, 66% for 1-year. The team that commits to its predictable baseline and uses on-demand for spikes saves significantly.

Are Spot Instances reliable?

Yes, for the right workloads. Spot interruption rates are typically <5% per month for popular instance types. The team that uses mixed on-demand + spot node groups in K8s has the best balance.

What is the difference between Savings Plans and Reserved Instances?

Savings Plans are the newer model (launched 2019). Reserved Instances are older and more granular. Both give discounts for commitments. The team starting fresh uses Savings Plans.

How do I track AWS costs?

AWS Cost Explorer for built-in visibility. Kubecost for K8s-specific breakdown. Vantage, CloudHealth, or Spot.io for multi-cloud or advanced features. The team that uses these proactively catches cost anomalies early.

If you are sizing the infrastructure for the kind of project this post covers, the RunxBuild hosting calculator is the right place to model the line items. The compute, the memory, the storage, the bandwidth, the database - each one is a separate number, and the team’s mental model for the platform is the sum of those numbers. The RunxBuild dashboard is where the team sees the actual usage in one place.

Useful related references:

#aws#cost#savings#dev-infra