AWS Cost Explorer: Complete Guide to Cloud Cost Analysis
Master AWS Cost Explorer for cost visibility, budgeting, forecasting, and optimization — with practical examples, CLI commands, and comparison with third-party tools
Quick Answer: What Is AWS Cost Explorer?
AWS Cost Explorer is a free, built-in AWS tool for visualizing and analyzing cloud costs. Key capabilities:
Cost analysis — Filter by service, account, tag, region, and usage type with daily/monthly/hourly granularity
Forecasting — ML-based 12-month cost predictions with 80% confidence intervals
Right-sizing — Recommendations for over-provisioned EC2 and RDS instances based on CloudWatch metrics
Savings Plans — Automated recommendations for optimal commitment-based discounts
Executive Summary
AWS Cost Explorer is the starting point for any cloud cost optimization journey. It's free, requires zero setup beyond enabling it, and provides immediate visibility into where your money goes. Yet most organizations use less than 20% of its capabilities — missing forecasting, right-sizing recommendations, and programmatic access via the API.
This guide covers everything from basic setup to advanced techniques: filtering by custom tags, creating saved reports, using the CLI for automated analysis, integrating with AWS Budgets for proactive alerts, and understanding when Cost Explorer's limitations require third-party tools like Kubecost, CloudHealth, or Infracost.
Whether you're a startup checking your first AWS bill or an enterprise managing $1M+/month across 50 accounts, this guide provides actionable techniques to extract maximum value from Cost Explorer.
What Is AWS Cost Explorer and Why Should You Use It?
AWS Cost Explorer is a native AWS service that provides interactive visualization and analysis of your AWS spending and usage. It's available in every AWS account at no additional cost (the console is free; API calls are $0.01 each). Unlike the basic AWS Billing Dashboard that shows current-month totals, Cost Explorer lets you slice, filter, and drill into historical cost data across multiple dimensions.
Core Capabilities
Cost and usage visualization: Line charts, bar charts, and data tables showing spend over time, grouped by any combination of dimensions (service, account, region, tag, usage type)
Granularity options: Monthly (13 months back), daily (3 months), hourly (14 days with detailed monitoring enabled)
Forecasting: Machine learning predictions for future costs based on historical patterns, with configurable confidence intervals
Right-sizing recommendations: Identifies over-provisioned EC2 instances based on 14 days of CloudWatch CPU, memory, network, and disk metrics
Savings Plans recommendations: Calculates optimal commitment levels and estimated savings based on your usage patterns
Reserved Instance utilization: Shows RI coverage, utilization, and expiration to optimize your commitment portfolio
How Do You Set Up AWS Cost Explorer?
Cost Explorer requires a one-time enablement per AWS Organization or standalone account. Once enabled, data becomes available within 24 hours.
Step 1: Enable Cost Explorer
# Enable Cost Explorer via CLI aws ce get-cost-and-usage \ --time-period Start=2026-01-01,End=2026-02-01 \ --granularity MONTHLY \ --metrics "BlendedCost" # If not enabled, the above returns an error. # Enable via Console: Billing → Cost Explorer → Enable Cost Explorer # Or via Organizations management account
Step 2: Configure Cost Allocation Tags
Cost allocation tags are the foundation of meaningful cost analysis. Without them, Cost Explorer shows spend by service — useful, but not actionable. With tags, you can filter by team, project, environment, and customer.
# Activate cost allocation tags aws ce update-cost-allocation-tags-status \ --cost-allocation-tags-status \ TagKey=Environment,Status=Active \ TagKey=Team,Status=Active \ TagKey=Project,Status=Active \ TagKey=CostCenter,Status=Active # Tags take 24 hours to appear in Cost Explorer # Only activated tags show as filter dimensions
Tagging Best Practice
Enforce tags at resource creation using AWS Service Control Policies (SCPs) or Terraform variable validation. Retroactive tagging is painful — 60% of organizations with poor tag hygiene give up and start over. Get it right from day one.
Step 3: Enable Hourly Granularity (Optional)
By default, Cost Explorer provides monthly and daily data. Hourly granularity is available for EC2, RDS, and ElastiCache — useful for identifying time-of-day patterns and optimizing scheduling.
How Do You Analyze Costs by Service, Account, and Tag?
Cost Explorer's power lies in its filtering and grouping capabilities. Here are the most valuable analysis patterns.
Analysis 1: Top 10 Services by Cost
# Get cost breakdown by service for last 3 months aws ce get-cost-and-usage \ --time-period Start=2025-11-01,End=2026-02-01 \ --granularity MONTHLY \ --metrics "UnblendedCost" \ --group-by Type=DIMENSION,Key=SERVICE \ --output json | jq '.ResultsByTime[-1].Groups | sort_by(-.Metrics.UnblendedCost.Amount | tonumber) | .[0:10] | .[] | {Service: .Keys[0], Cost: .Metrics.UnblendedCost.Amount}'
Analysis 2: Cost by Team (Using Tags)
# Cost allocation by team tag aws ce get-cost-and-usage \ --time-period Start=2026-01-01,End=2026-02-01 \ --granularity MONTHLY \ --metrics "UnblendedCost" \ --group-by Type=TAG,Key=Team \ --output table
This is where tagging pays off. With consistent team tags, you can generate per-team cost reports for showback/chargeback meetings, track team-level cost trends, and identify which teams are driving spend growth.
Analysis 3: Environment Cost Comparison
Compare production vs. staging vs. development costs to ensure non-production environments aren't consuming disproportionate resources.
# Cost by environment aws ce get-cost-and-usage \ --time-period Start=2026-01-01,End=2026-02-01 \ --granularity MONTHLY \ --metrics "UnblendedCost" \ --group-by Type=TAG,Key=Environment \ --filter '{ "Tags": { "Key": "Environment", "Values": ["production", "staging", "development"], "MatchOptions": ["EQUALS"] } }'
Red Flag: If staging + development costs exceed 30% of production costs, you likely have non-production environments running 24/7 that could be scheduled (nights/weekends off = 65% savings).
How Does Cost Explorer Forecasting Work?
Cost Explorer's forecasting uses machine learning trained on your account's historical usage patterns to predict future costs. It provides point estimates plus confidence intervals (80% and 95%).
Accessing Forecasts Programmatically
# Get cost forecast for next 3 months aws ce get-cost-forecast \ --time-period Start=2026-02-01,End=2026-05-01 \ --granularity MONTHLY \ --metric "UNBLENDED_COST" \ --prediction-interval-level 80 # Response includes: # - Total forecast amount # - Per-month breakdown # - 80% confidence interval (low/high bounds)
Forecast Accuracy Factors
Data history: Needs 5+ months for reliable monthly forecasts. Less history = wider confidence intervals
Workload stability: Steady-state workloads forecast within 5-10%. High-variability workloads (event-driven, seasonal) can be off by 20-30%
Architectural changes: Recent migrations, new services, or major scaling events confuse the model. Wait 2+ months after changes for forecasts to re-calibrate
RI/SP changes: Forecasts incorporate current reservation coverage. New RI purchases will over-estimate (forecast won't reflect the discount until the next billing cycle)
How Do You Use Cost Explorer for Right-Sizing Recommendations?
Cost Explorer's right-sizing recommendations analyze CloudWatch metrics to identify over-provisioned EC2 instances. Accessible via Console (Cost Management → Rightsizing Recommendations) or API.
How Recommendations Are Generated
AWS collects 14 days of CloudWatch metrics: CPU utilization, network throughput, disk I/O
Instances are analyzed against performance requirements of smaller instance types
Recommendations are categorized: Terminate (idle), Modify (downsize), or no action needed
Estimated monthly savings are calculated for each recommendation
# Get right-sizing recommendations aws ce get-rightsizing-recommendation \ --service "AmazonEC2" \ --configuration '{ "RecommendationTarget": "SAME_INSTANCE_FAMILY", "BenefitsConsidered": true }'
Limitation: No Memory Metrics by Default
Cost Explorer right-sizing only uses CPU, network, and disk — not memory. Many workloads (Java apps, Redis, data processing) are memory-bound with low CPU. Without installing CloudWatch Agent for memory metrics, you risk downsizing memory-constrained instances. Always validate recommendations against actual memory usage before acting.
What Are AWS Budgets and How Do They Integrate with Cost Explorer?
AWS Budgets complement Cost Explorer by adding proactive cost management. While Cost Explorer looks backward (what did we spend?), Budgets look forward (are we on track?).
Budget Types
Cost budget: Alert when spend exceeds a dollar threshold (e.g., $50,000/month). Set at 80%, 100%, and 120% for early warning
Usage budget: Alert on resource consumption (e.g., EC2 hours, S3 storage GB). Useful for catching runaway autoscaling
Savings Plans utilization: Alert if Savings Plan utilization drops below threshold (indicating unused commitments)
RI coverage: Alert if RI coverage drops below target (indicating on-demand spend that should be reserved)
# Create a cost budget with alerts aws budgets create-budget \ --account-id 123456789012 \ --budget '{ "BudgetName": "Monthly-AWS-Budget", "BudgetLimit": {"Amount": "50000", "Unit": "USD"}, "BudgetType": "COST", "TimeUnit": "MONTHLY" }' \ --notifications-with-subscribers '[ { "Notification": { "NotificationType": "ACTUAL", "ComparisonOperator": "GREATER_THAN", "Threshold": 80 }, "Subscribers": [ {"SubscriptionType": "EMAIL", "Address": "finops@company.com"} ] } ]'
How Do You Create Custom Cost Reports and Dashboards?
Cost Explorer supports saved reports that you can bookmark and share. For more sophisticated dashboards, export data to QuickSight or Grafana.
Saved Reports
Monthly Executive Report: Group by service, filter to top 10, monthly granularity, 6-month range. Share URL with leadership
Team Cost Breakdown: Group by Team tag, monthly granularity. One report per team for showback meetings
Non-Production Spend: Filter Environment tag = staging/dev, daily granularity. Monitor for scheduling compliance
EC2 Instance Type Analysis: Group by instance type, filter service = EC2. Identify right-sizing opportunities and generation upgrades
Automated Reporting with the API
import boto3 from datetime import datetime, timedelta ce = boto3.client('ce') def generate_weekly_report(): """Generate weekly cost report by service and team.""" end = datetime.utcnow().strftime('%Y-%m-%d') start = (datetime.utcnow() - timedelta(days=7)).strftime('%Y-%m-%d') # Cost by service service_costs = ce.get_cost_and_usage( TimePeriod={'Start': start, 'End': end}, Granularity='DAILY', Metrics=['UnblendedCost'], GroupBy=[{'Type': 'DIMENSION', 'Key': 'SERVICE'}] ) # Cost by team team_costs = ce.get_cost_and_usage( TimePeriod={'Start': start, 'End': end}, Granularity='DAILY', Metrics=['UnblendedCost'], GroupBy=[{'Type': 'TAG', 'Key': 'Team'}] ) # Format and send via SNS/Slack report = format_report(service_costs, team_costs) send_to_slack(report) return report
What Are the Limitations of AWS Cost Explorer?
Cost Explorer is powerful for a free tool, but it has real limitations that growing organizations eventually hit.
No container-level visibility: Can't see costs per Kubernetes namespace, pod, or deployment. You see EC2 node costs, not what's running on them
Single-cloud only: No Azure or GCP data. Multi-cloud organizations need a separate tool for unified visibility
Limited historical data: 13 months maximum. For YoY trending or long-term analysis, you need CUR exports to S3
No pre-deployment cost estimation: Can't estimate the cost of a Terraform plan before applying it. Tools like Infracost fill this gap
Basic anomaly detection: AWS Cost Anomaly Detection is separate and has 24-48 hour lag. No real-time alerting
API costs at scale: At $0.01/request, heavy programmatic usage can cost $50-100/month for large organizations with automated reporting
Cost Explorer vs Third-Party Tools: When Do You Need More?
Cost Explorer is sufficient for many organizations, but certain scenarios demand more capable tooling.
| Capability | Cost Explorer | Kubecost | CloudHealth | Infracost |
|---|---|---|---|---|
| Pricing | Free (API: $0.01/req) | Free tier + $199/mo | $65K+/year | Free OSS + $50/mo |
| Cloud support | AWS only | Any K8s cluster | AWS, Azure, GCP | AWS, Azure, GCP |
| Container visibility | No | Yes (namespace/pod) | Limited | No |
| Pre-deploy estimation | No | No | No | Yes (Terraform) |
| Multi-cloud | No | K8s only | Yes | Yes |
| Anomaly detection | Separate service | Basic | Advanced | No |
| Right-sizing | EC2 only | Pods + nodes | EC2, RDS | No |
| Best for | AWS basics | Kubernetes | Enterprise | IaC teams |
Decision Framework
Spend < $50K/mo, AWS only: Cost Explorer is sufficient. Add AWS Budgets for alerts
Kubernetes-heavy: Add Kubecost or OpenCost for container-level visibility
Multi-cloud: CloudHealth or Spot.io for unified cross-cloud visibility
Infrastructure-as-Code: Add Infracost for pre-deployment cost estimation in Terraform PRs
Enterprise (>$500K/mo): Combine Cost Explorer (free baseline) + Kubecost (K8s) + Infracost (IaC) + custom dashboards
Case Study: Israeli Startup Discovers $120K in Annual Savings Using Cost Explorer
A Series B SaaS company (80 engineers, $180K/month AWS spend) had never used Cost Explorer beyond the billing summary. During a FinOps assessment, we ran three analyses:
Environment tag analysis: Discovered staging costs were 42% of production — should be <15%. Root cause: 3 legacy staging environments nobody owned
Right-sizing recommendations: Found 28 EC2 instances where P95 CPU was under 20%. Downsizing saved $4,200/month
Savings Plans coverage: Only 30% of stable workloads had commitment coverage. Adding a 1-year Compute Savings Plan at 70% coverage saved $5,800/month
Total savings: $10,000/month ($120,000/year) — all discovered using the free Cost Explorer console
Frequently Asked Questions
Is AWS Cost Explorer free?
The basic AWS Cost Explorer console is free for all AWS accounts. The Cost Explorer API charges $0.01 per request. Hourly granularity and forecasting are included at no extra cost. For most organizations, programmatic access costs $10-50/month.
How far back does AWS Cost Explorer show data?
13 months at monthly granularity, 3 months at daily, and 14 days at hourly. For longer history, export Cost and Usage Reports (CUR) to S3 and query with Athena.
What is the difference between AWS Cost Explorer and Cost and Usage Reports?
Cost Explorer is a visual dashboard for interactive analysis. Cost and Usage Reports (CUR) provide raw line-item billing data exported to S3 for custom analysis. Use Cost Explorer for quick insights; use CUR for granular, cross-referenced reporting.
How accurate is Cost Explorer forecasting?
Within 10-15% for stable workloads with 3+ months of history. Accuracy degrades for variable workloads, recent architectural changes, or seasonal patterns. Always use the confidence interval, not just the point estimate.
Can Cost Explorer show costs per Kubernetes namespace?
No. Cost Explorer sees AWS resources, not what's running inside them. For Kubernetes cost allocation, use Kubecost, OpenCost, or AWS Split Cost Allocation for EKS.
Need Help Optimizing Your AWS Costs?
Our FinOps experts help organizations extract maximum value from AWS Cost Explorer and implement advanced optimization strategies. Average client saves 35% on cloud spend within 90 days.
Get a Free Cost AnalysisRelated Articles
FinOps in Practice
Cut AWS costs by 35-40% with FinOps culture, tools, and processes
Cloud Waste Elimination
Find and fix the 35% of cloud spend going to idle and orphaned resources
Top 10 FinOps Strategies
Ranked guide to cloud cost optimization strategies delivering 20-90% savings
Terraform FinOps
Embed cost guardrails and pre-deployment estimation into your IaC workflows
HostingX Solutions
Expert DevOps and automation services accelerating B2B delivery and operations.
Services
Subscribe to our newsletter
Get monthly email updates about improvements.
© 2026 HostingX Solutions LLC. All Rights Reserved.
LLC No. 0008072296 | Est. 2026 | New Mexico, USA
Terms of Service
Privacy Policy
Acceptable Use Policy