New See exactly what you're overpaying AWS in under 60 seconds. Try the Calculator for free

AWS EC2 Pricing: Models, Costs, and Savings (2026)

Understand AWS EC2 pricing models, major cost drivers, and practical ways to reduce compute spend with the right purchasing strategy.
Updated August 27, 2026
25 min read
AWS EC2 Pricing Models, Costs, and Savings (2026)
In this article
Key takeaways
1
The five models differ in what you trade for the discount. Savings Plans and RIs reach up to 72% for a one- or three-year commitment; Spot reaches up to 90% in exchange for interruption risk.
2
Coverage the share of usage billed at committed rates decides realized savings more than the model you pick. The same Savings Plan at 40% versus 80% coverage yields roughly 14% versus 29% total savings.
3
The instance rate is not the whole bill. EBS volumes, data transfer, NAT Gateways, and public IPv4 addresses keep charging regardless of how much of the instance you use.
Amazon EC2 pricing is usage-based: you pay per second for the instance type, region, and OS you choose. Rates run from $0.0042/hr (t4g.nano, Linux) to over $50/hr for large GPU instances in us-east-1.

Teams overpay when stable usage remains On-Demand or when commitments don’t match actual usage.

Five variables set the final rate:

Instance type (CPU, memory, performance class)

Region (us-east-1 is typically cheapest)

Operating system (Linux is the baseline)

Pricing model (On-Demand vs. committed)

Coverage

Billing is per-second for most Linux instances (60-second minimum) and per-hour for some other OS types. You are charged for provisioned capacity, not utilization: an instance at 20% CPU still incurs 100% of its cost.

The short answer

EC2 is cheapest when committed pricing covers the part of your workload that is genuinely stable, On-Demand absorbs the variable headroom, and Spot takes whatever can survive an interruption. Most production environments combine several of these options rather than picking one, because each workload has a different tolerance for commitment.

That is a starting point, not a verdict. Instance family, region, operating system, and how long a workload has held its shape all move the answer, so the right mix is specific to an environment rather than universal.

The Five EC2 Pricing Models

EC2 pricing options can be combined selectively: On-Demand, Savings Plans, Reserved Instances, and Spot determine compute billing, while Dedicated Hosts provide dedicated hardware and can use On-Demand, reservation, or Savings Plans pricing. 

1. On-Demand

The default: launch instances, pay per second, stop anytime, no commitment. Maximum flexibility at the highest per-unit cost right for unpredictable workloads, short-term projects, and development environments.

2. Savings Plans

Commit to a dollar-per-hour spend rate for 1 or 3 years (AWS Savings Plans pricing). You commit to spend, not a specific instance, so instance types, regions, and OS can change without losing the discount.

Compute Savings Plans: up to 66% across EC2 (any family, any region), Fargate, and Lambda.

EC2 Instance Savings Plans: up to 72%, locked to one instance family and region; size and OS can still change.

For commitment sizing strategy, see the complete AWS Savings Plans guide

3. Reserved Instances

Up to 72% savings for committing to a specific instance type, region, and 1- or 3-year term (AWS Reserved Instances pricing).

Standard RIs: up to 72%; Availability Zone, size within the family, and networking type can be modified.

Convertible RIs: up to 66%, exchangeable for a different family, OS, or tenancy.

RIs can also reserve capacity in a specific AZ something Savings Plans cannot. Full breakdown: [AWS Reserved Instances guide]

4. Spot Instances

Up to 90% savings on spare AWS capacity.

Tradeoff: AWS can reclaim the instance with a two-minute warning.

Fit: fault-tolerant batch, CI/CD, and data processing anything that can checkpoint and resume. Not for workloads requiring continuous uptime.

5. Dedicated Hosts

Physical EC2 servers allocated exclusively to your account, for BYOL licensing (Oracle, Windows Server, SQL Server) and compliance-driven isolation.

Pricing: per-host per hour; On-Demand Dedicated rates exceed shared tenancy.

Commitments: 1 or 3 years reduce costs by up to 70%.

Capacity Reservations are separate from these discount mechanisms; they reserve compute capacity in a specific Availability Zone and can be combined with Savings Plans or Regional Reserved Instances.

If a workload runs under roughly 40% of the time, EC2 may not be the right service at all: Fargate eliminates idle cost at a higher per-unit rate, and Lambda is cheapest for sparse, event-driven tasks. See EC2 vs Fargate.
Triangle plotting the five EC2 pricing models against cost, flexibility, and commitment risk.

EC2 Pricing Model Comparison

The table compares the five models across their seven purchase options; the four dimensions that determine fit.
Model Max Savings Commitment Flexibility Interruption Risk
On-Demand None Maximum None
Compute Savings Plan Up to 66% 1–3 yr spend rate High (any family, region, Fargate, Lambda) None
EC2 Instance Savings Plan Up to 72% 1–3 yr spend rate Medium (one family/region) None
Standard Reserved Instance Up to 72% 1–3 yr instance Low None
Convertible Reserved Instance Up to 66% 1–3 yr instance Medium (exchangeable) None
Spot Instances Up to 90% None High High (2-min warning)
Dedicated Hosts (3-yr term) Up to 70% Optional 1–3 yr Low None
“Always-on” in this article means running more than 60% of hours per month. Verify current discount rates at AWS Savings Plans pricing before purchasing.

For a workload-by-workload decision framework, see On-Demand vs Reserved vs Spot: The Complete AWS Pricing Guide 2026

Why Coverage Determines Your Real Savings

Coverage is the percentage of your total compute usage billed under discounted pricing (Savings Plans or RIs) rather than On-Demand rates:
Coverage (%) = Usage billed under commitments ÷ Total compute usage
Pricing models define how much you could save. Coverage determines how much you actually save.

Two teams using identical Savings Plans with 80% vs. 40% coverage end up with fundamentally different effective rates roughly 29% vs. 14% total savings on the same workload. The full worked example is in the cost breakdown below.
Two failure modes:

Undercoverage: large On-Demand exposure. Savings exist on paper but aren't captured.

Overcoverage: committed spend exceeds actual usage prepaid compute that no longer exists, and harder to detect.

For the metrics to track, see [7 AWS Savings Plan KPIs every FinOps team should track]

Amazon EC2 Instance Types and Pricing

Instance selection has the largest single impact on cost; the wrong family or generation routinely means paying more than the workload requires. EC2 offers 850+ instance types (EC2 Instance Type Explorer) across five families. The following are reference On-Demand rates for Linux in us-east-1:
Instance Family Rate ~Monthly
t4g.nano General purpose (Graviton) $0.0042/hr $3.07
t3.micro General purpose (burstable) $0.0104/hr $7.59
t3.large General purpose (burstable) $0.0832/hr $60.74
m5.large General purpose $0.096/hr $70
g4dn.xlarge GPU (inference/graphics) ~$0.526/hr ~$384
Compute Optimized (C families) suit high CPU-to-memory workloads; Memory Optimized (R, X) suit in-memory databases and analytics; Storage Optimized (I) suit dense local I/O. Full family guide: [EC2 Instance Types: What Are EC2 Instances?]

Accelerated instances (P, G, Inf, Trn) carry the highest rates, the p5.48xlarge runs approximately $55/hr On-Demand following AWS’s June 2025 price reduction and GPU pricing moves frequently in both directions.

AWS Graviton (ARM) instances price 10-20% below equivalent x86 with comparable or better performance for most Linux workloads; the t4g.nano above is 20% cheaper than the t3.nano it parallels.

Graviton4 is broadly available, with Graviton5-based M9g instances now appearing in AWS’s lineup. For stateless Linux workloads, evaluate Graviton fit before purchasing a commitment by confirming Arm64 compatibility, rebuilding any native dependencies where necessary, and testing performance after right-sizing.

EC2 Pricing by Operating System

OS choice directly moves the per-hour rate, and Linux (Amazon Linux, Ubuntu) is the baseline. AWS’s published license components (Amazon EC2 On-Demand pricing) list Windows Server at $0.046 per vCPU-hour, and Windows with SQL Web, SQL Standard, and SQL Enterprise at $0.063, $0.166, and $0.421 per vCPU-hour respectively.

RHEL moved to per-vCPU-hour pricing on July 1, 2024, with rates varying by instance size and subscription tier.

License costs can exceed the compute discount itself; where workloads allow it, standardizing on Linux is often the single largest per-instance rate reduction available. We break down per-instance rates by OS and size in a dedicated guide.

What Your EC2 Bill Includes

The instance is often not the largest line item once storage, transfer, and networking are counted. Beyond compute billed on provisioned capacity regardless of utilization four components accumulate:

EBS storage. Charges continue even when the instance is stopped. gp3 costs $0.08/GB-month with 3,000 IOPS included; migrate from legacy gp2 for a 20% per-GB reduction with no downtime (AWS EBS pricing). Snapshots accrue at $0.05/GB-month and pile up silently without retention policies.

Data transfer. Inbound and same-AZ private traffic are free. Cross-AZ traffic costs $0.01/GB in each direction; internet egress runs $0.09/GB after the first 100 GB/month free.

Networking:

NAT Gateways: 0.045/hr(~32.40/month each) plus $0.045/GB processed

VPC Gateway Endpoints eliminate NAT processing fees for S3 and DynamoDB traffic

Public IPv4: since February 1, 2024, every public IPv4 address attached or idle, Elastic IP or auto-assigned bills at 0.005/hr,~3.65/month each (AWS public IPv4 address charge)

Idle resources. Detached volumes, accumulated snapshots, and forgotten non-production instances are the most common sources of unnoticed spend.

Audit these components before purchasing commitments, or you lock in spend against an already-inflated baseline.

A Real EC2 Cost Breakdown

Scenario: 10 × m5.large instances, Linux, running 24/7 in us-east-1 ($0.096/hr On-Demand). Savings are approximate 1-year No Upfront rates; verify at AWS Savings Plans pricing.
Pricing Model Monthly Cost Annual Cost Savings vs. On-Demand
On-Demand ~$700 ~$8,400
Compute Savings Plan (1-yr) ~$455 ~$5,460 ~35%
EC2 Instance Savings Plan (1-yr) ~$420 ~$5,040 ~40%
Standard RI (3-yr All Upfront) ~$390 ~$4,680 ~44%
Spot (blended) ~$250–300 ~$3,000–3,600 ~60–70%
These percentages apply only to covered usage. Same workload, same 1-year Compute Savings Plan (35% off covered usage), different coverage:

40% coverage: ~$600/month effective ~14% total savings

80% coverage: ~$500/month effective ~29% total savings

(40% × $700 × 0.65) + (60% × $700) = $603 (80% × $700 × 0.65) + (20% × $700) = $504
A ~$1,200/year difference from coverage alone, with no change to the pricing model.

Why Savings Plans and RIs Underperform

Commitments underperform when committed and actual usage drifts apart. Terms are fixed for 1-3 years while infrastructure evolves continuously, new services launch, teams migrate instance generations, scaling patterns shift and by the time drift is visible, months of sub-optimal spend have accumulated.

Compute tolerates longer terms; database and specialized services evolve faster and are harder to commit against accurately. Side-by-side comparison: [AWS Savings Plans vs Reserved Instances: A Practical Guide]

Six Steps to Lower EC2 Costs

Every pricing decision trades cost, flexibility, and risk lower cost requires commitment, and commitment reduces flexibility. Treat pricing as a portfolio maintained over time, not a one-time configuration:
  1. Start with coverage. Raising coverage from 50% to 75-80% typically cuts total compute cost more than aggressive rightsizing.
  2. Right-size before committing. A discount locked onto an oversized instance is still overspend. Signals to check:
    • CloudWatch P90 CPUUtilization below 40% indicates over-provisioning
    • FreeableMemory consistently above 25% of RAM indicates oversized memory Right-sizing first typically reduces required commitments by 20-30%.
  3. Balance coverage with utilization. Well-optimized environments hold 70-85% coverage and 85-95% utilization.
  4. Match commitments to stability. Commit aggressively to stable, long-running services; conservatively to workloads that scale or migrate.
  5. Treat pricing as a portfolio. Target 60-80% committed, 10-30% On-Demand, 0-20% Spot for fault-tolerant work.
  6. Optimize continuously. AWS Cost Explorer data refreshes at least once every 24 hours, and native recommendations lag actual usage further by the time they are reviewed and acted on. Monthly reviews let misalignment accumulate
The teams that sustain the deepest savings treat coverage and utilization as live metrics reviewed weekly.

EC2 Free Tier in 2026

The Free Tier changed on July 15, 2025 (AWS Free Tier announcement). Accounts created before that date receive 750 hours/month of t2.micro or t3.micro (Linux or Windows) for 12 months, enough to run one instance continuously.

Accounts created on or after it receive up to 200incredits(100 at sign-up plus up to $100 earned through service activities); the free plan expires 6 months after sign-up or when credits are depleted, whichever comes first. There is no permanent Free Tier for EC2 on either plan.

Closing the Coverage Gap

EC2 has five purchase models, but the discount ceiling on any of them is not what determines your savings. Coverage is and many teams sit below the 70-85% range that well-optimized environments hold.

The reason is rarely a lack of intent. Commitments are fixed for one to three years while infrastructure changes continuously, so teams under-commit to avoid being locked into capacity they may not need.

The AWS Pricing Calculator is built for planning, not monitoring: it estimates the cost of usage you define before you commit. What it doesn’t do is track how coverage and utilization drift after the purchase and that drift, not the initial estimate, is where savings erode. For a side-by-side, see AWS Pricing Calculator vs Usage.ai Savings Calculator.

With Flex Insured Commitments, teams can get the 57% savings of a 3-year commitment with none of the commitment risk.

If eligible usage drops and a qualifying EC2 Flex Commitment ends up costing more than the On-Demand rate for that usage, we provide cashback protection on that difference, subject to program terms.

Our fee is a percentage of realized savings only. If we don’t save you money, you don’t pay anything.
FIND YOUR COVERAGE GAP
See how much of your EC2 spend is uncovered.

Review your committed coverage, On-Demand exposure, and where commitments are running below full utilization.

Frequently asked questions

What is Amazon EC2 pricing per hour?
Rates vary by instance type, region, OS, and pricing model. In us-east-1, Linux On-Demand:
  • T4g.nano: 0.0042/hr(~3.07/month)
  • T3.micro: 0.0104/hr(~7.59/month)
  • M5.large: 0.096/hr(~70/month)
Savings Plans and RIs reduce these by roughly 35-72% for committed usage.
What is the cheapest EC2 instance type?

The t4g.nano (Graviton ARM) at $0.0042/hr in us-east-1 Linux, 20% cheaper than the equivalent t3.nano. Spot pricing for T-family instances can push rates lower for interruptible workloads.

Does a stopped EC2 instance still cost money?

No compute charges, but attached EBS volumes keep billing at their provisioned rate, snapshots accrue at $0.05/GB-month, and every public IPv4 address on the account attached or not charges $0.005/hr.

What is the difference between Savings Plans and Reserved Instances?

Savings Plans commit to a dollar-per-hour spend rate that applies automatically across EC2, Fargate, and Lambda. Reserved Instances commit to a specific instance configuration for deeper exact-match discounts, but are rigid when infrastructure changes.

Can Reserved Instances be canceled?

Generally no. Standard RIs can be listed on the AWS RI Marketplace, typically at a discount to face value; Convertible RIs can be exchanged for a different configuration instead.

Share
Facebook
X
LinkedIn
Reddit
Cut cloud cost with automation
Latest from our blogs