Amazon EC2 instance families group types with different balances of CPU, memory, storage, and networking. Use the family to narrow your options, then compare exact instance types and sizes against your application. The EC2 instance type guide lists their specifications and use-case categories. AWS groups types into general purpose, compute optimized, memory optimized, storage optimized, accelerated computing, and high-performance computing; it lists previous-generation types separately.

If you are new to the components involved, start with this overview of EC2, AMIs, and instance storage.

Quick comparison

Family groupConsider it whenCurrent examples in AWS documentation
General purposeYour service needs a balanced mix of CPU, memory, and networking; T types fit low average CPU with occasional bursts.M9g, M8i, T8i
Compute optimizedCPU is the measured bottleneck for batch work, encoding, simulation, or CPU-bound services.C9g
Memory optimizedA large working set or memory bandwidth is limiting databases, caches, or analytics.R9g
Accelerated computingYour code can use a supported GPU, FPGA, or purpose-built ML accelerator.G7, G7e, P6-B300, Trainium and Inferentia families
Storage optimizedYour workload benefits from local instance-store capacity or high local I/O.I8ge, I8g
High-performance computingYour parallel simulation or other HPC job benefits from specialized processors and networking.Hpc8a, Hpc7g

These are examples, not a complete catalog or a claim that every type is available in every Region. AWS's guide history records recent additions such as T8i, R9g, C9g, M9g, and Hpc8a during 2026. Check the EC2 instance type release history and regional availability list before shortlisting a type.

Compare the six family groups

General purpose

M families suit applications that need a balance of compute, memory, and network resources, such as application servers and many web services. T families fit low average CPU with brief bursts. Check each type's baseline and credit mode: T8i, T4g, T3a, and T3 generally launch in Unlimited mode by default (T3 on Dedicated Hosts is an exception), where average CPU above baseline over a rolling 24-hour period incurs an additional charge; Standard mode uses accrued credits and then returns to baseline. See the general-purpose specifications and AWS's guide to burstable CPU credits and modes.

Compute optimized

C families provide a higher compute-to-memory balance for CPU-heavy work. They are a sensible candidate when profiling shows CPU saturation and the job can use the available cores effectively. For GPU-backed training or inference, compare accelerator families instead; a compute-optimized CPU does not replace a GPU or a purpose-built accelerator. The current compute list includes C9g; verify the processor, size, and supported features in the compute-optimized specifications.

Memory optimized

R families are aimed at workloads whose active data set needs more memory relative to compute, including in-memory caches, databases, and analytics. X and U families address specialized, very large memory configurations. Compare required usable memory, memory access patterns, CPU needs, and data persistence; memory capacity alone does not predict application speed. The current R9g family is one example in AWS's memory-optimized specifications.

Accelerated computing

Choose an accelerator family only when the software stack supports its hardware and can use it. GPU types can suit graphics, rendering, and GPU-based machine learning; AWS also lists Trainium and Inferentia families for supported training and inference workloads. Compare the accelerator model, memory, interconnect, framework and driver support, and per-job throughput. The current guide includes G7, G7e, and P6-B300 examples; their purposes and configurations differ, so use the accelerated-computing specifications to narrow candidates.

Storage optimized

Storage-optimized families are useful for workloads that need high local I/O or large local data capacity. For example, I8g and I8ge use local NVMe instance storage. Instance store is temporary: data can be lost when an instance stops, terminates, or has an underlying host failure. Keep durable data on persistent storage and use local storage for data you can recreate or replicate. Check the type's local-storage details in the storage-optimized specifications and AWS's instance-store data lifetime guide.

High-performance computing

HPC families target workloads such as large simulations that benefit from specialized processor or network configurations. Hpc8a and Hpc7g are current examples with different processor architectures. For distributed jobs, verify the exact type's network features, supported operating system, and software stack, then measure the full job across nodes. See AWS's high-performance computing specifications.

Check architecture, generation, and suffixes

An instance name gives clues, not a complete specification. In m9g.large, M is the general-purpose series, 9 is the generation, g indicates Graviton processors, and large is the size. By contrast, G at the start of a family name means graphics intensive. AWS lists naming conventions for series and options such as a for AMD, i for Intel, d for instance-store volumes, and n for network and EBS optimization; confirm each full type in its family specification because options vary. See AWS's instance type naming guide.

Graviton uses the Arm architecture, while many Intel- and AMD-based types use x86-64. An AMI, operating system, container image, native library, and vendor package must support the candidate architecture. A move between architectures can require rebuilding software and validating dependencies; it is not just a change to the instance name. AWS calls out architecture changes as a migration consideration in its EC2 recommendation guidance.

Generation is also not a performance guarantee. Compare the exact CPU model, memory, and per-instance network and EBS limits, and run your own application benchmark. AWS recommends benchmarking candidate types with your workload rather than choosing by family name alone.

Check EBS, network, and local-storage fit

For EBS-backed workloads, compare both the instance's EBS bandwidth and IOPS limits and the combined performance of its attached volumes. The effective ceiling is constrained by whichever side is lower. Include volume type, provisioned IOPS and throughput, queue depth, and I/O size in the comparison; a different EC2 type cannot remove a limit imposed by its EBS volumes. AWS explains the relationship in its EBS performance guidance.

For network-heavy services, check the candidate's network specifications and measure traffic under representative load. Published maximums are type-specific; they do not establish the throughput your application will achieve. AWS documents per-type baseline and maximum behavior in its network bandwidth guide. If a family has local instance-store disks, treat them separately from EBS: compare the local device's performance and the application's tolerance for losing its contents.

Benchmark a short list with your workload

This read-only AWS CLI query lists matching sizes from selected general-purpose, compute-optimized, memory-optimized, storage-optimized, and HPC families, with advertised architecture, memory, network, and EBS specifications in us-east-1. Run it from an authenticated AWS CLI profile with ec2:DescribeInstanceTypes permission, and change the Region and family filters to match your shortlist. Catalog specifications help filter candidates; they are not a substitute for measuring your application. See AWS's EC2 permission reference.

aws ec2 describe-instance-types \
  --region us-east-1 \
  --filters 'Name=instance-type,Values=m9g.*,m8i.*,t8i.*,c9g.*,r9g.*,i8ge.*,hpc8a.*,hpc7g.*' \
  --query 'InstanceTypes[].{Type:InstanceType,Architectures:ProcessorInfo.SupportedArchitectures,vCPUs:VCpuInfo.DefaultVCpus,MemoryMiB:MemoryInfo.SizeInMiB,InstanceStoreGiB:InstanceStorageInfo.TotalSizeInGB,Network:NetworkInfo.NetworkPerformance,NetworkBaselineGbps:NetworkInfo.NetworkCards[0].BaselineBandwidthInGbps,EBSMaxIOPS:EbsInfo.EbsOptimizedInfo.MaximumIops,EBSMaxMbps:EbsInfo.EbsOptimizedInfo.MaximumBandwidthInMbps,EBSMaxThroughputMBps:EbsInfo.EbsOptimizedInfo.MaximumThroughputInMBps}' \
  --output table
  1. Profile before selecting. Capture the busy and quiet parts of a representative workload. Check CPU use, memory pressure, application latency and throughput, network traffic, and EBS or instance-store I/O. Compute Optimizer can help narrow choices from historical utilization, but its recommendations are inputs to your decision, not a substitute for a test. See the EC2 recommendation metrics and graphs.
  2. Shortlist exact types. Match the limiting resource first, then check architecture, memory capacity, local-storage needs, network and EBS limits, supported Region, and the AMI and software stack. For a balanced service, M9g and M8i are current examples to compare if both fit its architecture and region; consider T8i only when its CPU baseline and credit model fit. For CPU-, memory-, HPC-, local-I/O-, or accelerator-bound jobs, start with the corresponding current examples above.
  3. Run the same representative test. Use the same application build, dataset, concurrency, and EBS configuration on each candidate. Include typical traffic and expected peaks, repeat runs, and keep the operating system, software settings, and test environment consistent. If you are testing another architecture, use compatible images and rebuild native dependencies before measuring.
  4. Compare service results and cost per unit of work. Record p95 or p99 latency, throughput, error rate, CPU and memory pressure, network and storage metrics, and cost per successful request or completed job. Compare prices using the Region, operating system, and purchase option you expect to use; check the current EC2 pricing page rather than relying on a stale hourly example.
  5. Validate before rollout. Repeat the winning candidate under production-shaped load, then use a canary or staged change to confirm that application behavior and service-level targets hold. Keep the tested instance type, size, architecture, storage configuration, load, and results together so the next comparison has a useful baseline.

For a step-by-step framework to define metrics and run before-and-after load tests, see how to benchmark AWS performance after a migration. For ongoing usage review and right-sizing, see the EC2 right-sizing guide.