Free Resources
- Free Apache Iceberg Course
- Free Copy of “Apache Iceberg: The Definitive Guide”
- Free Copy of “Apache Polaris: The Definitive Guide”
- 2025 Apache Iceberg Architecture Guide
- How to Join the Iceberg Community
- Iceberg Lakehouse Engineering Video Playlist
- Ultimate Apache Iceberg Resource Guide
Introduction
If you’ve ever browsed AWS EC2 instance types and found yourself staring blankly at names like m5.large
, c6g.xlarge
, or r7a.2xlarge
, you’re not alone. At first glance, these names can feel cryptic—like trying to decode a secret code.
But here’s the good news: there’s a method to the madness. Each part of an instance type name tells you something important about the underlying hardware, performance characteristics, and intended use case.
In this blog post, we’ll break down the structure of AWS instance type names and show you how to read them like a pro. Once you understand how to interpret each component, you’ll be able to confidently choose the right instance for your workload—and maybe even impress your colleagues with your cloud fluency.
The Anatomy of an Instance Type
Every AWS EC2 instance type name is composed of distinct parts that reveal critical details about the instance’s capabilities. The general structure looks like this:
[family][generation][optional suffix].[size]
Let’s take the instance type c6g.large
as an example:
c
→ Compute optimized6
→ 6th generation hardwareg
→ Powered by AWS Graviton (ARM-based processor)large
→ Medium-sized instance (typically 2 vCPUs and 4 GB RAM)
By understanding what each segment means, you can quickly assess whether an instance is optimized for compute, memory, storage, or GPU, and how big or powerful it is.
In the sections below, we’ll walk through each part of the name in more detail.
Family – What Is the Instance Optimized For?
The first letter (or set of letters) in an instance type indicates the instance family, which tells you what the instance is optimized for. This helps guide your choice based on the nature of your workload—whether you need general-purpose performance, high CPU, large memory, or GPU acceleration.
Here’s a quick overview of the most common instance families:
Family | Description | Common Use Cases |
---|---|---|
t | Burstable general purpose | Development, low-traffic websites |
m | General purpose | Balanced CPU and memory workloads |
c | Compute optimized | High-performance computing, batch processing |
r | Memory optimized | In-memory databases, real-time analytics |
x | Extra memory optimized | SAP HANA, memory-intensive enterprise apps |
i | Storage optimized (high IOPS) | NoSQL databases, large transactional systems |
g | GPU instances | Machine learning, video rendering |
p | High-performance GPU | Deep learning training, scientific modeling |
h , d , z | Specialized families | Varies (HPC, local storage, high-frequency) |
Understanding the family is the first step in selecting the right instance. For example, if your application is CPU-bound, a c
family instance will typically deliver better performance per dollar than an m
or t
instance.
Generation – How New Is the Hardware?
The number immediately following the family letter represents the generation of the instance. AWS continuously improves its infrastructure, and newer generations typically offer better performance, energy efficiency, and cost-effectiveness compared to older ones.
For example:
m4
→ 4th generation general-purpose instancem5
→ Newer 5th generation versionm6g
→ 6th generation with Graviton (ARM-based processor)
Why It Matters:
Choosing a newer generation instance usually means access to:
- Improved CPUs (e.g., Intel Ice Lake, AMD EPYC, or AWS Graviton)
- Better network and storage throughput
- Lower cost for similar or better performance
That said, not all regions have the latest generation available. Always check your region’s instance offerings and benchmark critical workloads if performance is a top priority.
Suffix – Special Chips or Capabilities
Some instance types include an optional suffix—a letter (or combination of letters) that provides additional detail about the instance’s hardware or features. These suffixes appear immediately after the generation number and can help you identify special variants optimized for particular use cases.
Common Suffixes and What They Mean:
Suffix | Meaning | Description |
---|---|---|
a | AMD EPYC processor | Cost-effective alternative to Intel-based instances |
g | AWS Graviton processor (ARM-based) | Energy-efficient, high performance, lower cost |
n | Network-optimized | Enhanced network bandwidth and performance |
d | Includes local NVMe storage | Fast local instance storage for low-latency workloads |
e | Extended memory or enhanced features | More memory or improved capabilities per vCPU |
z | High-frequency Intel CPUs | For workloads that need very high clock speed |
Example:
r6a
→ Memory optimized (r), 6th generation, AMD processor (a)m6g
→ General purpose (m), 6th generation, Graviton processor (g)i3d
→ Storage optimized (i), 3rd generation, with NVMe instance store (d)
These suffixes allow you to fine-tune your instance selection based on price, performance, or architecture preferences—especially important if your software is architecture-sensitive (e.g., x86 vs ARM).
Size – How Big Is the Instance?
The part of the instance type that comes after the period (.
) defines the size of the instance. This determines how many vCPUs, how much memory, and sometimes how much networking or storage bandwidth is allocated.
AWS uses consistent naming for sizes across instance families:
Size | Description | Typical vCPUs | Notes |
---|---|---|---|
.nano | Very small | 1 | For ultra-light workloads |
.micro | Small | 1 | Entry-level, burstable performance |
.small | Modest | 1–2 | Slightly more consistent CPU |
.medium | Standard | 1–2 | Balanced for small apps |
.large | 2x baseline | 2 | Common for dev/test workloads |
.xlarge | 4x baseline | 4 | Heavier compute or memory needs |
.2xlarge | 8x baseline | 8 | Medium to large production loads |
.4xlarge | 16x baseline | 16 | High-capacity apps |
.8xlarge | 32x baseline | 32 | Data processing, analytics |
.12xlarge | 48x baseline | 48 | High-scale enterprise workloads |
.24xlarge | 96x baseline | 96 | Very high-performance computing |
.metal | Bare metal (no hypervisor) | Varies | Full access to physical server |
Example:
m5.large
= General-purpose instance, 5th generation, with 2 vCPUs and 8 GB memory.c6g.4xlarge
= Compute optimized, 6th gen, Graviton processor, with 16 vCPUs and 32 GB memory.
Choosing the right size allows you to scale vertically by increasing resources within a single instance, or horizontally by adding more instances of a smaller size depending on your architecture and cost goals.
Pulling It All Together
Now that you understand each component—family, generation, suffix, and size—you can decode any EC2 instance type and understand exactly what it offers.
Let’s break down a few examples to reinforce what you’ve learned:
🔹 Example 1: c6g.large
c
→ Compute optimized6
→ 6th generationg
→ AWS Graviton (ARM-based processor)large
→ Medium-sized (2 vCPUs, ~4 GB RAM)
Use case: Great for compute-heavy applications running on ARM, like containerized services or microservices at scale.
🔹 Example 2: r5d.4xlarge
r
→ Memory optimized5
→ 5th generationd
→ Includes local NVMe SSD instance store4xlarge
→ 16 vCPUs and 128 GB RAM
Use case: Ideal for high-throughput, in-memory databases or data processing that benefits from fast local storage.
🔹 Example 3: m7a.xlarge
m
→ General purpose7
→ 7th generationa
→ AMD EPYC processorxlarge
→ 4 vCPUs, 16 GB RAM
Use case: Balanced workloads where cost-effectiveness is important, such as web applications or business logic layers.
Understanding how to read these names makes it easier to compare instance types, choose the best fit for your application, and avoid over-provisioning. You’ll save money, optimize performance, and build with more confidence on AWS.