Learn
AWS instance sizes explained: what micro, large and xlarge actually mean
An AWS instance name like m7g.large packs four facts into eight characters. Once you can read it, you can pick a server without guessing. This page decodes the names, lists the common sizes with their CPU, memory and price, and shows how many of each you'd need for your traffic.
· 5 min read
Which EC2 size for your traffic?
For 2,000 req/s, the cheapest steady option is 7 × m7g.medium at about $208/month (70% CPU target, one spare server).
| Size | vCPU · RAM | Sustains each | Servers | Per month |
|---|---|---|---|---|
| t4g.micro | 2 · 1 GiB | ~100 req/s (burstable, 10% CPU) | 30 | $184 |
| t4g.small | 2 · 2 GiB | ~200 req/s (burstable, 20% CPU) | 16 | $196 |
| t4g.medium | 2 · 4 GiB | ~200 req/s (burstable, 20% CPU) | 16 | $392 |
| t4g.large | 2 · 8 GiB | ~300 req/s (burstable, 30% CPU) | 11 | $540 |
| m7g.medium | 1 · 4 GiB | ~500 req/s | 7 | $208 |
| m7g.large | 2 · 8 GiB | ~1,000 req/s | 4 | $238 |
| m7g.xlarge | 4 · 16 GiB | ~2,000 req/s | 3 | $357 |
| m7g.2xlarge | 8 · 32 GiB | ~4,000 req/s | 2 | $477 |
| c7g.large | 2 · 4 GiB | ~1,000 req/s | 4 | $212 |
| c7g.xlarge | 4 · 8 GiB | ~2,000 req/s | 3 | $318 |
| c7g.2xlarge | 8 · 16 GiB | ~4,000 req/s | 2 | $423 |
Approximate AWS on-demand prices for us-east-1, read once in October 2026, before free tiers. They may be out of date; check the AWS pricing pages before you budget.
How to read an instance name
AWS names every instance type the same way: a family and a size, separated by a dot. Inm7g.large:
- m is the series: general purpose.
- 7 is the generation. Higher is newer and usually faster per dollar.
- g is an option: an AWS Graviton (Arm) processor.
- large is the size: how much CPU and memory you get.
The series letters you'll meet most often:
| Letter | Series | Use it for |
|---|---|---|
t | Burstable performance | Mostly idle, spiky work: dev boxes, small internal tools |
m | General purpose | Most production services: balanced CPU and memory |
c | Compute optimized | CPU-heavy, stateless APIs and workers that hold little in memory |
r | Memory optimized | Databases and caches, where RAM is the point |
Other option letters include a (AMD), i (Intel), d (local instance storage) andn (extra network bandwidth). The full list is in AWS'sinstance type naming conventions.
The size ladder: each step doubles
Within a family, each size up doubles both vCPU and memory, and the price doubles with it. The price per vCPU stays the same, so one big server costs exactly as much as several small ones:
| Size | vCPU | Memory | Per month | Handles about |
|---|---|---|---|---|
m7g.medium | 1 | 4 GiB | $30 | 500 req/s |
m7g.large | 2 | 8 GiB | $60 | 1,000 req/s |
m7g.xlarge | 4 | 16 GiB | $119 | 2,000 req/s |
m7g.2xlarge | 8 | 32 GiB | $238 | 4,000 req/s |
Because the price per vCPU is flat, choose the size for what one request needs (memory, cores), and choose thecount for your traffic. Several smaller servers behind a load balancer survive a failure better: losing one of eight removes 12% of capacity, losing one of two removes half.
Burstable t4g: cheap until it isn't
A t4g instance has the same vCPU count as larger sizes, but it only sustains a fraction of it. It earns CPU credits while it's idle and spends them when it bursts. Under steady load, once the credits run out, it settles at itsbaseline:
| Size | vCPU | Memory | Baseline CPU | Sustains about | Per month |
|---|---|---|---|---|---|
t4g.micro | 2 | 1 GiB | 10% | 100 req/s | $6.13 |
t4g.small | 2 | 2 GiB | 20% | 200 req/s | $12 |
t4g.medium | 2 | 4 GiB | 20% | 200 req/s | $25 |
t4g.large | 2 | 8 GiB | 30% | 300 req/s | $49 |
T4g instances launch in unlimited mode by default: they can keep bursting, but if average CPU over 24 hours stays above the baseline, AWS bills the extra at a flat rate per vCPU-hour. Either way, a burstable instance is the wrong tool for steady production traffic.
Common EC2 sizes and what they're for
| Size | vCPU · RAM | Per month | In plain words |
|---|---|---|---|
t4g.micro | 2 · 1 GiB | $6.13 | Tiny and burstable. Fine for a demo or a cron job; under steady load it slows to 10% of its CPU. |
t4g.small | 2 · 2 GiB | $12 | Small and burstable. Good for low-traffic services that are idle most of the time. |
t4g.medium | 2 · 4 GiB | $25 | Burstable with 4 GiB. Handles spiky internal tools; steady traffic needs a fixed-performance size. |
t4g.large | 2 · 8 GiB | $49 | The largest common burstable size. Sustains 30% of its CPU under steady load. |
m7g.medium | 1 · 4 GiB | $30 | One full vCPU, all the time. The cheapest size that never throttles. |
m7g.large | 2 · 8 GiB | $60 | The usual production default: 2 vCPU and 8 GiB, balanced CPU and memory. |
m7g.xlarge | 4 · 16 GiB | $119 | Twice a large. Use it when one process needs more memory or cores, not just for more traffic. |
m7g.2xlarge | 8 · 32 GiB | $238 | 8 vCPU. Fewer, bigger servers cost the same per vCPU but leave less room to lose one. |
c7g.large | 2 · 4 GiB | $53 | Compute-optimized: same CPU as m7g.large with half the memory, about 11% cheaper. |
c7g.xlarge | 4 · 8 GiB | $106 | Compute-optimized, 4 vCPU. A good fit for stateless APIs that don't hold much in memory. |
c7g.2xlarge | 8 · 16 GiB | $212 | Compute-optimized, 8 vCPU. |
Databases and caches use the same names
RDS and ElastiCache reuse the EC2 names with a prefix: db.r7g.large is a database on an r7g.large, andcache.r7g.large is a cache node on one. Memory-optimized r sizes are the usual choice for both, because a database is fast when its hot data sits in RAM and a cache is RAM. See database sizingand Redis memory sizing.
Which size should you pick?
- Steady production API: start with
m7g.largeand add instances as traffic grows. - Stateless and CPU-bound:
c7ghas the same CPU as m7g with half the memory, about 11% cheaper. - Needs lots of memory per process: move up a size, or to the
rseries. - Idle most of the time: a
t4gis fine, as long as you know its baseline. - Always: keep CPU around 60-70% at peak and run one more server than you need, so losing one doesn't overload the rest.
Want to feel the difference? Open the playground, click an API server and switch it fromm7g.large to t4g.micro, then press Play.
Frequently asked questions
What does t4g.micro mean?
t is the series (burstable performance), 4 is the generation, g means an AWS Graviton (Arm) processor, and micro is the size: 2 vCPUs and 1 GiB of memory. Burstable means it can run at full speed briefly but sustains only 10% of its CPU under steady load.
What is the difference between t4g and m7g?
t4g is burstable: it earns CPU credits while idle and spends them in bursts, so it's cheap for spiky, mostly idle work. m7g is general purpose with fixed performance: you get the full CPU all the time. For steady production traffic, use m7g (or c7g for CPU-heavy work).
Is it cheaper to run one big server or several small ones?
Within a family the price per vCPU is the same: an m7g.2xlarge costs exactly four m7g.large. Several small servers behind a load balancer tolerate a failure better, because losing one removes a smaller share of capacity.
What do c, m, r and t stand for?
In AWS's naming, c is compute optimized (less memory per vCPU), m is general purpose, r is memory optimized (more memory per vCPU, common for databases and caches), and t is burstable performance.