Amazon EC2 Cost Optimization Guide

How to Choose the Right Amazon EC2 Instance Type

Deconstructing EC2 Families & Instance Types

AWS offers over 300 EC2 instance types across five EC2 instance families, each with varying resource and performance focuses.

In this video, Densify’s experts summarize the strengths of the most commonly-used EC2 instance types and offer guidelines on how to identify the EC2 instance that provides the best resources for your application workload for the lowest price.

Amazon EC2 Basics

Amazon Elastic Compute Cloud (EC2) is an AWS service offering that delivers secure and scalable cloud compute capacity.

Amazon EC2 icon

Each of your EC2 instances is a virtual server providing compute power capable of running apps within the AWS public cloud.

EC2 instances are launched by created by an Amazon Machine Image (AMI)—an AWS template that describes and defines the OS and operating environment for one or more EC2 instances of one or more EC2 instance types.

Each instance type delivers a mix of CPU, memory, storage, and networking capacity, across one or more size options, and should be carefully matched to your workload’s unique demands.

AWS groups instances into families that offer discreet abilities for your workloads:

  1. General Purpose
  2. Compute Optimized
  3. Memory Optimized
  4. Accelerated Computing
  5. Storage Optimized

The elastic designation in Elastic Compute Cloud refers to the ability to increase your EC2 instance footprint on demand—up or down—manually, or automatically through Auto Scaling.

At the time of writing, there are nearly 280 EC2 instance types available across nearly 25 regions and 70 availability zones—yielding millions of possible permutations to choose from when optimizing the EC2 instance selection for your workload.

So, how do you choose?

Although other public cloud providers may leverage different groupings and terminologies for their compute service offerings, the general concepts outlined below will apply.

The Benefits of Each EC2 Instance Family

General Purpose EC2 Instance Family

General purpose instances are designed for scalable services, such as web servers, microservices, and distributed data stores. Within the general purpose family there are A1, T4g, T3, T3a, T2, M6g, M5, M5a, M5n, and M4 instance types.

Amazon EC2 A1 Instance Type

The A1 type is used for Arm processor-based workloads.

Current-Generation Amazon EC2 A1 Instances
Instance SizevCPUMem (GiB)StorageNetwork Performance (Gbps)
a1.medium12EBSUp to 10
a1.large24EBSUp to 10
a1.xlarge48EBSUp to 10
a1.2xlarge816EBSUp to 10
a1.4xlarge1632EBSUp to 10
a1.metal1632EBSUp to 10

Amazon EC2 T4g Instance Types

Amazon EC2 T4g instances are EBS-optimized for enhanced networking, and each contain a custom AWS Graviton2 processor with a 64-bit Arm core. T4g instances deliver up to 40% better performance for the price than T3 instances and are appropriate for a broad set of burstable general purpose workloads, including microservices, low-latency interactive applications, small and medium databases, virtual desktops, development environments, code repos, and business-critical apps.

AWS T4g instances earn CPU credits when workloads operate below the baseline threshold. Each accumulated CPU credit can be used to burst to full CPU core performance for one minute. In unlimited mode, T4g instances can burst for as long as required at any time.

Current-Generation Amazon EC2 t4g Instances</caption
Instance SizevCPUMemory (GiB)Baseline Performance / vCPUCPU Credits Earned / HrNetwork Burst BandwidthEBS Burst Bandwidth
t4g.nano20.55%6Up to 5 GbpsUp to 2,085 Mbps
t4g.micro2110%12Up to 5 GbpsUp to 2,085 Mbps
t4g.small2220%24Up to 5 GbpsUp to 2,085 Mbps
t4g.medium2420%24Up to 5 GbpsUp to 2,085 Mbps
t4g.large2830%36Up to 5 GbpsUp to 2,780 Mbps
t4g.xlarge41640%96Up to 5 GbpsUp to 2,780 Mbps
t4g.2xlarge83240%192Up to 5 GbpsUp to 2,780 Mbps

Amazon EC2 T3, T3a, T2 Instance Types

The T3s are burstable general purpose instance types that provide a baseline of CPU performance, but can burst to higher levels of CPU performance during spikes in CPU demand.

T3 instances, and the next-generation version, T3a, are configured with a balance of CPU, memory, and networking resources. There are 7 T3 instance types, ranging from t3.nano with two virtual CPUs and 0.5GB of memory to t3.2xlarge with eight virtual CPUs and 32GB of memory.

T3 instance types are configured by default to increase CPU bursting without limit. This helps prevent insufficient CPU, but also leaves customers at risk of paying more than they have to for the same level of CPU resources. The T3 instances use the Nitro system, which enables network and EBS bursting, as well.

Current-Generation Amazon EC2 T3, T3a, & T2 Instances
Instance SizevCPUCPU Credits/hourMem (GiB)StorageNetwork Performance
t3.nano260.5EBSUp to 5 Gbps
t3.micro2121EBSUp to 5 Gbps
t3.small2242EBSUp to 5 Gbps
t3.medium2244EBSUp to 5 Gbps
t3.large2368EBSUp to 5 Gbps
t3.xlarge49616EBSUp to 5 Gbps
t3.2xlarge819232EBSUp to 5 Gbps
t3a.nano260.5EBSUp to 5 Gbps
t3a.micro2121EBSUp to 5 Gbps
t3a.small2242EBSUp to 5 Gbps
t3a.medium2244EBSUp to 5 Gbps
t3a.large2368EBSUp to 5 Gbps
t3a.xlarge49616EBSUp to 5 Gbps
t3a.2xlarge819232EBSUp to 5 Gbps
t2.nano130.5EBSLow
t2.micro161EBSLow to Moderate
t2.small1122EBSLow to Moderate
t2.medium2244EBSLow to Moderate
t2.large2368EBSLow to Moderate
t2.xlarge45416EBSModerate
t2.2xlarge88132EBSModerate

Amazon EC2 M6g Instance Type

Amazon EC2 M6g instances are driven by 64-bit Neoverse Arm-based AWS Graviton2 processors that deliver up to 40% improvement in price and performance beyond current generation M5 instances and enable a balance of compute, memory, and networking resources to support a broad set of workloads.

Current-Generation Amazon EC2 M6g Instances
Instance SizevCPUMemory (GiB)Instance Storage (GIB)Network Bandwidth (Gbps)EBS Bandwidth (Mbps)
m6g.medium14EBSUp to 10Up to 4,750
m6g.large28EBSUp to 10Up to 4,750
m6g.xlarge416EBSUp to 10Up to 4,750
m6g.2xlarge832EBSUp to 10Up to 4,750
m6g.4xlarge1664EBSUp to 104,750
m6g.8xlarge32128EBS129,000
m6g.12xlarge48192EBS2013,500
m6g.16xlarge64256EBS2519,000
m6g.metal64256EBS2519,000
m6gd.medium141×59 NVMe SSDUp to 10Up to 4,750
m6gd.large281×118 NVMe SSDUp to 10Up to 4,750
m6gd.xlarge4161×237 NVMe SSDUp to 10Up to 4,750
m6gd.2xlarge8321×474 NVMe SSDUp to 10Up to 4,750
m6gd.4xlarge16641×950 NVMe SSDUp to 104,750
m6gd.8xlarge321281×1900 NVMe SSD129,000
m6gd.12xlarge481922×1425 NVMe SSD2013,500
m6gd.16xlarge642562×1900 NVMe SSD2519,000
m6gd.metal642562×1900 NVMe SSD2519,000

Amazon EC2 M5, M5a, M5n, & M4 Instance Types

The M5, M5a, M5n, and M4 instances are also balanced CPU and memory instances. They’re designed for small and midsize databases and back-end applications.

Current-Generation Amazon EC2 M5, M5a, & M5n Instances
Instance SizevCPUMemory (GiB)Instance Storage (GiB)Network Bandwidth (Gbps)EBS Bandwidth (Mbps)
m5.large28EBSUp to 10Up to 4,750
m5.xlarge416EBSUp to 10Up to 4,750
m5.2xlarge832EBSUp to 10Up to 4,750
m5.4xlarge1664EBSUp to 104,750
m5.8xlarge32128EBS106,800
m5.12xlarge48192EBS109,500
m5.16xlarge64256EBS2013,600
m5.24xlarge96384EBS2519,000
m5.metal96384EBS2519,000
m5d.large281×75 NVMe SSDUp to 10Up to 4,750
m5d.xlarge4161×150 NVMe SSDUp to 10Up to 4,750
m5d.2xlarge8321×300 NVMe SSDUp to 10Up to 4,750
m5d.4xlarge16642×300 NVMe SSDUp to 104,750
m5d.8xlarge321282×600 NVMe SSD106,800
m5d.12xlarge481922×900 NVMe SSD109,500
m5d.16xlarge642564×600 NVMe SSD2013,600
m5d.24xlarge963844×900 NVMe SSD2519,000
m5d.metal963844×900 NVMe SSD2519,000
m5a.large28EBSUp to 10Up to 2,880
m5a.xlarge416EBSUp to 10Up to 2,880
m5a.2xlarge832EBSUp to 10Up to 2,880
m5a.4xlarge1664EBSUp to 102,880
m5a.8xlarge32128EBSUp to 104,750
m5a.12xlarge48192EBS106,780
m5a.16xlarge64256EBS129,500
m5a.24xlarge96384EBS2013,570
m5ad.large281×75 NVMe SSDUp to 10Up to 2,880
m5ad.xlarge4161×150 NVMe SSDUp to 10Up to 2,880
m5ad.2xlarge8321×300 NVMe SSDUp to 10Up to 2,880
m5ad.4xlarge16642×300 NVMe SSDUp to 102,880
m5ad.8xlarge321282×600 NVMe SSDUp to 104,750
m5ad.12xlarge481922×900 NVMe SSD106,870
m5ad.16xlarge642564×600 NVMe SSD129,500
m5ad.24xlarge963844×900 NVMe SSD2013,570
m5n.large28EBSUp to 25Up to 4,750
m5n.xlarge416EBSUp to 25Up to 4,750
m5n.2xlarge832EBSUp to 25Up to 4,750
m5n.4xlarge1664EBSUp to 254,750
m5n.8xlarge32128EBS256,800
m5n.12xlarge48192EBS509,500
m5n.16xlarge64256EBS7513,600
m5n.24xlarge96384EBS10019,000
m5dn.large281×75 NVMe SSDUp to 25Up to 4,750
m5dn.xlarge4161×150 NVMe SSDUp to 25Up to 4,750
m5dn.2xlarge8321×300 NVMe SSDUp to 25Up to 4,750
m5dn.4xlarge16642×300 NVMe SSDUp to 254,750
m5dn.8xlarge321282×600 NVMe SSD256,800
m5dn.12xlarge481922×900 NVMe SSD509,500
m5dn.16xlarge642564×600 NVMe SSD7513,600
m5dn.24xlarge963844×900 NVMe SSD10019,000
Current-Generation Amazon EC2 M4 Instances
Instance SizevCPUMem (GiB)StorageDedicated EBS Bandwidth (Mbps)Network Performance
m4.large28EBS450Moderate
m4.xlarge416EBS750High
m4.2xlarge832EBS1,000High
m4.4xlarge1664EBS2,000High
m4.10xlarge40160EBS4,00010 gigabit
m4.16xlarge64256EBS10,00025 gigabit

Compute Optimized EC2 Instance Family

The C5, C5n, and C4 instance types offer the lowest price per CPU ratio of the instance types. These are designed for compute-intensive workloads, like batch processing, data analytics, machine learning, and high-performance computing. The C5 come in nine different models, from the c5.large with two virtual CPUs and 4GB of memory to the c5d.18xlarge with 72 virtual CPUs and 144GB of memory.

Amazon EC2 C5 & C5n Instance Types

Current-Generation Amazon EC2 C5 & C5n Instances
Instance SizevCPUMemory (GiB)Instance Storage (GiB)Network Bandwidth (Gbps)EBS Bandwidth (Mbps)
c6g.medium12EBSUp to 10Up to 4,750
c6g.large24EBSUp to 10Up to 4,750
c6g.xlarge48EBSUp to 10Up to 4,750
c6g.2xlarge816EBSUp to 10Up to 4,750
c6g.4xlarge1632EBSUp to 104750
c6g.8xlarge3264EBS129000
c6g.12xlarge4896EBS2013500
c6g.16xlarge64128EBS2519000
c6g.metal64128EBS2519000
c6gd.medium121×59 NVMe SSDUp to 10Up to 4,750
c6gd.large241×118 NVMe SSDUp to 10Up to 4,750
c6gd.xlarge481×237 NVMe SSDUp to 10Up to 4,750
c6gd.2xlarge8161×474 NVMe SSDUp to 10Up to 4,750
c6gd.4xlarge16321×950 NVMe SSDUp to 104,750
c6gd.8xlarge32641×1900 NVMe SSD129,000
c6gd.12xlarge48962×1425 NVMe SSD2013,500
c6gd.16xlarge641282×1900 NVMe SSD2519,000
c6gd.metal641282×1900 NVMe SSD2519,000
c5.large24EBSUp to 10Up to 4,750
c5.xlarge48EBSUp to 10Up to 4,750
c5.2xlarge816EBSUp to 10Up to 4,750
c5.4xlarge1632EBSUp to 104,750
c5.9xlarge3672EBS109,500
c5.12xlarge4896EBS129,500
c5.18xlarge72144EBS2519,000
c5.24xlarge96192EBS2519,000
c5.metal96192EBS2519,000
c5d.large241×50 NVMe SSDUp to 10Up to 4,750
c5d.xlarge481×100 NVMe SSDUp to 10Up to 4,750
c5d.2xlarge8161×200 NVMe SSDUp to 10Up to 4,750
c5d.4xlarge16321×400 NVMe SSDUp to 104,750
c5d.9xlarge36721×900 NVMe SSD109,500
c5d.12xlarge48962×900 NVMe SSD129,500
c5d.18xlarge721442×900 NVMe SSD2519,000
c5d.24xlarge961924×900 NVMe SSD2519,000
c5d.metal961924×900 NVMe SSD2519,000
c5a.large24EBSUp to 10Up to 3,170
c5a.xlarge48EBSUp to 10Up to 3,170
c5a.2xlarge816EBSUp to 10Up to 3,170
c5a.4xlarge1632EBSUp to 10Up to 3,170
c5a.8xlarge3264EBS103,170
c5a.12xlarge4896EBS124,750
c5a.16xlarge64128EBS206,300
c5a.24xlarge96192EBS209,500
c5ad.large241 x 75 NVMe SSDup to 10up to 3,170
c5ad.xlarge481 x 150 NVMe SSDup to 10up to 3,170
c5ad.2xlarge8161 x 300 NVMe SSDup to 10up to 3,170
c5ad.4xlarge16322 x 300 NVMe SSDup to 10up to 3,170
c5ad.8xlarge32642 x 600 NVMe SSD103,170
c5ad.12xlarge48962 x 900 NVMe SSD124,750
c5ad.16xlarge641282 x 1200 NVMe SSD206,300
c5ad.24xlarge961922 x 1900 NVMe SSD209,500
c5n.large25.25EBSUp to 25Up to 4,750
c5n.xlarge410.5EBSUp to 25Up to 4,750
c5n.2xlarge821EBSUp to 25Up to 4,750
c5n.4xlarge1642EBSUp to 254,750
c5n.9xlarge3696EBS509,500
c5n.18xlarge72192EBS10019,000
c5n.metal72192EBS10019,000

Amazon EC2 C4 Instance Type

Current-Generation Amazon EC2 C4 Instances
Instance SizevCPUMem (GiB)StorageDedicated EBS Bandwidth (Mbps)Network Performance
c4.large23.75EBS500Moderate
c4.xlarge47.5EBS750High
c4.2xlarge815EBS1,000High
c4.4xlarge1630EBS2,000High
c4.8xlarge3660EBS4,00010 gigabit

Memory Optimized EC2 Instance Family

The R6g, R5, R5a, R5n, R4, X1e, X1, High Memory (U) and z1d instance types are memory optimized. These are designed for memory-intensive applications such as databases and real-time stream processing.

Amazon EC2 R6g, R5, R5a, & R5n Instance Types

Current-Generation Amazon EC2 R6g, R5, R5a, & R5n Instances
Instance SizevCPUMemory (GiB)Instance StorageNetwork Bandwidth (Gbps)EBS Bandwidth (Mbps)
r6g.medium18EBSUp to 10Up to 4,750
r6g.large216EBSUp to 10Up to 4,750
r6g.xlarge432EBSUp to 10Up to 4,750
r6g.2xlarge864EBSUp to 10Up to 4,750
r6g.4xlarge16128EBSUp to 104750
r6g.8xlarge32256EBS129000
r6g.12xlarge48384EBS2013500
r6g.16xlarge64512EBS2519000
r6g.metal64512EBS2519000
r6gd.medium181×59 NVMe SSDUp to 10Up to 4,750
r6gd.large2161×118 NVMe SSDUp to 10Up to 4,750
r6gd.xlarge4321×237 NVMe SSDUp to 10Up to 4,750
r6gd.2xlarge8641×474 NVMe SSDUp to 10Up to 4,750
r6gd.4xlarge161281×950 NVMe SSDUp to 104,750
r6gd.8xlarge322561×1900 NVMe SSD129,000
r6gd.12xlarge483842×1425 NVMe SSD2013,500
r6gd.16xlarge645122×1900 NVMe SSD2519,000
r6gd.metal645122×1900 NVMe SSD2519,000
r5.large216EBSup to 10Up to 4,750
r5.xlarge432EBSup to 10Up to 4,750
r5.2xlarge864EBSup to 10Up to 4,750
r5.4xlarge16128EBSup to 104,750
r5.8xlarge32256EBS106,800
r5.12xlarge48384EBS109,500
r5.16xlarge64512EBS2013,600
r5.24xlarge96768EBS2519,000
r5.metal96768EBS2519,000
r5d.large2161×75 NVMe SSDup to 10Up to 4,750
r5d.xlarge4321×150 NVMe SSDup to 10Up to 4,750
r5d.2xlarge8641×300 NVMe SSDup to 10Up to 4,750
r5d.4xlarge161282×300 NVMe SSDup to 104,750
r5d.8xlarge322562×600 NVMe SSD106,800
r5d.12xlarge483842×900 NVMe SSD109,500
r5d.16xlarge645124×600 NVMe SSD2013,600
r5d.24xlarge967684×900 NVMe SSD2519,000
r5d.metal967684×900 NVMe SSD2519,000
r5a.large216EBSUp to 10Up to 2,880
r5a.xlarge432EBSUp to 10Up to 2,880
r5a.2xlarge864EBSUp to 10Up to 2,880
r5a.4xlarge16128EBSUp to 102,880
r5a.8xlarge32256EBSUp to 104,750
r5a.12xlarge48384EBS106,780
r5a.16xlarge64512EBS129,500
r5a.24xlarge96768EBS2013,570
r5ad.large2161×75 NVMe SSDUp to 10Up to 2,880
r5ad.xlarge4321×150 NVMe SSDUp to 10Up to 2,880
r5ad.2xlarge8641×300 NVMe SSDUp to 10Up to 2,880
r5ad.4xlarge161282×300 NVMe SSDUp to 102,880
r5ad.8xlarge322562×600 NVMe SSDUp to 104,750
r5ad.12xlarge483842×900 NVMe SSD106,780
r5ad.16xlarge645124×600 NVMe SSD129,500
r5ad.24xlarge967684×900 NVMe SSD2013,570
r5n.large216EBSUp to 25Up to 4,750
r5n.xlarge432EBSUp to 25Up to 4,750
r5n.2xlarge864EBSUp to 25Up to 4,750
r5n.4xlarge16128EBSUp to 254,750
r5n.8xlarge32256EBS256,800
r5n.12xlarge48384EBS509,500
r5n.16xlarge64512EBS7513,600
r5n.24xlarge96768EBS10019,000
r5dn.large2161×75 NVMe SSDUp to 25Up to 4,750
r5dn.xlarge4321×150 NVMe SSDUp to 25Up to 4,750
r5dn.2xlarge8641×300 NVMe SSDUp to 25Up to 4,750
r5dn.4xlarge161282×300 NVMe SSDUp to 254,750
r5dn.8xlarge322562×600 NVMe SSD256,800
r5dn.12xlarge483842×900 NVMe SSD509,500
r5dn.16xlarge645124×600 NVMe SSD7513,600
r5dn.24xlarge967684×900 NVMe SSD10019,000

Amazon EC2 R4 Instance Type

Current-Generation Amazon EC2 R4 Instances
Instance SizevCPUMem (GiB)StorageNetworking Performance (Gbps)
r4.large215.25EBSUp to 10
r4.xlarge430.5EBSUp to 10
r4.2xlarge861EBSUp to 10
r4.4xlarge16122EBSUp to 10
r4.8xlarge32244EBS10
r4.16xlarge64488EBS25

Amazon EC2 X1e & X1 Instance Types

The X1e and X1 are well-suited for database servers with up to 128 virtual CPUs and 3,904GB of memory.

Current-Generation Amazon EC2 X1e & X1 Instances
Instance SizevCPUMem (GiB)SSD Storage (GB)Dedicated EBS Bandwidth (Mbps)Networking Performance
x1e.xlarge41221×120500Up to 10 gigabit
x1e.2xlarge82441×2401,000Up to 10 gigabit
x1e.4xlarge164881×4801,750Up to 10 gigabit
x1e.8xlarge329761×9603,500Up to 10 gigabit
x1e.16xlarge641,9521×1,9207,00010 gigabit
x1e.32xlarge1283,9042×1,92014,00025 gigabit
x1.16xlarge649761×1,9207,00010 gigabit
x1.32xlarge1281,9522×1,92014,00025 gigabit

Amazon EC2 High Memory (U) Instance Type

Current-Generation Amazon EC2 High Memory Instances
Instance SizeLogical ProcessorsRAM (GiB)Network Perf (Gbps)Dedicated EBS Bandwidth (Gbps)
u-6tb1.metal448614410038
u-9tb1.metal448921610038
u-12tb1.metal4481228810038
u-18tb1.metal4481843210038
u-24tb1.metal4482457610038

Amazon EC2 z1d Instance Type

The Z1D is a specialty instance with a 4.0GHz sustained frequency; it’s designed for applications with high per-core licensing costs.

Current-Generation Amazon EC2 z1d Instances
Instance SizevCPUMem (GiB)Networking PerformanceSSD Storage (GB)
z1d.large216Up to 10 gigabit1×75 NVMe SSD
z1d.xlarge432Up to 10 gigabit1×150 NVMe SSD
z1d.2xlarge864Up to 10 gigabit1×300 NVMe SSD
z1d.3xlarge1296Up to 10 gigabit1×450 NVMe SSD
z1d.6xlarge2419210 gigabit1×900 NVMe SSD
z1d.12xlarge4838425 gigabit2×900 NVMe SSD
z1d.metal4838425 gigabit2×900 NVMe SSD

Accelerated Computing EC2 Instance Family

P3, P2, Inf1, G4, G3, and F1 accelerated computing instances provide graphics processing units (GPUs) or field programmable gate arrays (FPGAs) that are used for machine learning, high-performance computing, and other numerically intensive workloads.

Amazon EC2 P1 & P2 Instance Types

Current-Generation Amazon EC2 P1 Instances
Instance SizeGPUsvCPUMem (GiB)GPU Mem (GiB)GPU P2PStorage (GB)Dedicated EBS BandwidthNetworking Performance
p3.2xlarge186116EBS1.5 GbpsUp to 10 gigabit
p3.8xlarge43224464NVLinkEBS7 Gbps10 gigabit
p3.16xlarge864488128NVLinkEBS14 Gbps25 gigabit
p3dn.24xlarge896768256NVLink2×900 NVMe SSD19 Gbps100 gigabit
Current-Generation Amazon EC2 P2 Instances
Instance SizeGPUsvCPUMem (GiB)GPU Memory (GiB)Network Performance
p2.xlarge146112High
p2.8xlarge8324889610 gigabit
p2.16xlarge166473219225 gigabit

Amazon EC2 Inf1 Instance Type

Current-Generation Amazon EC2 Inf1 Instances
Instance SizevCPUsMemory (GiB)StorageInferentia chipsInferentia chip-to-chip interconnectNetwork bandwidthEBS bandwidth
inf1.xlarge48EBS1N/AUp to 25 GbpsUp to 4.75 Gbps
inf1.2xlarge816EBS1N/AUp to 25 GbpsUp to 4.75 Gbps
inf1.6xlarge2448EBS4Yes25 Gbps4.75 Gbps
inf1.24xlarge96192EBS16Yes100 Gbps19 Gbps

Amazon EC2 G4 & G3 Instance Types

Current-Generation Amazon EC2 G4 Instances
Instance SizeGPUsvCPUMem (GiB)GPU Memory (GiB)Instance Storage (GB)Network Performance (Gbps)
g4dn.xlarge141616125Up to 25
g4dn.2xlarge183216225Up to 25
g4dn.4xlarge1166416225Up to 25
g4dn.8xlarge132128161×90050
g4dn.16xlarge164256161×90050
g4dn.12xlarge448192641×90050
g4dn.metal8963841282×900100
Current-Generation Amazon EC2 G3 Instances
Instance SizeGPUsvCPUMem (GiB)GPU Memory (GiB)Network Performance
g3s.xlarge1430.58Up to 10 gigabit
g3.4xlarge1161228Up to 10 gigabit
g3.8xlarge2322441610 gigabit
g3.16xlarge4644883225 gigabit

Amazon EC2 F1 Instance Type

Current-Generation Amazon EC2 F1 Instances
Instance SizeFPGAsvCPUMem (GiB)SSD Storage (GB)Networking Performance
f1.2xlarge18122470Up to 10 gigabit
f1.4xlarge216244940Up to 10 gigabit
f1.16xlarge8649764×94025 gigabit

Storage Optimized EC2 Instance Family

The I3, I3en, D2, and H1 families make up the storage optimized instances.

Amazon EC2 I3 & I3en Instance Types

The I3 and I3en use non-volatile memory express (NVMe) SSD storage. These devices are optimized for low latency, random I/O and high sequential reads.

Current-Generation Amazon EC2 I3 Instances
Instance SizevCPUMem (GiB)Local Storage (GB)Networking Performance (Gbps)
i3.large215.251×475 NVMe SSDUp to 10
i3.xlarge430.51×950 NVMe SSDUp to 10
i3.2xlarge8611×1,900 NVMe SSDUp to 10
i3.4xlarge161222×1,900 NVMe SSDUp to 10
i3.8xlarge322444×1,900 NVMe SSD10
i3.16xlarge644888×1,900 NVMe SSD25
i3.metal725128×1,900 NVMe SSD25
Current-Generation Amazon EC2 I3en Instances
Instance SizevCPUMem (GiB)Local Storage (GB)Network Bandwidth
i3en.large2161×1,250 NVMe SSDUp to 25 Gbps
i3en.xlarge4321×2,500 NVMe SSDUp to 25 Gbps
i3en.2xlarge8642×2,500 NVMe SSDUp to 25 Gbps
i3en.3xlarge12961×7,500 NVMe SSDUp to 25 Gbps
i3en.6xlarge241922×7,500 NVMe SSD25 Gbps
i3en.12xlarge483844×7,500 NVMe SSD50 Gbps
i3en.24xlarge967688×7,500 NVMe SSD100 Gbps
i3en.metal967688×7,500 NVMe SSD100 Gbps

Amazon EC2 D2 Instance Type

The D2 instances are backed by hard disk drives and offer large-volume, low-cost persistent storage with up to 48TB per instance.

Current-Generation Amazon EC2 D2 Instances
Instance SizevCPUMem (GiB)Storage (GB)Network Performance
d2.xlarge430.53×2000 HDDModerate
d2.2xlarge8616×2000 HDDHigh
d2.4xlarge1612212×2000 HDDHigh
d2.8xlarge3624424×2000 HDD10 gigabit

Amazon EC2 H1 Instance Type

The H1 instances have up to 16TB of hard disk drive storage designed for high disk throughput.

Current-Generation Amazon EC2 H1 Instances
Instance SizevCPUMem (GiB)Networking PerformanceStorage (GB)
h1.2xlarge832Up to 10 gigabit1×2,000 HDD
h1.4xlarge1664Up to 10 gigabit2×2,000 HDD
h1.8xlarge3212810 gigabit4×2,000 HDD
h1.16xlarge6425625 gigabit8×2,000 HDD

Other EC2 Instance Selection Considerations

In addition to selecting the right EC2 instance family and type, other resourcing considerations include:

Chipset
Intel Xeon versus AMD EPYC versus AWS Graviton
Sizing
What is the instance type size or Auto Scaling group sizing needed to meet minimum service requirements?
Purchasing strategy
On-Demand, Savings Plans, or Reserved Instances
Software
Custom Amazon Machine Instances (AMIs) versus pre-baked AMIs
Location
Choice of Deployment Region and Availability Zone

Process for Selecting the Right EC2 Instance Types

A few patterns emerge when describing the different kinds of instances you can use in AWS. First, there are a large number of instances. Even within a single family of instances, there can be up to 18 different configurations. This makes it difficult to find the optimal instance type for a given workload.

For example, you may have a compute-intensive application, but you may not be sure if you should use a compute-optimized instance or an accelerated instance. If the application makes many floating point calculations and the code can take advantage of a GPU, an accelerated instance may be the best option. In another scenario, you may want to deploy a distributed computing application that’s I/O-intensive; should you use an SSD or hard disk drive-backed instance? That will depend on the importance of low latency I/O balanced against cost considerations.

These characteristics are key to doing accurate comparisons between different instance types, which can help you decide which kind of instance is best for a particular workload. Also consider technical constraints on different instances, such as which images run on particular instances; if EBS and networking can burst; and the limits of local storage. Finally, consider business policies that might be in effect that limit your options. IaaS clouds offer a significant opportunity to reduce infrastructure costs and increase an enterprise’s ability to adapt to changes in business conditions and related demands on infrastructure. The wide array of choices in choosing an instance type can be bewildering. Mistakes can be costly, as well as degrade performance.

To make an optimal selection in instance type, you need to understand the detailed nuances of the different instance types and models, as well as your workload’s characteristics—including short-term burst in CPU load and longer-term variations in workload due to business cycles. For small numbers of instances this can be done manually, but as environments grow, this can be very challenging.

EC2 Type Selection Cheat Sheet

Commonly-Used Amazon EC2 Instance Types
Instance SizeSuitibilityMemory & CPU
M3, M4, M5, & M5aGeneral purpose family suitable for a wide range of applications from databases to servers4:1 memory to vCPU ratio
C3, C4, C5, & C5aCompute intensive family offering superior performance for compute workloads, ideal for HPC, web servers, gaming, and analytics2:1 memory to vCPU ratio
R3, R4, R5, & R5aMemory intensive family geared towards applications like high performance databases, in-memory caching, and big data analytics8:1 memory to vCPU ratio
Z1dOffers a balance between R5 and C5 instance types, ideal for electronic design automation and databases with high software license costs per core8:1 memory to vCPU ratio
T2, T3, & T3aBurstable family suitable for workloads that are spikey in nature: VDIs, small databases, and frequently, for dev environmentsAccumulate credits while operating under baseline CPU performance levels that can be leveraged when bursting

Enterprise Amazon EC2 Cost Optimization & Management

Properly resourcing your application workload requires precise selection of EC2 instance family and sizing—choices that demand you balance performance, stability, and cost.

Skilled cloud infrastructure managers make these choices every day, and although it is possible to run infrastructure at scale without EC2 management, the cumulative impact of best-guess instance selection always leaves performance, stability, and cost savings gains on the table—sometimes to the tune of hundreds of thousands of dollars annually.

Additionally, due to continuous service and instance releases across all the cloud providers, it is very difficult to keep up with the latest technology—there can be millions of possible instance configuration possibilities for each of your workloads.

Finally, once an application is up and running in the cloud, it can be difficult to justify manually-determined infrastructure optimizations to those responsible for business delivery of the app.

Densify helps enterprises manage EC2 instance selection at scale, providing recommendations for the best-fit type for each of your workloads. Request a demo, and we’ll show you the power of machine-learning-driven EC2 instance selection.

Densify addresses enterprise EC2 management concerns:

  1. Our optimization engine machine learns your workload’s actual requirements and recommends the optimal EC2 instance family type. quantity, fit and configuration, eliminating waste in your cloud
  2. Densify’s recommendation engine considers EC2 and other service offerings across all the major cloud providers, ensuring you can always leverage the latest and greatest infrastructure
  3. Each recommendation is accompanied by a detailed impact analysis report, useful for justifying changes to underlying infrastructure to application owners
  4. Densify integrates with your ITSM and CI/CD tooling and frameworks, enabling our precise recommendations to be easily actioned and even automated

Request a Demo