Back to HomeCost Optimization

AWS Cost Optimization Guide: 12 Practical Tips to Save 40% on Cloud Costs [2026 Update]

14 min min read
#AWS#Cost Optimization#FinOps#Savings Plans#Graviton#Spot Instances#S3

AWS Cost Optimization Guide: 12 Practical Tips to Save 40% on Cloud Costs

AWS Cost Optimization Complete Guide [2026 Update]

Based on our practical experience, most enterprises can save 30-50% on AWS costs but haven't taken action.

This guide covers 12 proven cost optimization strategies, including the latest features and real case study data from 2025-2026.

Why Cost Optimization Matters

Common reasons for runaway cloud costs:

ProblemImpactOccurrence Rate
Oversized instancesWasting 30-50% compute costs~50% of enterprises
Not using commitment discountsOverpaying 30-72%~60% of enterprises
Idle resourcesComplete waste~30% resources idle on average
Wrong storage classOverpaying 2-5x~40% of enterprises

Good news: all of these can be fixed.

1. Understand Your Cost Structure

First step in optimization: Know where the money goes.

Using AWS Cost Explorer

# View cost trends for past 12 months
aws ce get-cost-and-usage \
  --time-period Start=2025-02-01,End=2026-02-01 \
  --granularity MONTHLY \
  --metrics "BlendedCost" \
  --group-by Type=DIMENSION,Key=SERVICE

Establish Cost Categorization

Use Cost Allocation Tags to track:

TagPurposeExample
EnvironmentDistinguish environmentsprod, staging, dev
TeamTrack team spendingbackend, frontend, data
ProjectProject cost attributionproject-alpha
CostCenterFinancial reportingCC-001

2. Adopt Graviton Processors (Save 40%)

This is the most effective cost optimization strategy for 2025-2026.

What is Graviton?

AWS Graviton is AWS's custom ARM-based processor, providing:

  • 40% better price-performance (compared to Intel/AMD)
  • 60% less energy consumption
  • Fully compatible with most Linux workloads

Real-World Cases

CompanyCost SavingsOther Benefits
Pinterest47%62% carbon emission reduction
SAP35%45% carbon emission reduction
SmartNews50%Latency reduced from 190ms to 60ms

How to Get Started

  1. Assess compatibility: Use Graviton Savings Dashboard
  2. Choose instance types:
    • m7g: General purpose
    • c7g: Compute intensive
    • r7g: Memory intensive
  3. Test migration: Start with non-critical workloads
# View available Graviton instance types
aws ec2 describe-instance-types \
  --filters "Name=processor-info.supported-architecture,Values=arm64" \
  --query 'InstanceTypes[*].InstanceType'

3. Leverage Savings Plans

Savings Plans are AWS's most flexible commitment discount option.

Plan Type Comparison

TypeMax DiscountFlexibilityApplicable Services
Compute Savings Plans66%HighestEC2, Fargate, Lambda, SageMaker
EC2 Instance Savings Plans72%MediumSpecific EC2 families
Database Savings Plans (New)35%HighRDS, ElastiCache, Redshift

2025 New Feature: Database Savings Plans

AWS launched Database Savings Plans in 2025:

  • Supports RDS, ElastiCache, Redshift, MemoryDB
  • 1-year commitment saves up to 35%
  • Supports both Intel and Graviton instances
  • Works with Serverless and Provisioned modes

Selection Recommendations

High predictability, long-term use → 3-year EC2 Instance Savings Plans (72% discount)
Need flexibility, multi-service → 1-year Compute Savings Plans (66% discount)
Database workloads → 1-year Database Savings Plans (35% discount)
Uncertain usage → Start with 1-year plan, upgrade after collecting data

4. Utilize Spot Instances (Save 90%)

Spot Instances are AWS spare compute capacity, priced at up to 10% of On-Demand.

Use Cases

ScenarioSuitabilityReason
Batch processing⭐⭐⭐⭐⭐Interruptible, retryable
CI/CD builds⭐⭐⭐⭐⭐Short-lived tasks
Dev/test environments⭐⭐⭐⭐Don't need 24/7
Container workloads⭐⭐⭐⭐Kubernetes naturally fault-tolerant
ML training⭐⭐⭐⭐Can use checkpointing
Production criticalNeeds additional fault tolerance

Spot Best Practices

  1. Diversify instance types: Don't use just one type
  2. Set up interruption handling: Use Spot Interruption Handler
  3. Combine with On-Demand: Mix to reduce risk
# EKS Spot configuration example
apiVersion: v1
kind: ConfigMap
metadata:
  name: aws-node
data:
  enable-spot: "true"
  spot-interrupt-handler: "true"

5. Optimize S3 Storage Costs

Wrong S3 storage class selection is a common cost waste.

Storage Class Comparison (2026 Pricing)

ClassPrice/GB/MonthUse CaseAccess Cost
S3 Standard$0.023Frequently accessedLow
S3 Intelligent-Tiering$0.0025-$0.023Unknown access patternsMonitoring fee
S3 Standard-IA$0.0125Infrequent access (monthly)Higher
S3 One Zone-IA$0.01Non-critical, reproducibleHigher
S3 Glacier Instant$0.004Archive with instant accessHigh
S3 Glacier Flexible$0.0036Archive (minutes-hours retrieval)High
S3 Glacier Deep Archive$0.00099Long-term archive (12hr retrieval)Highest

Automated Lifecycle Management

{
  "Rules": [
    {
      "ID": "MoveToIA",
      "Status": "Enabled",
      "Filter": {"Prefix": "logs/"},
      "Transitions": [
        {"Days": 30, "StorageClass": "STANDARD_IA"},
        {"Days": 90, "StorageClass": "GLACIER"},
        {"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
      ],
      "Expiration": {"Days": 730}
    }
  ]
}

Recommendation: For data with unknown access patterns, use S3 Intelligent-Tiering for automatic optimization.

6. Right-size Your Instances

AWS reports show approximately 50% of instances are oversized.

Use AWS Compute Optimizer

Compute Optimizer analyzes 14 days of CloudWatch metrics to provide recommendations:

# Get EC2 optimization recommendations
aws compute-optimizer get-ec2-instance-recommendations \
  --instance-arns arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0

Judgment Criteria

MetricOversized SignalRecommended Action
CPU average utilization<20%Downsize instance
Memory utilization<30%Consider smaller instance
Network usage<10% of limitConsider smaller instance

Common Downgrade Paths

m5.xlarge → m5.large (save 50%)
r5.2xlarge → r5.xlarge (save 50%)
c5.4xlarge → c5.2xlarge (save 50%)

7. Shut Down Idle Resources

Common Idle Resources

Resource TypeHow to CheckResolution
Unattached EBSaws ec2 describe-volumes --filters Name=status,Values=availableSnapshot then delete
Unused EIPaws ec2 describe-addressesRelease
Old EBS snapshotsFilter by dateSet retention policy
Idle Load BalancersCheck trafficDelete or consolidate
Unused NAT GatewaysCheck trafficConsider removing

Automated Scheduling

For dev/test environments, use AWS Instance Scheduler:

# Run Monday-Friday 9:00-18:00
Schedule:
  - Name: dev-schedule
    Timezone: America/New_York
    Periods:
      - BeginTime: "09:00"
        EndTime: "18:00"
        WeekDays: mon-fri

Benefit: Shutting down during non-work hours can save 65% of compute costs.

8. Optimize Data Transfer Costs

Data transfer fees are often overlooked but can account for 10-15% of total costs.

Data Transfer Pricing

TypeCostOptimization
Inter-region transfer$0.02/GBMinimize cross-region architecture
Inter-AZ transfer$0.01/GBDeploy related services in same AZ
Internet egress$0.09/GBUse CloudFront
VPC EndpointFree (service side)Use Gateway Endpoints

Optimization Strategies

  1. Use S3 Gateway Endpoint: Free S3 traffic
  2. CloudFront instead of direct egress: CDN typically cheaper
  3. Compress transferred data: Reduce transfer volume
  4. Same-region deployment: Avoid cross-region fees

9. Set Up Budgets and Alerts

AWS Budgets Configuration

# Create monthly budget
aws budgets create-budget \
  --account-id 123456789012 \
  --budget '{
    "BudgetName": "Monthly-Budget",
    "BudgetLimit": {"Amount": "10000", "Unit": "USD"},
    "BudgetType": "COST",
    "TimeUnit": "MONTHLY"
  }' \
  --notifications-with-subscribers '[{
    "Notification": {
      "NotificationType": "ACTUAL",
      "ComparisonOperator": "GREATER_THAN",
      "Threshold": 80
    },
    "Subscribers": [{
      "SubscriptionType": "EMAIL",
      "Address": "[email protected]"
    }]
  }]'

Recommended Alert Thresholds

ThresholdAction
50%Informational notification
80%Warning notification
100%Urgent notification + investigation
120%Immediate action

10. Use Cost Anomaly Detection

AWS Cost Anomaly Detection uses machine learning to automatically detect unusual spending.

Setup

  1. Enable in AWS Cost Management
  2. Select monitoring scope (services, accounts, cost categories)
  3. Set alert thresholds and notifications

Benefits

  • Automatic detection: No manual checking required
  • Fast response: Immediate notification when anomalies found
  • Root cause analysis: Shows anomaly source

11. Consider Multi-cloud and Hybrid Strategies

Not all workloads are best suited for AWS.

Cost Comparison

ServiceAWSAlternativeSavings Potential
Object storage egress$0.09/GBCloudflare R2 ($0)100%
CDNCloudFrontCloudflare50-70%
Simple computeEC2DigitalOcean, Hetzner30-50%
AI inferenceSageMakerReplicate, ModalVaries

12. Build a FinOps Culture

Cost optimization isn't a one-time project—it requires an ongoing organizational culture.

FinOps Best Practices

AspectPractice
VisibilityEvery team can see their own costs
AccountabilityCost included in team KPIs
OptimizationRegular review and adjustment
AutomationUse tools to reduce manual work

Recommended Review Cycles

  • Daily: Anomaly alert checks
  • Weekly: Utilization reports
  • Monthly: Cost trend analysis
  • Quarterly: Savings Plans review
  • Annually: Architecture cost review

Quick Checklist

Optimizations you can do immediately:

  • Enable Cost Explorer and Budgets
  • Check for unused EBS, EIP, Load Balancers
  • Evaluate Graviton migration feasibility
  • Analyze Savings Plans purchase opportunities
  • Set up S3 Lifecycle Policies
  • Shut down dev environments during non-work hours
  • Check for oversized instances

Summary

Optimization StrategySavings PotentialImplementation Difficulty
Graviton migration40%Medium
Savings Plans30-72%Low
Spot Instances60-90%Medium
Right-sizing30-50%Low
S3 optimization50-70%Low
Shut down idle resources100% (for that resource)Low

FAQ

Q1: AWS bill suddenly spiked. How do we find the cause within a day?

Four-step diagnosis. (1) Cost Explorer Group by "Service" — see which service grew dramatically. Usual suspects: EC2, RDS, Data Transfer, S3; (2) Then Group by "Usage Type" — determine if it's instance hours, data transfer, API calls, or storage; (3) Group by "Linked Account / Tag" — pinpoint which account/project/team; (4) CloudTrail API call analysis — check for code bugs causing infinite AWS API loops (every S3 list call costs money). Top 5 common root causes: (A) NAT Gateway data transfer — large traffic going through NAT instead of VPC Endpoints (S3, DynamoDB), doubling per-GB cost; (B) CloudWatch Logs — runaway container logging, can hit $10,000+/month; (C) Forgotten large EC2 instances (p4d, x2iedn at $20+/hour); (D) S3 request fees — code hammering HEAD on objects; (E) Cross-region traffic — forgetting to use CloudFront or misconfigured routing. Prevention: set AWS Budget Alerts (alarm at 80% of monthly threshold), enable AWS Cost Anomaly Detection.

Q2: Savings Plans vs. Reserved Instances — which should we buy?

AWS has primarily promoted Savings Plans since 2024; RIs have largely been superseded. Core differences: (1) Savings Plans — commit to hourly spend; maximum flexibility across instance family, region, OS; (2) Reserved Instance — commit to specific instance type; restricted discount scope but deeper savings for specific scenarios (DB instances, Redshift). Practical guidance: (A) EC2 / Fargate / Lambda use Compute Savings Plans — most flexible; (B) Stable specific instance family (e.g., long-running c5 batch jobs) use EC2 Savings Plans — 5–10% deeper discount than Compute SP; (C) RDS / ElastiCache / Redshift only support RIs (SPs not yet available); (D) DynamoDB uses Reserved Capacity; (E) Never buy 3-year all-upfront in one shot — zero flexibility, enterprise-scale changes get you trapped. Purchase rule of thumb: use Cost Explorer to identify "stable baseline" (lowest consumption) over past 12 months, commit 70–80%, keep 20–30% on-demand for flexibility.

Q3: Can Graviton migration really save 40%? How do we handle compatibility issues?

Yes, depending on workload. Actual numbers: (1) Graviton vs. x86 same tier — AWS prices m7g 20% lower than m6i; (2) Same performance — Graviton typically needs 10–20% fewer instances, overall cost-per-performance savings of 30–40% vs. x86; (3) Specific workloads save more — Java/Go/Python running natively on ARM is nearly seamless, 40% savings common. Compatibility state (2025): (A) Containerized services — most Docker setups support multi-arch build, nearly painless; (B) Common language runtimes — Python, Node.js, Go, Java, .NET 6+ all natively support ARM64; (C) Problematic — C/C++ native extensions (compiled binaries need rebuild), legacy .NET Framework, some proprietary software (Oracle DB Enterprise Edition requires ARM licensing), GPU workloads (no Graviton GPU option). Migration strategy: (A) start with stateless services (web apps, Lambda, Fargate tasks); (B) add linux/arm64 build target to CI/CD; (C) use EC2 multi-arch ASG for gradual migration (10% → 50% → 100%); (D) databases last — highest compatibility risk.

Q4: Our company has no FinOps person. How do we start AWS cost governance?

Small companies start with three things — no dedicated FinOps needed. (1) Monthly AWS cost review meeting (30 min) — engineering lead + finance + CTO review Cost Explorer together, discuss "top 5 most expensive services" and whether spending is justified; (2) Enable three free tools — AWS Cost Explorer, AWS Budgets (monthly total spend alert), AWS Trusted Advisor's Cost recommendations; (3) Establish tagging policy — all resources need at least Environment (prod/staging/dev), Team, and Project tags; use AWS Config rules to block new resources without required tags. Phase 2 (when monthly AWS spend exceeds $30,000): (A) adopt AWS Cost Anomaly Detection — auto-detect anomalies; (B) establish Savings Plans purchasing strategy — quarterly commitment reviews; (C) use Cost and Usage Report (CUR) + QuickSight/Athena for custom analysis. When to hire dedicated FinOps: monthly spend exceeds $200,000, 10+ AWS accounts, or executives asking "why is AWS billing up again?" more than 3 times.

Q5: Is Spot Instance interruption risk acceptable for enterprise workloads?

Increasingly yes, with proper design. Spot interruption reality: (1) Interruption rates — AWS official data shows average Spot interruption rate <5%/month in 2024 (varies by region and instance type); (2) Interruption has 2-minute advance notice — via metadata service; (3) Not all instances interrupt together — AWS disperses across pools. Workloads suitable for Spot: (A) Fault-tolerant batch jobs (data processing, rendering, ML training, ETL) — interruptions just mean re-running, only delay impact; (B) Stateless web services — with ASG/ECS and mixed instance policy mixing on-demand + spot; (C) Dev/test environments — fully spot-viable; (D) CI/CD runners — Jenkins, GitLab runner, GitHub Actions self-hosted. Unsuitable: (A) strongly-consistent DB (primary DB nodes shouldn't be spot); (B) long-running state stores (session stores, unless persisted); (C) real-time trading systems — every second counts, can't interrupt. Enterprise implementation tips: (1) use EC2 Fleet / ASG with mixed instances, set on-demand base (e.g., 20%) + spot top-up (80%); (2) diversify across instance types (m5, m5a, m5n, c5) to reduce aggregate interruption; (3) use EKS Karpenter or ECS capacity provider for automatic interruption handling. Mature teams reach 70–80% spot utilization, saving millions.


Need professional AWS cost optimization consulting?

CloudInsight provides:

  • Free cost health check (analyze your AWS bill)
  • Customized optimization strategies
  • Savings Plans purchase recommendations
  • Ongoing cost monitoring services

Book a Free Cost Health Check to find your savings opportunities.


References

Need Professional Cloud Advice?

Whether you're evaluating cloud platforms, optimizing existing architecture, or looking for cost-saving solutions, we can help

Book Free Consultation

Related Articles