Amazon EC2 Instance Types
Explore how to effectively identify and choose Amazon EC2 instance types based on workload bottlenecks, instance families, generations, and platform considerations. Understand naming conventions and performance factors to design scalable, resilient, and cost-efficient cloud architectures.
When working with Amazon EC2, selecting what might seem like a simple instance can quickly become confusing. Many candidates find themselves repeatedly checking documentation to understand differences such as instance families versus sizes, generations versus CPU architectures, or whether storage is provided through local NVMe drives or Amazon EBS volumes. This confusion usually occurs when these concepts are encountered without a clear structure.
This lesson introduces a structured mental model to:
Understand what Amazon EC2 instance types are and what is meant by a simple instance type, establishing the core concept needed to reason about instance selection.
Learn the primary EC2 instance categories and how they are designed to support different workload types such as compute-optimized, memory-optimized, and general-purpose applications.
Decode how EC2 instance names are structured so we can quickly interpret generation, family, and size when reading or selecting instance types.
Explore the core platform concepts behind EC2, including the Nitro and Xen virtualization platforms and how root volumes behave during instance lifecycle events.
Build a clear mental model of EC2 instance types that will help us confidently choose the right compute resources for different workloads, an essential skill when designing scalable, reliable, and cost-efficient architectures.
What are EC2 instance types?
EC2 instance types are predefined combinations of compute, memory, storage, and networking capacity that AWS exposes as virtual servers. When we launch an instance, the instance type determines the hardware characteristics made available to that instance, including CPU, memory, and (where applicable) instance storage and network performance.
Behind the scenes, AWS physical hosts provide CPU, memory, networking, and storage resources. Some resources of the host computer, such as CPU and memory, are dedicated to a particular instance. Other resources, such as the network and the disk subsystem, are shared among instances. If each instance on a host computer tries to use as much of one of these shared resources as possible, each receives an equal share of that resource. However, when a resource is underused, an instance can consume a higher share of that resource while it's available.
Because of this, two instance types may appear similar (for example, having comparable vCPU and memory) but still behave differently under load. Differences in network throughput, disk I/O characteristics, and hardware generation can lead to variations in performance. Instance families are one of the main signals that indicate these performance characteristics.
Instance types provide higher or lower minimum performance from shared resources. For example, instance types with high I/O performance have a larger allocation of shared resources. Allocating a larger share of shared ...