How do you read an EC2 instance type name like m5.large or c7g.xlarge?
The letter is the family (m general purpose, c compute, r memory, t burstable), the number is the generation, extra letters mark features such as g for Graviton, and the part after the dot is the size.
Explain it simply
Think of buying a mobile phone: the brand line (Galaxy S), the model year (S24) and the storage variant (256 GB) are all in the name. An EC2 type name works the same way: c7g.xlarge is the family, generation and options, then the size.
Example
m5.large
| | |
| | size: nano, micro, small, medium, large, xlarge, 2xlarge ...
| generation: higher is newer
family: m = balanced CPU and memory
c7g.xlarge -> compute family, 7th generation, g = Graviton (ARM) processor
r6i.2xlarge -> memory family, 6th generation, i = IntelCommon families: t burstable and cheap for small apps, m general purpose, c compute heavy (batch jobs, encoding), r memory heavy (in-memory databases), i fast local storage, p and g GPUs. Letter suffixes like a (AMD), g (Graviton), d (local NVMe disk) and n (faster network) tell you what is different inside the family. Each size roughly doubles vCPU and memory of the previous one.
What to say in the interview
"The first letter is the family: m is balanced, c is compute optimised, r is memory optimised, t is burstable. The number is the generation and newer is usually better value. Extra letters flag the processor or features, and the size after the dot sets vCPU and memory. I pick the family from the workload, then size it from metrics."
Common mistakes
- Picking a size before checking whether the app is CPU-bound or memory-bound.