AWS pricing in 2026 is a consumption model with six discount constructs layered on top, and for a data platform the rate card is the least interesting part of it. The cost of Amazon Web Services at scale is set by architecture: where shuffle traffic crosses availability zones, how many small files a lakehouse writes, whether Glue or EMR runs a given job, and how much of the baseline is committed.
This guide skips the usual definitions and works through the decisions that move the bill, using On-Demand list rates and worked arithmetic you can adapt. Confirm every rate at calculator.aws before you budget.
Why AWS Pricing Is an Architecture Problem, Not a Rate Card
Every service bills in its own unit: EC2 seconds, S3 GB-months and requests, Glue DPU-seconds, Athena bytes scanned, Bedrock tokens. No single rate predicts a bill. Three levers recur across all of them: the billing unit your design triggers, the region it runs in, and the commitment wrapped around the steady part. Most of the savings available to an experienced team come from the first lever, because it changes the quantity being multiplied rather than the rate. The sections below follow the data path: compute, storage, query, operational stores, then serving.
The Six Pricing Models in One Table
Each AWS pricing model is a contract with three terms: rate, commitment and exit cost.
| Model | Best for | Max discount | Commitment | Exit cost or risk |
| Free Tier | Proofs of concept | Up to $200 in credits | None | Account closes at six months or $0 credits |
| On-Demand | New or spiky workloads | None (baseline) | None | Steady workloads left here forgo up to 72% |
| Spot | Interruptible batch | Up to 90% | None | Two-minute reclaim notice |
| Reserved Instances | Stable databases | Up to 72% | 1 or 3 years | Locked to instance attributes |
| Savings Plans | Consistent spend, changing architecture | 66% (Compute), 72% (EC2 Instance) | 1 or 3 years | Bills even if usage drops |
| Dedicated Hosts | Compliance, BYOL licensing | Varies | Optional | Whole host billed, used or not |
Savings Plans are four products, not one: Compute (up to 66%, following usage across EC2, Fargate and Lambda), EC2 Instance (up to 72%, locked to family and region), SageMaker (up to 64%) and Database (up to 35%, covering Aurora, RDS and DynamoDB). Compute plans are the right default for most estates, because architecture changes such as Graviton moves or Fargate migrations do not strand the commitment.
AWS EC2 Pricing for Spark and Batch: Spot, Graviton and the Shuffle Tax
AWS EC2 pricing spans three orders of magnitude: a t3.micro costs $0.0104 per hour, an m5.xlarge $0.192 (about $140 a month), and a p4d.24xlarge $32.77 (about $23,900 a month). For Spark-class workloads, three decisions dominate.
- Spot with diversification. Spot discounts reach 90% against a two-minute reclaim notice. Spark tolerates executor loss when shuffle data survives it, so keep drivers and shuffle-critical stages on On-Demand and run executors on Spot spread across several instance families.
- Graviton. Arm-based families cut roughly 20% against comparable x86 after a compatibility check, and the saving stacks with Spot.
- The shuffle tax. Cross-AZ traffic bills $0.01 per GB in each direction. A job that shuffles 50 TB between executors spread across zones pays about $1,000 per run (50,000 GB × $0.02) before any compute. Pinning a cluster to one AZ removes the line, at the cost of zonal capacity risk that your Spot diversification must then absorb.
Governance matters as much as rates: a single p4d.24xlarge forgotten over a weekend burns about $1,570.
AWS S3 Pricing and Lakehouse Layout: Where Small Files Cost You
AWS S3 pricing hides a 23x spread: $0.023 per GB-month in Standard against $0.00099 in Glacier Deep Archive. Moving 100 TB of cold data down that ladder cuts $2,300 a month to $99, about $26,400 a year, from one lifecycle policy.
For lakehouse operators the sharper edge is object count. Requests bill $0.005 per 1,000 PUT, COPY, POST and LIST calls and $0.0004 per 1,000 GETs, which looks negligible until a streaming job commits millions of tiny objects. Intelligent-Tiering adds a $0.0025 per 1,000 objects monitoring fee, so a bucket of one billion small objects pays $2,500 a month just to be watched. The larger cost lands downstream: every small file adds Spark task overhead, listing latency and wasted scan bytes in Athena. Compaction to columnar files of hundreds of MB is therefore a pricing control. Egress at $0.09 per GB after the first free 100 GB also means cross-region reads of that data should be the exception.
AWS Glue Pricing and AWS Athena Pricing: DPU-Seconds, Scanned Bytes and the EMR Break-Even
AWS Glue pricing is $0.44 per DPU-hour, billed per second with a one-minute minimum. A DPU is 4 vCPUs and 16 GB, the same shape as an m5.xlarge at $0.192 per hour. EMR adds roughly 25–30% on top of EC2, so On-Demand EMR on that shape lands near $0.25 per hour. Glue therefore carries roughly a 75% premium per unit of compute, before Spot widens the gap. The premium buys zero cluster operations and per-second billing, which gives a working rule: Glue wins for sparse, bursty or short jobs where a cluster would idle, and EMR on Spot wins for sustained, high-utilization pipelines. Mind the minimum: a 10-second job bills for 60.
AWS Athena pricing is $5 per TB scanned with a 10 MB minimum per query. A query scanning 2 TB of raw CSV costs $10. If partition pruning and Parquet cut that to 50 GB, it costs $0.25. Run that dashboard query 200 times a day and the difference is $2,000 a day against $50 (illustrative). Scanned bytes, not query count, is the meter to engineer.
For lightweight event-driven steps such as file-arrival triggers, AWS Lambda pricing beats launching a job: $0.20 per million requests plus $0.0000166667 per GB-second, about 20% less on Arm. Fifty million invocations at 512 MB and 200 ms cost roughly $87 a month, after the permanent free allowance of 1 million requests and 400,000 GB-seconds.
AWS RDS Pricing, Aurora and DynamoDB: The Operational Stores
AWS RDS pricing combines instance hours, storage, I/O and Multi-AZ. A db.m5.large PostgreSQL instance runs $0.178 per hour (about $130 a month), or about $141 with 100 GB of gp3 at $0.115 per GB-month, before backups. Multi-AZ roughly doubles that to around $280, and a one-year Reserved Instance offsets 29–35% of compute.
Audit Extended Support. Engines past end of life pay $0.100 per vCPU-hour in years one and two, and that rate doubled to $0.200 on March 1, 2026 for year three. A four-vCPU MySQL 5.7 instance accrues about $584 a month in surcharge alone, so engine upgrades are a budget line.
Aurora bills storage at about $0.10 per GB-month plus $0.20 per million I/O requests, with an I/O-Optimized option at $0.225 per GB-month that folds I/O in. The break-even depends on your I/O share of the bill, so model it from the Cost and Usage Report rather than a rule of thumb. DynamoDB on-demand bills about $0.625 per million write units and $0.125 per million read units. Provisioned capacity is cheaper for predictable load, and Database Savings Plans (up to 35%) now cover it.
AWS ECS Pricing, AWS EKS Pricing and AWS QuickSight Pricing: Containers and the Serving Layer
AWS ECS pricing has no service fee; you pay for the EC2 or Fargate capacity beneath it. Fargate bills requested, not used, vCPU and memory, so twenty tasks at 1 vCPU and 2 GB cost about $1,150 a month and request inflation is direct spend. AWS EKS pricing adds $0.10 per cluster-hour (about $73 a month), which rises about 6x to $0.60 per hour once a cluster outlives the 14-month standard support window. Running Spark on EKS therefore makes Kubernetes version hygiene a cost control and argues for fewer, larger clusters.
At the serving layer, AWS QuickSight pricing is per user: author licenses start around $24 a month on the Standard tier, so cost scales with headcount rather than data volume. Audit inactive authors quarterly.
Hidden Costs and Regional Rates
Data transfer is the charge found after the fact. Inbound is free, the first 100 GB of egress each month is free, then egress runs $0.09 per GB. NAT Gateways add $0.045 per hour plus $0.045 per GB processed, so route S3 traffic through gateway VPC endpoints, which cost nothing for S3 and DynamoDB, instead of NAT. On invoices these land in “EC2-Other”: a modest two-instance workload picks up roughly $34 a month on top of about $140 of visible compute.
Regional rates matter as well. An m5.large in São Paulo costs about 59% more than in N. Virginia, and egress is roughly $150 per TB there against $90. Residency and latency usually decide the region, but a workload with no such constraint in an expensive region is a recurring donation.
What AI Workloads Do to AWS Pricing Math
AI workloads broke the 2023 budgeting playbook, and three effects drive the overruns.
- The units changed. Bedrock bills per million tokens (Nova Micro at $0.035 input and $0.14 output), while agent runtime, guardrails and knowledge-base retrieval bill outside token rates. FinOps vendors report teams landing at 1.5x to 2x their initial Bedrock estimates.
- The variance exploded. GPU spend concentrates in a handful of instances, so one idle node is a material event.
- The commitment math inverted. Savings Plans reward predictable usage, yet inference is spiky, training is bursty and models change quarterly. A three-year commitment sized to this quarter’s architecture finances last year’s model. SageMaker Savings Plans (up to 64%) are the narrower, safer instrument.
Unit Economics: The Metrics a CDO Should Demand
AWS pricing data arrives per service, but a board asks about pipelines, customers and margin. The native tools (Cost Explorer, AWS Budgets, Cost Anomaly Detection, the Cost and Usage Report) report in AWS’s categories, so translating them takes allocation work beyond tags. These ratios turn spend into decisions:
| Metric | Built from | Decision it informs |
| Cost per TB processed | EMR or Glue spend ÷ TB read per pipeline | Glue vs EMR, Spot coverage |
| Cost per TB scanned | Athena spend ÷ TB scanned | Partitioning, file format |
| Cost per pipeline run | Compute + shuffle transfer + storage writes | Zone pinning, compaction |
| Cost per user served | QuickSight and warehouse spend ÷ active users | License audits |
| Cost per AI feature | Bedrock, SageMaker and GPU spend ÷ feature | Commitment sizing |
Track each monthly, with a named owner. A rising cost per TB processed exposes architectural drift that a growing total bill hides behind volume.
A Commitment Strategy for Senior Teams
A sound approach to AWS pricing layers the instruments so each covers what it handles best:
- Savings Plans cover the always-on baseline.
- Reserved Instances cover high-confidence, architecture-stable workloads such as production databases.
- Spot absorbs everything interruptible: batch, CI/CD and checkpointed training.
- On-Demand catches spikes and serves as the diagnostic phase for new workloads.
Collect three to six months of usage data before committing, because premature commitment is the most common self-inflicted wound in cloud finance. Rebalance quarterly: a portfolio set in January mismatches reality by June, and the mismatch always bills in AWS’s favor.
Bottom Line
AWS pricing is public and documented, yet routinely misjudged because rates are published per service while the business asks per pipeline, customer and margin. Engineer the billing unit first, commit only the proven baseline, and measure unit costs monthly. Verify rates in your target region before committing, since list prices change.
Modak is a certified AWS service provider for Fortune 500 enterprises, backed by over 200 certified engineers and more than 15 years of experience. Our teams help data and engineering leaders design, migrate and run cloud data platforms on AWS with cost control built in from day one.
Frequently Asked Questions
What drives AWS cost most on a data platform?
Architecture: shuffle traffic across zones, small-file proliferation, scan bytes in Athena and the Glue-versus-EMR choice usually outweigh headline instance rates.
How does AWS pricing work in one sentence?
Each service bills in its own unit (seconds, GB-months, requests, DPU-seconds, tokens), and discounts come from commitment, interruptibility or volume.
Glue or EMR for Spark jobs?
Glue for bursty or short jobs where a cluster would idle, EMR on Spot for sustained, high-utilization pipelines. At list rates Glue carries roughly a 75% per-compute premium.
Savings Plans or Reserved Instances?
Savings Plans for most workloads, since they follow usage across families and regions. Reserved Instances for stable databases that will not change instance family.



