AWS Pricing Guide: EC2, EKS, S3, NAT Gateway & More (2026)

Where AWS bills actually come from in 2026. Real prices for EKS, NAT Gateway, S3, RDS, Lambda, data transfer. Free calculators + optimization playbook.

| Updated May 16, 2026 | 10 min read

AWS pricing is a minefield: ~200 services, four pricing axes (compute, storage, network, requests), and rates that quietly vary 2x across regions. This guide covers the actual line items that show up on real AWS bills in 2026, with current prices, free calculators, and the few optimization levers that move the needle.

All prices below are 2026 figures for us-east-1 unless noted. Other regions are linked from each tool.

How AWS Pricing Works

Every AWS service charges across some combination of four dimensions: compute time (per second or hour), storage (per GB-month), network (per GB transferred), and API requests (per million calls). Once you internalize this, the bill stops being mysterious — every line item maps to one of those four.

The trap: pricing pages show the unit cost, not the total. A "$0.045/hour" line on the NAT Gateway page sounds cheap until you multiply by 730 hours times 3 AZs times 12 months. Calculators that do the multiplication for you are worth their weight in dollars saved.

Where the AWS Bill Actually Hides

For most teams the bill breaks roughly as:

  • 40-60% — compute (EC2, EKS workers, Fargate, Lambda)
  • 15-25% — storage (EBS, S3, RDS, snapshots)
  • 10-25% — networking (NAT Gateway, data egress, Load Balancers, CloudFront)
  • 5-15% — managed service fees (RDS multi-AZ, ElastiCache, OpenSearch)
  • 5-10% — observability and security (CloudWatch, GuardDuty, WAF)

Networking is the most commonly underestimated bucket. NAT Gateway alone often surprises teams — a single gateway is ~$32.85/month before any traffic. Three AZs for HA = ~$100/month at zero traffic.

Compute Pricing

EKS (Elastic Kubernetes Service)

Control plane: $0.10/hour per cluster = ~$73/month. This is fixed regardless of cluster size. On top, you pay for EC2 worker nodes (typical instance: m5.large = $0.096/hr = ~$70/month) or Fargate ($0.04048/vCPU/hr + $0.004445/GB/hr). A minimal 3-node m5.large cluster runs ~$280/month before any networking or storage. Calculate yours →

ECS (Elastic Container Service)

ECS itself is free — no control plane fee. You pay only for the EC2 or Fargate compute that runs your tasks. This makes ECS meaningfully cheaper than EKS for small workloads that don't need K8s-specific features. Fargate pricing is identical to Fargate on EKS.

Lambda

$0.20 per million requests + $0.0000166667 per GB-second of compute. First 1M requests + 400,000 GB-seconds free monthly. ARM (Graviton) gets a 20% discount. A typical 256MB function running 10ms per invocation costs ~$0.04 per million calls — but cold starts and over-provisioned memory can quadruple that.

EC2

On-demand rates start at $0.0042/hr for t4g.nano (ARM) and scale up. Reserved Instances and Savings Plans give 30-72% off for 1-3 year commitments. Spot Instances offer 60-90% off but can be reclaimed with 2 minutes notice — good for stateless workloads, batch jobs, dev environments.

Storage Pricing

S3

Standard storage is $0.023/GB-month for the first 50 TB. Infrequent Access $0.0125/GB-month, Glacier Flexible Retrieval $0.0036/GB-month, Glacier Deep Archive $0.00099/GB-month. Don't forget request costs: $0.005 per 1,000 PUT/COPY/POST/LIST requests and $0.0004 per 1,000 GET requests. For request-heavy workloads, these can dominate the storage cost.

EBS (Elastic Block Store)

gp3 is the modern default: $0.08/GB-month, with 3,000 IOPS and 125 MB/s baseline included. Pay extra for higher IOPS/throughput. io2 is for IOPS-intensive workloads at higher cost. Snapshots are $0.05/GB-month and dedupe across snapshots from the same volume.

RDS

RDS pricing is instance + storage + I/O + backup. A db.t4g.medium (the budget option) is ~$0.082/hr (~$60/month) plus storage. Multi-AZ doubles the instance cost. Aurora has different pricing — per-second instances + storage + I/O per million requests.

Networking Pricing

NAT Gateway

$0.045/hour + $0.045/GB processed in us-east-1. Hourly fee alone is $32.85/month per gateway. Three AZs for high availability = $98.55/month at zero traffic, plus per-GB charges on top. Calculate your NAT cost →

The fix most teams miss: add VPC Gateway Endpoints for S3 and DynamoDB (free) and Interface Endpoints for ECR ($0.01/hr/endpoint). These skip NAT entirely for that traffic. Typical savings: 30-60% on NAT bills.

Application Load Balancer

$0.0225/hour + $0.008/LCU-hour. An LCU is a complex unit covering new connections, active connections, processed bytes, and rule evaluations — the dominant factor varies by workload. Typical ALB: $20-50/month for a low-traffic service, $100-300/month for high traffic.

Data Transfer

Outbound to the internet from us-east-1: $0.09/GB for the first 10 TB, scaling down for higher volumes. Cross-AZ traffic: $0.01/GB each way — inter-zone chatter between microservices adds up fast. CloudFront-to-internet egress is $0.085/GB and includes a generous free tier.

Cost Optimization Playbook

The highest-ROI optimizations, ordered by typical savings:

  1. Compute Savings Plans on the steady portion of compute — 30-60% off on-demand for 1 year, 50-72% for 3 years. Covers EC2, Lambda, Fargate.
  2. Right-size pods and instances based on actual P95 usage. Most clusters over-provision by 30-60%. Use the Container Size Calculator as a starting point.
  3. VPC Endpoints for S3 and ECR — skip NAT Gateway charges for those services. Often saves $50-500/month for container-heavy workloads.
  4. Spot instances for stateless workloads, batch jobs, dev environments — 60-90% off on-demand.
  5. S3 storage class transitions — move objects older than 30 days to Standard-IA, older than 90 to Glacier. Lifecycle rules automate this.
  6. Delete idle resources — unattached EBS volumes, stopped instances with attached storage, orphaned snapshots, abandoned NAT Gateways. Cost Explorer's "Unused Resources" view finds these.
  7. Reserved capacity for RDS and ElastiCache — same logic as Savings Plans but service-specific.
  8. Compress and batch CloudWatch logs — Custom metrics and high-resolution logging quietly add up. Audit log retention.

Free AWS Pricing Calculators

Project Helena maintains a set of free, no-signup AWS pricing calculators — each updated with current 2026 rates:


AWS Pricing FAQ

How much does AWS EKS cost per hour?

The EKS control plane is $0.10 per hour per cluster (~$73/month). On top of that you pay for the compute nodes (EC2 or Fargate), EBS storage for persistent volumes, and any networking add-ons like NAT Gateways or Load Balancers. Use the EKS Pricing Calculator for an end-to-end estimate.

Why is my AWS NAT Gateway so expensive?

NAT Gateway has two charges that stack: $0.045/hour ALWAYS (per gateway, per region) plus $0.045 per GB processed. Running one NAT per AZ for HA triples the hourly fee. Container workloads pulling images from ECR through NAT can hit hundreds of GB/month. See the NAT Gateway Calculator for your actual cost.

What is the cheapest AWS region?

us-east-1 (N. Virginia), us-east-2 (Ohio), and us-west-2 (Oregon) are typically the cheapest. European regions cost 5-15% more, Asia Pacific 25-40% more, and South America (sa-east-1) is often 2x the US price. Region choice matters most for compute and NAT Gateway pricing.

Are AWS Savings Plans worth it?

Yes for any steady, predictable workload. Compute Savings Plans cover EC2, Lambda, and Fargate — typical savings are 30-60% for a 1-year commitment, 50-70% for 3-year. Only commit to what you would run regardless. Combine with Spot for non-steady portions.

How much does AWS data transfer cost?

Internet egress is $0.09/GB for the first 10 TB/month (us-east-1). Cross-AZ traffic is $0.01/GB each way. CloudFront-to-internet is $0.085/GB but free egress for the CloudFront → origin path. Egress is the most commonly underestimated AWS cost.

How do I monitor AWS costs?

Use AWS Cost Explorer for daily visibility and AWS Budgets for alerts. For Kubernetes-specific cost attribution by namespace and pod, dedicated tools like Recon break down what each team is actually consuming.

Monitor your uptime, automatically

Warden checks your endpoints every 10 seconds. Self-host for free or upgrade to cloud for multi-zone monitoring. Get alerted before your users notice.

Join the waitlist