Amazon Elastic Compute Cloud (EC2) instance types are virtual machines that are offered by Amazon Web Services (AWS) to run applications and services in the cloud. Amazon EC2 provides a wide selection of instance types optimized to fit different use cases.
Instance types comprise varying combinations of CPU, memory, storage, and networking capacity and give you the flexibility to choose the appropriate mix of resources for your applications. There are six different types of EC2 instances: General Purpose Instances, Compute Optimized Instances, Memory-Optimized Instances, Accelerated Computing Instances, Storage Optimized Instances and HPC Optimized Instances.
General Purpose instances provide a balance of compute, memory, and network resources and are ideal for most applications. Compute Optimized instances are designed for compute-intensive applications that require high performance processors. Memory-Optimized instances are designed for workloads that process large data sets in memory. Accelerated Computing instances use hardware accelerators or co-processors to perform some functions more efficiently than is possible in software running on CPUs. Storage Optimized instances are designed for workloads that require high, sequential read and write access to large data sets on local storage. Finally HPC Optimized instances are purpose built to offer best price performance ratio for HPC workloads.
There are several families(*1) of EC2 instance types, each with their own unique characteristics, including:
- General Purpose: These instances provide a balance of compute, memory and networking resources, and can be used for a variety of diverse workloads. They are suitable for a broad range of workloads, such as web servers, app servers, code repositories and small databases. Examples of general purpose instances include the M7g, Mac, M6g, M6i, M6in, M6a, M5, M5n, M5zn, M5a, M4, A1, T4g, T3, T3a and T2.
- Compute Optimized: These instances are optimized for compute-intensive workloads, such as high-performance computing (HPC) and scientific modeling. They are ideal for compute bound applications that benefit from high performance processors. Instances belonging to this category are well suited for batch processing workloads, media transcoding, high performance web servers, high performance computing (HPC), scientific modeling, dedicated gaming servers and ad server engines, machine learning inference and other compute intensive applications. Examples of compute optimized instances include C7g, C7gn, C61m C6in, C6a, C6g, C6gn, C5, C5n, C5a and C4 families.
- Memory Optimized: These instances are optimized for memory-intensive workloads, such as in-memory databases and analytics. They are designed to deliver fast performance for workloads that process large data sets in memory. Examples of memory optimized instances include the R7g, R7iz, R6g, R6i, R6a, R5, R5n, R5b, R5a, R4, X2gd, X2idn, X2iedn, X2iezn, X1, X1e, High Memory and z1d families.
- Accelerated Computing: These instances are optimized for graphics processing unit (GPU) workloads, such as machine learning and video rendering. They use hardware accelerators, or co-processors, to perform functions, such as floating point number calculations, graphics processing, or data pattern matching, more efficiently than is possible in software running on CPUs. Examples of GPU instances include the P4, P3, P2, DL1, Trn1, Inf2, Inf1, G5, G5g, G4dn, G4ad, G3, F1 and VT1 families.
- Storage Optimized: These instances are optimized for storage-intensive workloads, such as big data processing and data warehousing. They are designed for workloads that require high, sequential read and write access to very large data sets on local storage. They are optimized to deliver tens of thousands of low-latency, random I/O operations per second (IOPS) to applications. Examples of storage optimized instances include the Im4gn, Is4gen, I4g, I4i, I3, I3en, D2, D3, D3en and H1 families.
- HPC Optimized: These are purpose built to offer the best price performance for running HPC workloads at scale on AWS. These are ideal for applications that require high performance processors for large or complex simulations and specifically for deep learning networks. Examples of HPC optimized instances include Hpc6id and Hpc6a families.
Each family of EC2 instance types comes in different sizes, or instance sizes, with different combinations of CPU, memory, storage, and network performance. Users can choose the instance type and size that best fits their specific workload and performance requirements.
*1 – As of May 2023