TL;DR: calculator.aws is a free, no-login tool that assembles a per-service cost estimate before you build, pulling accurate per-unit rates from the AWS Price List API. It's a calculator, not a forecaster — the rates are right; the usage you type is the risk. Nearly every estimate that misses reality by 2–3× left out one of seven line items (cross-AZ transfer, NAT processing, CloudWatch Logs, inter-region transfer, S3 requests, EBS snapshots, RDS IOPS). Anchor to a measured reference, build per-component, add a 20% buffer, and you land within ±20% instead of ±100%.
The numbers
- The seven most-forgotten items: cross-AZ transfer $0.01/GB each way (chatty multi-AZ meshes dwarf the compute), NAT Gateway $32/mo × AZs + $0.045/GB, CloudWatch Logs $0.50/GB ingest (no free tier), inter-region ~$0.02/GB, S3 request charges ($0.005/1K PUT), EBS snapshots $0.05/GB-mo accumulating, RDS provisioned IOPS ($0.10–0.125/IOPS-mo) + storage growth.
- Small-object S3 is request-dominated: 50 KB files at 1 GB/min ≈ 864M PUTs/mo = $4,320 in requests vs ~$990 storage — over 4× the storage cost.
- Field examples: a 12-service, 3-AZ gRPC mesh estimated $8,200/mo billed $28,500 (cross-AZ traffic was ~$13K alone; topology-aware routing + compression brought it to ~$10,800); an analytics migration estimated $4,500 billed $11,000 in month 1 purely from a one-time 18-month backfill, then settled at ~$4,400.
Do this
- Anchor to a measured reference workload, not an architecture diagram — "similar to service X at $4,200/mo, adjusted for 2× traffic" beats pure bottom-up (which is consistently optimistic).
- Build one row per logical component (EC2 hours + EBS + transfer, RDS instance + storage + IOPS + backup, S3 storage + requests + transfer, NAT base × AZs + processing, CloudWatch Logs GB…), and add Data Transfer as its own line.
- Multiply by environments — prod, staging, dev are separate estimates (dev/staging often 30–60% of prod).
- Add a 20% "things we forgot" buffer and apply Savings Plans/RI pricing last, showing on-demand and committed side by side.
- Separate one-time from run-rate (migration, backfill, parallel-running) and, for procurement, present P10/P50/P90 scenarios with the shareable link attached.
Gotchas
- Rates accurate, usage assumed — when an estimate is off by 3×, the gap is almost always estimated-vs-actual usage, not an AWS price change; localize it in Cost Explorer first, then rebuild that one service.
- It doesn't model traffic shape — steady 100 RPS and bursty 0–1000 RPS with the same average cost the same here but very differently in reality (autoscaling minimums, NAT throughput).
- It doesn't know your EDP/PPA — multiply output by your effective discount post-hoc; and Marketplace/third-party charges (Datadog, Snyk) are separate.
- It's a point estimate, not a curve — build multiple sizes if you need to show scaling; re-estimate quarterly.
Skip this if
- You're investigating a bill you already have — use AWS Cost Explorer (what you spent) and Cost and Usage Reports (line-item forensics); the calculator is prospective. For a large on-prem migration, start with AWS Migration Evaluator instead. Once built, the calculator's output is a target to measure against — reality-check at month 1 in Cost Explorer and set the divergence alert in AWS Budgets.