EC2 instance types at 2 vCPU, scored & priced.
Each EC2 instance type benchmarked on its 2 vCPU size (.large, or .medium for the
burstable t families): single-thread and multi-core CPU, on-demand and spot prices, and AWS's spot-interruption band, in
four regions. Use it to pick a family for CI runners, or for any other workload. Sort and filter the table,
and open a type for its runs and per-region detail. RunsOn launches all of these in your own AWS account.
Looking for a specific shape? The EC2 instance finder filters and compares by CPU, price, memory and architecture in seconds.
ec2 instance finder ↗| # | instance | processor | single-thread↓ | multi-core | on-demand | spot / hr | savings | interrupt | cpu mark / $ | single / $ |
|---|---|---|---|---|---|---|---|---|---|---|
| 01 | m8azn.large→ m8azn · 5 runs · hardware | AMD EPYC 9R05Turin | 4,252 | 7,710 | $0.2065 | $0.0496/hr | 76% | <5% | 155k | 85.7k |
| =02 | c8a.large→ c8a · 5 runs · hardware | AMD EPYC 9R45Turin | 3,812 | 6,912 | $0.1078 | $0.0346/hr | 68% | 15-20% | 200k | 110k |
| =02 | r8a.large→ r8a · 5 runs · hardware | AMD EPYC 9R45Turin | 3,808 | 6,892 | $0.1598 | $0.0412/hr | 74% | 5-10% | 167k | 92.5k |
| =02 | m8a.large→ m8a · 4 runs · hardware | AMD EPYC 9R45Turin | 3,794 | 6,880 | $0.1217 | $0.0330/hr | 73% | >20% | 208k | 115k |
| =05 | m8i-flex.large→ m8i-flex · 5 runs · hardware | Intel Xeon 6975P-CGranite Rapids | 3,248 | 4,066 | $0.1006 | $0.0407/hr | 60% | <5% | 99.9k | 79.8k |
| 1 run | r8i.large→ r8i · 1 run · sweep | Intel Xeon 6975P-CGranite Rapids | 3,247 | 4,052 | $0.1389 | $0.0387/hr | 72% | >20% | 105k | 83.8k |
| 1 run | r8i-flex.large→ r8i-flex · 1 run · sweep | Intel Xeon 6975P-CGranite Rapids | 3,246 | 4,060 | $0.1320 | $0.0407/hr | 69% | >20% | 99.7k | 79.7k |
| =05 | t8i.medium→ t8i · 5 runs · hardware burstable | Intel Xeon 6975P-CGranite Rapids | 3,246 | 4,061 | $0.0499 | $0.0224/hr | 55% | n/a | — | — |
| =05 | m8i.large→ m8i · 5 runs · hardware | Intel Xeon 6975P-CGranite Rapids | 3,241 | 4,065 | $0.1058 | $0.0366/hr | 65% | 10-15% | 111k | 88.6k |
| =05 | m8id.large→ m8id · 4 runs · hardware | Intel Xeon 6975P-CGranite Rapids | 3,238 | 4,058 | $0.1305 | $0.0353/hr | 73% | 5-10% | 115k | 91.8k |
| =05 | i7i.large→ i7i · 5 runs · hardware | Intel Xeon 8559CEmerald Rapids | 3,198 | 4,112 | $0.1888 | $0.0456/hr | 76% | <5% | 90.1k | 70.1k |
| 1 run | r7iz.large→ r7iz · 1 run · sweep | Intel Xeon 6455BSapphire Rapids | 3,115 | 4,005 | $0.1860 | $0.0446/hr | 76% | 5-10% | 89.8k | 69.8k |
| 1 run | c7i.large→ c7i · 1 run · sweep | Intel Xeon 8488CSapphire Rapids | 2,955 | 3,781 | $0.0892 | $0.0278/hr | 69% | >20% | 136k | 106k |
| 1 run | r7a.large→ r7a · 1 run · sweep | AMD EPYC 9R14Genoa | 2,875 | 5,390 | $0.1522 | $0.0550/hr | 64% | 15-20% | 98.1k | 52.3k |
| 1 run | c7a.large→ c7a · 1 run · sweep | AMD EPYC 9R14Genoa | 2,875 | 5,371 | $0.1026 | $0.0303/hr | 70% | 5-10% | 177k | 94.9k |
| 1 run | m7a.large→ m7a · 1 run · sweep | AMD EPYC 9R14Genoa | 2,875 | 5,327 | $0.1159 | $0.0443/hr | 62% | >20% | 120k | 64.8k |
| 1 run | m7i.large→ m7i · 1 run · sweep | Intel Xeon 8488CSapphire Rapids | 2,816 | 3,545 | $0.1008 | $0.0418/hr | 59% | 15-20% | 84.8k | 67.4k |
| 1 run | r7i.large→ r7i · 1 run · sweep | Intel Xeon 8488CSapphire Rapids | 2,763 | 3,447 | $0.1323 | $0.0468/hr | 65% | >20% | 73.6k | 59.0k |
| 1 run | c7i-flex.large→ c7i-flex · 1 run · sweep | Intel Xeon 8488CSapphire Rapids | 2,700 | 3,361 | $0.0848 | $0.0262/hr | 69% | 5-10% | 128k | 103k |
| 1 run | c6a.large→ c6a · 1 run · sweep | AMD EPYC 7R13Milan | 2,596 | 3,433 | $0.0765 | $0.0278/hr | 64% | 5-10% | 123k | 93.4k |
| 1 run | m6a.large→ m6a · 1 run · sweep | AMD EPYC 7R13Milan | 2,595 | 3,442 | $0.0864 | $0.0336/hr | 61% | 10-15% | 103k | 77.3k |
| 1 run | m5zn.large→ m5zn · 1 run · sweep | Intel Xeon 8252CCascade Lake | 2,549 | 2,898 | $0.1652 | $0.0409/hr | 75% | 5-10% | 70.8k | 62.3k |
| 1 run | m7i-flex.large→ m7i-flex · 1 run · sweep | Intel Xeon 8488CSapphire Rapids | 2,549 | 3,190 | $0.0958 | $0.0368/hr | 62% | 10-15% | 86.8k | 69.3k |
| 1 run | i7ie.large→ i7ie · 1 run · sweep | Intel Xeon 8559CEmerald Rapids | 2,549 | 3,275 | $0.2599 | $0.0519/hr | 80% | <5% | 63.1k | 49.1k |
| 1 run | m6idn.large→ m6idn · 1 run · sweep | Intel Xeon 8375CIce Lake | 2,303 | 2,949 | $0.1591 | $0.0439/hr | 72% | <5% | 67.2k | 52.5k |
| 1 run | r6idn.large→ r6idn · 1 run · sweep | Intel Xeon 8375CIce Lake | 2,297 | 2,938 | $0.1954 | $0.0517/hr | 74% | 10-15% | 56.8k | 44.4k |
| 1 run | r6i.large→ r6i · 1 run · sweep | Intel Xeon 8375CIce Lake | 2,296 | 2,941 | $0.1260 | $0.0447/hr | 65% | 10-15% | 65.8k | 51.4k |
| 1 run | m6id.large→ m6id · 1 run · sweep | Intel Xeon 8375CIce Lake | 2,296 | 2,956 | $0.1187 | $0.0383/hr | 68% | 10-15% | 77.2k | 59.9k |
| 1 run | c6id.large→ c6id · 1 run · sweep | Intel Xeon 8375CIce Lake | 2,294 | 2,922 | $0.1008 | $0.0308/hr | 69% | >20% | 94.9k | 74.5k |
| 1 run | m6i.large→ m6i · 1 run · sweep | Intel Xeon 8375CIce Lake | 2,289 | 2,922 | $0.0960 | $0.0360/hr | 62% | >20% | 81.1k | 63.5k |
| 1 run | c6i.large→ c6i · 1 run · sweep | Intel Xeon 8375CIce Lake | 2,289 | 2,925 | $0.0850 | $0.0313/hr | 63% | 15-20% | 93.3k | 73.0k |
| 1 run | z1d.large→ z1d · 1 run · sweep | Intel Xeon 8151Skylake | 2,286 | 2,609 | $0.1860 | $0.0414/hr | 78% | >20% | 63.0k | 55.2k |
| 1 run | r6id.large→ r6id · 1 run · sweep | Intel Xeon 8375CIce Lake | 2,286 | 2,846 | $0.1512 | $0.0472/hr | 69% | 15-20% | 60.2k | 48.4k |
| 1 run | t3.medium→ t3 · 1 run · sweep burstable | Intel Xeon 8259CLSkylake/Cascade Lake | 1,746 | 1,989 | $0.0416 | $0.0155/hr | 63% | >20% | — | — |
| 1 run | m4.large→ m4 · 1 run · sweep | Intel Xeon E5-2686 v4Broadwell/Haswell | 1,582 | 1,844 | $0.1000 | $0.0397/hr | 60% | >20% | 46.5k | 39.9k |
| 1 run | m5a.large→ m5a · 1 run · sweep | AMD EPYC 7571Naples | 1,414 | 1,875 | $0.0860 | $0.0345/hr | 60% | 10-15% | 54.3k | 41.0k |
| 1 run | t3a.medium→ t3a · 1 run · sweep burstable | AMD EPYC 7571Naples | 1,388 | 1,859 | $0.0376 | $0.0148/hr | 61% | >20% | — | — |
2 vCPU size ·
# places types with 3+ runs on the score and per-dollar sorts, “=” within 5% of the first of a group · spot =
7-day average of the cheapest zone's spot price in us-east-1 · savings = spot vs on-demand ·
interrupt = AWS Spot Advisor band · cpu mark / $ and single / $ = score per $/hr of the instance at spot, burstable types excluded.
What the data says
m8azn.large has the fastest single-thread CPU of the x64 types with 3 or more runs: 4,252 PassMark, 12% ahead of c8a.large. m9gd.large and m9g.large are within 5% of each other on single-thread CPU, the fastest of the arm64 types with 3 or more runs (2,468, 2,463 PassMark).
At 2 vCPU, the 24 types with one thread per core (AMD and Graviton) did 1.9–2.0 cores' worth of sysbench work; the 30 types with two threads per core (Intel and AMD) did 1.0–1.6: their two vCPUs are two threads of one core.
About these benchmarks
Every type is launched on its 2 vCPU size and measured by the open benchmark harness: PassMark's CPU Single Threaded and CPU Mark, sysbench on one thread and on every thread, and 7-Zip's built-in benchmark. AWS often runs custom CPU SKUs you won't find in PassMark's public lists, so every number here comes from a live instance.
Each type's numbers come from one suite, the one that measured it in the most runs: the monthly EC2 CPU sweep, or the hardware suite for the 12 types RunsOn's runner benchmarks also run every few days, so this tab and the CPU page show the same figure. Values are medians over the runs of the current workload definition: the sweep's last 75 days, 30 for the other suites.
A type takes a place (the # column, a leader, a ranked card) once it has 3 runs; below that it is listed with its run count and sorts like any other row. Places exist on the scores and the per-dollar figures, not on a price, a band or a name. A type within 5% of the type heading its group shares that place (“=02”), so near-identical scores are never ranked apart; a leader's near ties are named with it, and a lead under 5%, or with a faster type still under 3 runs, reads “fastest measured”.
Spot is the 7-day average of the cheapest zone's spot price in each region: the RunsOn finder records every zone every 90 minutes, and the average of the cheapest at each fetch is what an hour costs, without one day's swing or one historical low. On-demand is the list price, and savings compare spot with it. Interrupt is AWS Spot Advisor's band. CPU Mark per $ and single-thread per $ divide the score by the spot price of an hour of the instance alone (the CPU page adds the EBS volume); burstable t types are left out of both, as their score is a burst on CPU credits. RunsOn launches any of these types ephemerally, in your own AWS account. More in the methodology.
Every instance we track
The leaderboard shows one architecture at a time. Every type has its own page with its runs and job logs, per-region on-demand and spot pricing, savings, and the AWS Spot Advisor interruption band.
x64
37 typesGeneral purpose m
- m4.large Intel Broadwell/Haswell
- m5a.large AMD Naples
- m5zn.large Intel Cascade Lake
- m6a.large AMD Milan
- m6i.large Intel Ice Lake
- m6id.large Intel Ice Lake
- m6idn.large Intel Ice Lake
- m7a.large AMD Genoa
- m7i-flex.large Intel Sapphire Rapids
- m7i.large Intel Sapphire Rapids
- m8a.large AMD Turin
- m8azn.large AMD Turin
- m8i-flex.large Intel Granite Rapids
- m8i.large Intel Granite Rapids
- m8id.large Intel Granite Rapids
Compute c
Memory r
Burstable t
High frequency z
arm64
17 typesGeneral purpose m
Compute c
Storage i
Burstable t
Run your GitHub Actions jobs on any of these.
RunsOn turns them into self-hosted GitHub Actions runners in your own AWS account. Name the family or the
CPU count in a job's runs-on label, and each job gets a fresh instance of it, on spot by
default. One CloudFormation stack, about 10 minutes to install.
runs-on: runs-on=${{ github.run_id }}/family=m8a/cpu=4