AWS EC2 Instance Types Explained: The Plain-English Guide
The Naming Convention Decoded
EC2 instance names look cryptic at first glance — c6i.4xlarge, m7g.medium, r5dn.8xlarge — but they follow a simple pattern. Every name has four parts:
🔍 Anatomy of c6i.4xlarge
Once you know this pattern, you can read any EC2 instance name at a glance. The family letter tells you what it's optimized for, the number tells you how new it is, optional letters after the number describe hardware variants, and the size determines how many resources you get.
Instance Families Overview
General Purpose (M, T)
M-series instances (m5, m6i, m7g) provide a balanced mix of compute, memory, and networking. They're the workhorse of AWS — good for application servers, mid-size databases, and backend services. T-series instances (t3, t4g) are also general purpose but use a burstable CPU model. You get a baseline of CPU and can burst higher for short periods, making them ideal for workloads with variable CPU demand like development servers or small web apps.
Compute Optimized (C)
C-series instances (c5, c6i, c7g) offer the highest CPU-to-memory ratio. Choose these for batch processing, high-performance computing, machine learning inference, gaming servers, and anything that's CPU-bound.
Memory Optimized (R, X)
R-series instances (r5, r6i, r7g) are designed for memory-intensive workloads — large databases, in-memory caches like Redis or Memcached, and real-time analytics. X-series instances (x1, x2idn) go even further, offering up to 4 TB of RAM for SAP HANA, in-memory databases, and extreme memory use cases.
Storage Optimized (I, D)
I-series instances (i3, i4i) deliver high random I/O performance with NVMe storage — perfect for NoSQL databases like Cassandra or MongoDB. D-series instances (d2, d3) provide dense HDD storage for distributed file systems and data warehouses where sequential throughput matters more than IOPS.
Accelerated Computing (P, G, Inf, Trn)
P-series (p4d, p5) are GPU instances for deep learning training. G-series (g5, g6) target graphics rendering, video encoding, and ML inference. Inf-series (inf2) run AWS Inferentia chips for cost-effective inference. Trn-series (trn1) use AWS Trainium chips for high-performance ML training at lower cost than GPU alternatives.
Instance Family Comparison
| Family | Category | Best For | vCPU:RAM Ratio | Price Range (hourly) |
|---|---|---|---|---|
| T | General (Burstable) | Dev/test, small web apps | 1:2 | $0.004 – $0.67 |
| M | General Purpose | App servers, mid-size DBs | 1:4 | $0.05 – $6.72 |
| C | Compute Optimized | Batch, HPC, ML inference | 1:2 | $0.04 – $5.42 |
| R | Memory Optimized | In-memory DBs, caches | 1:8 | $0.06 – $8.06 |
| X | Memory Optimized | SAP HANA, large in-memory | 1:16 | $0.83 – $26.69 |
| I | Storage (NVMe) | NoSQL, high IOPS | 1:8 | $0.16 – $15.19 |
| D | Storage (HDD) | Data lakes, HDFS | 1:8 | $0.69 – $5.52 |
| P | GPU (Training) | Deep learning training | Varies | $3.06 – $98.32 |
| G | GPU (Inference) | Graphics, video, ML | Varies | $0.53 – $16.29 |
A 1:4 vCPU-to-RAM ratio means for every vCPU you get 4 GB of RAM. An m7g.xlarge has 4 vCPUs and 16 GB RAM (4 × 4 = 16). If your workload needs more RAM per CPU, move toward R or X families.
Why Generations Matter
The number after the family letter (the 6 in c6i) indicates the generation of the underlying hardware. Each new generation typically delivers:
- 10–40% better price-performance over the previous generation
- Newer CPU architectures (e.g., Intel Ice Lake, AMD Milan, Graviton3)
- Enhanced networking and EBS bandwidth
- Improved security features (e.g., NitroTPM, AMD SEV-SNP)
Always choose the latest available generation unless you have a specific compatibility requirement. A c7g.large will outperform a c5.large while costing roughly the same or less. There's rarely a reason to launch older-generation instances for new workloads.
Attribute Suffixes Explained
The letters after the generation number describe hardware variants. Here are the most common ones:
| Suffix | Meaning | Example | Why It Matters |
|---|---|---|---|
| a | AMD processor | m6a.large | ~10% cheaper than Intel equivalents |
| g | Graviton (ARM) | m7g.large | ~20% cheaper, great for Linux workloads |
| i | Intel processor | c6i.xlarge | Best compatibility, broadest software support |
| n | Enhanced networking | m5n.large | Higher bandwidth, useful for data-heavy apps |
| d | Local NVMe storage | m5d.xlarge | Instance-attached SSD, ephemeral but fast |
| e | Extra memory | r6ie.xlarge | More RAM than the standard size |
Graviton (ARM) instances (“g” suffix) are the best value on AWS, but your software must support ARM/aarch64. Most Linux apps, containers, and interpreted languages (Python, Node, Java) work seamlessly. Windows workloads and some compiled binaries may need recompilation.
How Sizes Scale
The size portion after the dot determines how many vCPUs and how much RAM you get. Sizes follow a consistent doubling pattern within each family:
| Size | vCPUs (M family) | RAM (M family) | Network Bandwidth |
|---|---|---|---|
| nano | 2 | 0.5 GB | Up to 5 Gbps |
| micro | 2 | 1 GB | Up to 5 Gbps |
| small | 2 | 2 GB | Up to 5 Gbps |
| medium | 2 | 4 GB | Up to 5 Gbps |
| large | 2 | 8 GB | Up to 10 Gbps |
| xlarge | 4 | 16 GB | Up to 10 Gbps |
| 2xlarge | 8 | 32 GB | Up to 10 Gbps |
| 4xlarge | 16 | 64 GB | Up to 10 Gbps |
| 8xlarge | 32 | 128 GB | 10 Gbps |
| 16xlarge | 64 | 256 GB | 25 Gbps |
| 24xlarge | 96 | 384 GB | 50 Gbps |
| metal | 96+ | 384+ GB | 100 Gbps |
Notice the doubling pattern: each step up doubles the vCPUs and RAM while the price doubles proportionally. This means the per-vCPU cost is roughly the same at every size — you won't save money by picking a smaller instance unless you genuinely need fewer resources.
Quick-Pick Guide
Not sure where to start? Use this decision framework:
✅ If You Need… Start With…
It's easy to resize EC2 instances. Start with a smaller size, monitor CPU and memory utilization for a few days, then scale up if needed. Over-provisioning is the most common (and most expensive) mistake teams make.
Frequently Asked Questions
What does the number mean in c6i?
The 6 indicates the generation of the C (compute-optimized) family. Higher numbers mean newer hardware with better price-performance. As of 2026, the C family is on its 7th generation (c7i, c7g), so c6i is one generation behind. Always prefer the latest generation unless you have a specific compatibility reason.
What's the difference between M and T instances?
M instances provide consistent, sustained CPU performance — every vCPU runs at full speed all the time. T instances use a burstable CPU credit model where you get a baseline CPU level and can temporarily burst higher. T instances are cheaper but can throttle under sustained load. Use M for production workloads that need reliable performance, and T for light or spiky workloads like dev servers and small websites.
What's the cheapest EC2 instance type?
The t4g.nano is the cheapest, at roughly $0.0042/hr (~$3/month) in us-east-1. It offers 2 vCPUs and 0.5 GB RAM on a Graviton (ARM) processor. For x86 workloads, the t3.nano starts at about $0.0052/hr. Use CloudBench to compare current prices across all types and regions.
Find the Right Instance at the Right Price
Use CloudBench to compare pricing, specs, and benchmarks across every EC2 instance type. Filter by family, generation, and region to find your ideal match.
Explore Instance Pricing →