# AWS EC2 (reference VMs)

Official pricing: https://aws.amazon.com/ec2/pricing/on-demand/  
Category: hyperscaler · Isolation: vm

## Pricing regimes (raw)

- **x86 on-demand c7i/m7i (us-east-1)** (sizes): c7i.large 2 vCPU/4 GiB $0.08925/h; m7i.large 2 vCPU/8 GiB $0.1008/h; c7i.xlarge 4 vCPU/8 GiB $0.1785/h; m7i.xlarge 4 vCPU/16 GiB $0.2016/h; c7i.2xlarge 8 vCPU/16 GiB $0.357/h; m7i.2xlarge 8 vCPU/32 GiB $0.4032/h
- **x86 on-demand c7i/m7i (eu-north-1, cheapest EU checked)** (sizes): c7i.large 2 vCPU/4 GiB $0.09555/h; m7i.large 2 vCPU/8 GiB $0.1071/h; c7i.xlarge 4 vCPU/8 GiB $0.1911/h; m7i.xlarge 4 vCPU/16 GiB $0.2142/h; c7i.2xlarge 8 vCPU/16 GiB $0.3822/h; m7i.2xlarge 8 vCPU/32 GiB $0.4284/h
- **x86 on-demand c7i/m7i (ap-south-1, cheapest Asia checked)** (sizes): c7i.large 2 vCPU/4 GiB $0.08925/h; m7i.large 2 vCPU/8 GiB $0.10605/h; c7i.xlarge 4 vCPU/8 GiB $0.1785/h; m7i.xlarge 4 vCPU/16 GiB $0.2121/h; c7i.2xlarge 8 vCPU/16 GiB $0.357/h; m7i.2xlarge 8 vCPU/32 GiB $0.4242/h
- **Graviton3 on-demand c7g/m7g (us-east-1)** (sizes): c7g.large 2 vCPU/4 GiB $0.0725/h; m7g.large 2 vCPU/8 GiB $0.0816/h; c7g.xlarge 4 vCPU/8 GiB $0.145/h; m7g.xlarge 4 vCPU/16 GiB $0.1632/h; c7g.2xlarge 8 vCPU/16 GiB $0.29/h; m7g.2xlarge 8 vCPU/32 GiB $0.3264/h
- **Graviton3 on-demand (eu-north-1)** (sizes): c7g.large 2 vCPU/4 GiB $0.0774/h; m7g.large 2 vCPU/8 GiB $0.0867/h; c7g.xlarge 4 vCPU/8 GiB $0.1547/h; m7g.xlarge 4 vCPU/16 GiB $0.1734/h; c7g.2xlarge 8 vCPU/16 GiB $0.3094/h; m7g.2xlarge 8 vCPU/32 GiB $0.3468/h
- **Graviton3 on-demand (ap-south-1, 32% below us-east-1)** (sizes): c7g.large 2 vCPU/4 GiB $0.0491/h; m7g.large 2 vCPU/8 GiB $0.0583/h; c7g.xlarge 4 vCPU/8 GiB $0.0982/h; m7g.xlarge 4 vCPU/16 GiB $0.1166/h; c7g.2xlarge 8 vCPU/16 GiB $0.1963/h; m7g.2xlarge 8 vCPU/32 GiB $0.2333/h
- **Burstable t3 (us-east-1, 30-40% baseline + $0.05/vCPU-h surplus)** (sizes): t3.large 2 vCPU/8 GiB $0.0832/h; t3.xlarge 4 vCPU/16 GiB $0.1664/h; t3.2xlarge 8 vCPU/32 GiB $0.3328/h [burstable]
- **1y RI / Instance SP no-upfront, x86 (us-east-1)** (sizes): c7i.large 2 vCPU/4 GiB $0.05904/h; m7i.large 2 vCPU/8 GiB $0.06668/h; c7i.xlarge 4 vCPU/8 GiB $0.11808/h; m7i.xlarge 4 vCPU/16 GiB $0.13336/h; c7i.2xlarge 8 vCPU/16 GiB $0.23616/h; m7i.2xlarge 8 vCPU/32 GiB $0.26672/h [commit]

## Features

Yes: snapshots, pause/resume, persistent disk, volumes, ≥24 h sessions, custom image (Docker or snapshot), start from your own snapshot, full VM (own kernel), Docker inside, nested virtualization, root, systemd, SSH, public IPv4, custom domains, raw TCP inbound, egress allowlist, open internet, static egress IP, private networking, SOC 2, HIPAA, SSO, GPU, arm64, Windows, Python, HTTP method/path egress rules, EU data residency, automatic snapshots, snapshots on demand, gVisor or VM (no shared kernel), inbound access rules, firewall inside (nftables), extra volumes, shared volumes

No: memory snapshots, fork/clone, idle auto-stop, your own Docker/OCI image, browser, desktop GUI, computer-use API, code interpreter, browser + desktop control, anti-bot stealth, CAPTCHA solving, residential IPs, preinstalled agents, HTTPS preview URLs, self-hosting, BYOC, open source, macOS, Node.js, GPU desktop, wake on request, live resize, live fork (no pause), memory fork, MCP server, agent harness API, hosted agent API (their own agent), secret proxy, secret proxy for any API

Unknown: everything else. Evidence (source + quote) per feature: https://battleships.dev/data/providers/aws-ec2.json → feature_evidence

## Caveats

- On-demand and RI rates: AWS Price List API (AmazonEC2 index.csv, version 20260925174521) for us-east-1, eu-north-1, ap-south-1 (also checked eu-west-1, eu-central-1, ap-northeast-1, ap-southeast-1 for xlarge). "Cheapest EU/Asia" means cheapest among regions checked.
- Spot prices are a point-in-time snapshot of AWS's own spot feed and vary by AZ and hour. Savings Plan rates from AWSComputeSavingsPlan (2026-09-25).
- Reserved/SP modes are modelled only for us-east-1; regional RI rates (e.g. eu-north-1 c7i.xlarge 1y $0.12641, ap-south-1 Graviton 1y $0.065) are in the regime write-up.
- Windows licence-included = +$0.046/vCPU-h on c7i/m7i (on-demand and RI); t3 Windows is +$0.0184/vCPU-h; Graviton cannot run Windows; spot Windows spreads differ (c7i.xlarge spot Windows us-east-1 $0.2019, live spot.json 2026-09-29).
- Billing: per second with 60 s minimum (Linux, Windows). Stopped instances bill EBS and any public IPv4 but not compute.
- EBS gp3 $0.08/GB-month us-east-1 (eu-north-1 $0.0836, ap-south-1 $0.0912) incl. 3,000 IOPS/125 MB/s; snapshots $0.05/GB-month (eu-north-1 $0.0475). No free root disk: add ~8-80 GB gp3.
- Public IPv4: $0.005/h per address, in-use or idle (AmazonVPC price list, all regions checked) = $3.65/month at 730 h. Billed per ENI/instance that has a public IP.
- NAT gateway gotcha: tasks/functions in private subnets reach the internet through a NAT gateway at $0.045/h per gateway (~$32.85/month per AZ) plus $0.045/GB processed (us-east-1; eu-north-1 $0.046, ap-south-1 $0.056), charged ON TOP of the $0.09/GB egress. Not modelled; public IPv4 ($0.005/h) is the usual alternative.
- Internet egress (AWS Price List API, AWSDataTransfer us-east-1, 2026-09): first 100 GB/month free aggregated across all services and regions, then $0.09/GB first 10 TB, $0.085 next 40 TB, $0.07 next 100 TB, $0.05 over 150 TB. eu-west-1 is also $0.09; ap-south-1 $0.1093; ap-northeast-1 $0.114; ap-southeast-1 $0.12 (first-10-TB tier). The engine uses the flat us-east-1 first tier.
- Boot takes tens of seconds; not a fast sandbox. AWS Free Tier $200 credit for new accounts is generic.
- GPU modes cover single-GPU instances only (g6, g5, g6e, p5.4xlarge); 4x/8x bundles (H200/B200/B300, multi-L4/L40S) and fractional g6f slices are not modelled. Egress is priced at the first tier ($0.09/GB); AWS tiers are $0.09/$0.085/$0.07/$0.05 at 10/50/150 TB.
- t3 Unlimited surplus credits ($0.05/vCPU-h Linux above the 24 h average baseline) are not charged unless you set the t3 surplus knob; the default assumes average CPU at or below baseline. burstable-t3 is flagged burstable (40% baseline) so sustained-load workloads see it as a compromise.
- Reserved/Savings Plan regimes are flagged commit (1-year / 3-year); the RI is billed for every hour of the term whether or not the instance runs.
- Boot overhead not encoded (no measured cold start in research/benchmarks.json): EC2 instances take tens of seconds to boot and are billed from the running state (60 s minimum).
- Launch rate limits: RunInstances request bucket 5 (burst) refilled at 2/s, and a resource bucket of 1,000 instances refilled at 2 instances/s (StartInstances the same). A 1,000-instance burst is fine, after that ~7,200 launches/hour sustained; adjustable via Service Quotas.
- New accounts: Running On-Demand Standard (A,C,D,H,I,M,R,T,Z) quota default = 5 vCPUs per region (Spot Standard also 5; G/VT and P = 0). That is ONE 4-vCPU instance at a time until EC2 auto-raises the quota with usage or a Service Quotas request is approved; stopped instances don't count.
- Free plan (accounts created on/after 2025-07-15): $100 sign-up credit + up to $100 from activities, all expiring 12 months after sign-up. The Free plan (vs Paid plan) lasts 6 months or until credits run out, cannot overspend, excludes Savings Plans/RIs and services 'that would rapidly consume the entire AWS Free Tier credit amount', and the account is closed (data kept 90 days) unless upgraded. Free-tier-eligible EC2 types for these accounts are t3.micro/small, t4g.micro/small, c7i-flex.large, m7i-flex.large (whether other types are blocked on the Free plan is not stated verbatim on the pages checked). On the Paid plan the credits cover any EC2 usage. The legacy 750 h/month t2/t3.micro free tier only applies to accounts created before 2025-07-15.
- Cheaper 4 vCPU/8 GiB options the card does not model (us-east-1 Linux on-demand, Price List 20260925174521): c6g.xlarge (Graviton2) $0.136, t3a.xlarge (4/16, burstable) $0.1504, c6a.xlarge (AMD Milan) $0.153, c5a.xlarge $0.154, c8g.xlarge (Graviton4) $0.15952, c7i-flex.xlarge $0.16958 (Flex: full performance 'a majority of the time'), c6i.xlarge $0.17 vs modelled c7i.xlarge $0.1785 / c7g.xlarge $0.145. Newer c8i.xlarge $0.18742, c7a.xlarge $0.20528 are dearer.
- Cheapest Asia x86 region is Asia Pacific (Malaysia) ap-southeast-5 / (Thailand) ap-southeast-7: c7i.xlarge $0.17494 (-2% vs ap-south-1 $0.1785, ladder linear); ap-south-1 stays cheapest for m7i ($0.2121 vs $0.2142) and Graviton ($0.0982 vs $0.1416). EU: eu-north-1 confirmed cheapest of all 8 EU regions for c7i/m7i/c7g/m7g (eu-west-1 $0.19152, eu-south-2 $0.1915 c7i.xlarge).
- macOS is not in this card (see aws-ec2-mac): Mac instances run only on Dedicated Hosts with a 24-hour minimum allocation.
- T3/T4g launch in Unlimited mode by default (also for Spot), so the t3 surplus-credit charge applies unless the user switches to standard mode; new T8i burstable family surplus credits are $0.06/vCPU-h Linux, $0.115 Windows.

## How this provider charges


Plain VMs, fixed shapes, per-second billing with a 60 s minimum (Linux and Windows). Storage (EBS), public IPv4,
NAT and egress are all separate. On-demand and Reserved Instance rates come from the **AWS Price List API**
(AmazonEC2 index.csv, version 20260925174521, Linux / shared tenancy / no pre-installed software); Savings Plans from
AWSComputeSavingsPlan (2026-09-25); Spot from AWS's own spot feed (website.spot.ec2.aws.a2z.com/spot.js, the data
behind aws.amazon.com/ec2/spot/pricing, fetched 2026-09-28). Earlier research used vantage.sh (third-party); all
figures below are now first-party.

Reference 4 vCPU / 8 GiB = **c7i.xlarge $0.1785/h** (us-east-1); Graviton c7g.xlarge **$0.145/h**.

## Regime table

| Regime | When it applies | How billed | Numbers (xlarge = 4 vCPU) | Source |
|---|---|---|---|---|
| On-demand x86 us-east-1 | Default | Per second, 60 s min | c7i.xlarge (4/8) $0.1785; m7i.xlarge (4/16) $0.2016; ladder is linear (large = /2, 2xlarge = x2 ...) | Price List API |
| On-demand x86 eu-north-1 (cheapest EU checked) | EU pin | Same | c7i.xlarge $0.1911; m7i.xlarge $0.2142 (eu-west-1 $0.19152 / $0.2247; eu-central-1 $0.2037 / $0.2415) | Price List API |
| On-demand x86 ap-south-1 (cheapest Asia checked) | Asia pin | Same | c7i.xlarge $0.1785; m7i.xlarge $0.2121 (ap-southeast-1 $0.2058; ap-northeast-1 $0.2247) | Price List API |
| On-demand Graviton (arm64) | arm64 workloads | Same; 1 vCPU = 1 physical core | c7g.xlarge us-east-1 $0.145, eu-north-1 $0.1547, ap-south-1 **$0.0982**; m7g.xlarge $0.1632 / $0.1734 / $0.1166; c8g.xlarge $0.15952 | Price List API |
| Burstable t3 / t4g | Low average CPU | Baseline per vCPU (t3.xlarge 40%); Unlimited mode surplus credits | t3.xlarge (4/16) $0.1664; t4g.xlarge $0.1344; surplus $0.05/vCPU-h Linux, $0.096 Windows, $0.04 t4g | Price List API CPUCredits:* |
| Standard RI 1y no-upfront (= EC2 Instance SP 1y) | 1-year commitment to a family/region | Every hour of the term | c7i.xlarge $0.11808 (-34%); m7i.xlarge $0.13336; c7g.xlarge $0.0955; eu-north-1 c7i $0.12641; ap-south-1 c7g $0.065 | Price List API Reserved rows; AWSComputeSavingsPlan EC2InstanceSavingsPlans |
| Standard RI 3y no-upfront | 3-year | Same | c7i.xlarge $0.07859 (-56%); m7i.xlarge $0.09145; c7g.xlarge $0.0637 | Price List API |
| Compute Savings Plan | $/h commitment, any family/region/Fargate/Lambda | Same | c7i.xlarge 1y no-upfront $0.12899, 3y $0.08618; 3y all-upfront Instance SP $0.0684 | AWSComputeSavingsPlan |
| Spot | Spare capacity, 2-min interruption notice | Floating hourly price | c7i.xlarge us-east-1 $0.0839, eu-north-1 $0.0698, ap-south-1 $0.0746; c7g.xlarge $0.0682 / $0.0424 / $0.0411; m7i.xlarge $0.0897 / $0.0714 / $0.0814 | spot.js feed |
| Windows licence-included | Windows Server AMIs | Per second, 60 s min; licence per vCPU | +$0.184/h on c7i/m7i.xlarge = **$0.046/vCPU-h** (c7i.xlarge $0.3625, m7i.xlarge $0.3856; same uplift in eu-north-1/ap-south-1 and on RIs); t3.xlarge Windows $0.24; spot c7i.xlarge Windows $0.2546; no Windows on Graviton | Price List API |
| EBS gp3 | Root/data volumes, billed while the volume exists (also when stopped) | GB-month (per second) | $0.08 us-east-1 (eu-north-1 $0.0836, ap-south-1 $0.0912) incl. 3,000 IOPS / 125 MB/s | Price List API EBS:VolumeUsage.gp3 |
| EBS snapshots | Stopped state backups | GB-month | $0.05 (eu-north-1 $0.0475) | Price List API EBS:SnapshotUsage |
| Public IPv4 | Any public address, in-use or idle | Per hour | $0.005/h ($3.65/month); contiguous block $0.008/h | AmazonVPC price list |
| NAT gateway | Private subnets reaching the internet | Per hour + per GB | $0.045/h + $0.045/GB (eu-north-1 $0.046, ap-south-1 $0.056) | Price List API NatGateway-* |
| Internet egress | All services, account-wide | Tiered | 100 GB/month free, then $0.09 (first 10 TB), $0.085, $0.07, $0.05; ap-south-1 $0.1093, ap-northeast-1 $0.114, ap-southeast-1 $0.12 | AWSDataTransfer |
| Free tier | New AWS accounts | Credits | up to $200 (generic, earlier research) | aws.amazon.com/free |

## Gotchas

1. **Commitments bill 24/7.** A c7i RI beats on-demand only above ~66% (1y: 0.11808/0.1785) or ~44% (3y: 0.07859/0.1785) utilisation of the term.
2. **Stopped != free**: EBS volumes and any Elastic IP keep billing; auto-assigned public IPs are released on stop.
3. **Public IPv4 is $3.65/month per address** since 2024 — more than a t4g.nano.
4. **NAT gateway double-dips**: $0.045/GB processed on top of $0.09/GB egress, plus $32.85/month per AZ.
5. **x86 vCPU = hyperthread, Graviton vCPU = core**: c7g often matches c7i per vCPU for less money; ap-south-1 Graviton is 32% below us-east-1.
6. **t3 credits**: flat-out t3.xlarge = $0.1664 + 4 x 0.6 x $0.05 = $0.2864/h, more than c7i.xlarge.
7. **Spot prices are per AZ and move hourly**; the snapshot above can be 2x off next week.
8. Windows licence roughly doubles a c7i (x86 only).

## Worked example

4 vCPU / 8 GiB, 50 instances x 8 h/day x 22 days = **8,800 instance-hours**, stopped between shifts, 30% CPU,
50 GiB snapshots ($2.50), 100 GiB egress (free tier), public IPv4 only while running (50 x 176 h x $0.005 = $44).
Root EBS (e.g. 20 GB gp3 each, kept while stopped) would add 50 x 20 x $0.08 = $80 and is shown separately.

| Regime | Compute | Total / month (excl. root EBS) |
|---|---|---|
| c7i.xlarge on-demand us-east-1 | 8,800 x 0.1785 = $1,570.80 | **$1,617.30** |
| c7g.xlarge on-demand us-east-1 | 8,800 x 0.145 = $1,276.00 | **$1,322.50** |
| c7g.xlarge on-demand ap-south-1 | 8,800 x 0.0982 = $864.16 | **$910.66** |
| c7i.xlarge spot us-east-1 | 8,800 x 0.0839 = $738.32 | **$784.82** |
| c7g.xlarge spot ap-south-1 | 8,800 x 0.0411 = $361.68 | **$408.18** |
| t3.xlarge (4/16) at 30% CPU (< 40% baseline, no surplus) | 8,800 x 0.1664 = $1,464.32 | **$1,510.82** |
| c7i.xlarge 3y RI (must cover 730 h) | 50 x 730 x 0.07859 = $2,868.54 | **$2,915.04** (worse than on-demand at 24% utilisation) |
| c7i.xlarge Windows on-demand | 8,800 x 0.3625 = $3,190.00 | **$3,236.50** |
