Understanding EC2 Instance Types

EC2 instance types in AWS have fancy names like m5dn.4xlarge! Have you ever wondered what all those characters in the name stand for? This post explains just that.

Here is a breakdown of what each of those characters means. We’ll look at each piece in detail below.

The whole thing, m6gd.4xlarge is the “instance type.” Let’s look at each of the pieces one-by-one.

Instance Family

The “family” of an instance denotes what kind of workloads it is suitable for. Another way of defining the “family” of an instance is by looking at the ratio of vCPUs to memory. Sometimes, families also indicate certain special capabilities that the instances have, like a GPU. Consequently, instances are categorized into the following families:

  • General Purpose — Burstable — T Family
  • General Purpose — Intel-based — M Family
  • General Purpose — ARM-based — A Family
  • Compute Optimized — C Family
  • Memory Optimized — R Family
  • (Extreme) Memory Optimized — X Family
  • Accelerated Computing — GPU — P & G Families
  • Accelerated Computing — FPGA — F Family
  • Storage Optimized — SSD-based — I & D Families
  • Storage Optimized — HDD-based — H Family

Instance Generation

The number in the instance type name is the instance family’s generation. Newer generations are generally better, use the latest chips, and are more efficient and cost-effective overall.

However, occasionally, there are other differences as well among generations. For example, M3, C3, and R3 have local SSDs whereas M4, C4, and R4 do not.

Instance Capabilities

These letters in the instance name denote various capabilities that the instance has:

  • a for instances with AMD CPUs
  • b for instances optimized for block store
  • d for instances with direct-attached storage
  • g for instances with Graviton processors
  • n for network optimized instances

Instance Size

The last part of the instance type’s name is the “size” of the instance. This is the number of vCPUs the instance provides:

  • large = 2 vCPUs
  • xlarge = 4 vCPUs
  • 2xlarge = 8 vCPUs
  • and so on…

The size could be “metal” meaning the instance is a bare-metal instance and as such has access to all CPUs of the bare-metal server, usually 96.

T family instances provide sizes smaller than large, i.e., medium, small, micro, and nano. All these offer 1 or 2 vCPUs depending on the generation.

About the Author ✍🏻

Harish KM is a Principal DevOps Engineer at QloudX & a top-ranked APN Ambassador. 👨🏻‍💻

With over a decade of industry experience as everything from a full-stack engineer to a cloud architect, Harish has built many world-class solutions for clients around the world! 👷🏻‍♂️

With over 20 certifications in cloud (AWS, Azure, GCP), containers (Kubernetes, Docker) & DevOps (Terraform, Ansible, Jenkins), Harish is an expert in a multitude of technologies. 📚

These days, his focus is on the fascinating world of DevOps & how it can transform the way we do things! 🚀

Leave a Reply

Your email address will not be published.