You might wonder how companies using Amazon Web Services waste more than $10 billion annually. It’s easy to ask, “why don’t they just reduce their spending?”
Well, it’s because there’s more to it than that. AWS offers many options — over 200 different services, for example. Amazon Elastic Compute Cloud (EC2) provides over 300 AWS instance types spread over five unique instance families.
It’s understandable if you find choosing which AWS instance family to use overwhelming. You are not alone either.
- In 2020, companies wasted about $17 billion on AWS. The leading causes of waste were idle compute resources and overprovisioned AWS instances.
- Around 40% of instances are at least one size larger than the workloads used.
Yet, downsizing an instance by one size can reduce its cost by 50%, so choosing the right instance size and type is critical to optimizing your AWS costs.
This guide aims to help you decide which instance type is right for your organization. It includes when to use each and what factors you should consider.
What Are AWS Instances?
An AWS instance is a virtual machine on the AWS platform you can use to run cloud-based applications. So, instead of buying a physical computer or server, you can use a cloud-based environment. Renting computing capacity from AWS can improve your costs, time-to-market, and time-to-benefit.
Instances differ regarding CPU, RAM (memory), storage, and networking power they offer. This is especially true with Amazon EC2.
The instances are virtualized, so you can dynamically increase or decrease the computing capacity to match the peak and off-peak demands your company generates. This auto-scaling feature gives EC2 its name, “Elastic.” EC2 is the most commonly used compute service on AWS, but there are 12 others.
The amount you pay will depend on the type of instance you use on AWS.
AWS Instance Families: What Are The Different Types Of AWS Instances?
We mentioned instances are virtual servers. As with any virtual server, AWS instances run on a host machine. AWS offers nearly limitless virtual host machines with various computing resources (CPU, RAM, storage, and bandwidth).
Different instances have different levels of computing resources, so some are better suited to specific workloads than others. AWS instances are grouped into different families. You can recognize instance types by observing their names, which comprise a letter, number, and sometimes an extra letter.
What do the letters and numbers on AWS instances mean?
The first letter is usually capitalized and tells what family the AWS instance belongs to. It’s followed by a numeral that tells what generation the instance belongs to. Family characteristics vary, as do generation characteristics. A small-cap letter after that number usually shows how AWS optimized that instance type.
The letters include A, B, C, D, E, F, G, H, M, P, R, T, and X. AWS instance generations range from 1 to 6. For example, C4 refers to AWS instances in the fourth generation of the C family of AWS instances.
Instances on AWS are generally current generation. In addition, there are low-cost alternatives that rely on older generation instances. These include:
AWS Instance Type |
Sizes Available |
A1 |
a1.medium; a1.large; a1.xlarge, a1.2xlarge, a1.4xlarge. a1.metal |
C1 |
c1.medium; c1.xlarge |
C3 |
c3.large; c3.xlarge; c3.2xlarge; c3.4xlarge; c3.8xlarge |
G2 |
g2.2xlarge; g2.8xlarge |
I2 |
i2.xlarge; i2.2xlarge; i2.4xlarge; i2.8xlarge |
M1 |
m1.small; m1.medium; m1.large; m1.xlarge |
M2 |
m2.xlarge; m2.2xlarge; m2.4xlarge |
M3 |
m3.medium; m3.large; m3.xlarge; m3.2xlarge |
R3 |
r3.large; r3.xlarge; r3.2xlarge; r3.4xlarge; r3.8xlarge |
T1 |
t1.micro |
The latter option is a good option for workloads with low-performance requirements. You can still select the more energy-efficient types to save you money. What you need is a balanced provisioning strategy, though.
Let’s look at the families and generations to which these letters belong so you can tell how to balance your options.
When Should You Use Each Instance Type?
There are five different types of instance types available in AWS. The name of each instance family describes its recommended use case, as shown below:
- General Purpose
- Compute Optimized
- Memory Optimized
- Accelerated Computing
- Storage Optimized
The following briefly overviews each instance family, including its features and typical and ideal use cases.
1. General Purpose AWS Instances (Mac, T4g, T3, T3a, T2, M7g, M6g, M6i, M6in, M6a, M5, M5a, M5n, M5zn, M4, A1)
A general-purpose instance provides a balanced amount of processing power for a wide variety of scalable use cases:
- A (a1.medium, a1.large, a1.xlarge, a1.2xlarge, a1.4xlarge, a1.metal) – The Arm-based instances use AWS Graviton processors, are EBS-optimized (which is a high-performance block storage offering), and support Enhanced Networking (up to 10Gbps network bandwidth).
- Mac (mac1.metal, mac2.metal) – These are available on the AWS Nitro System, and Apple’s Mac mini computers power them. They are ideal for handling all kinds of Apple-based OS workloads on the Xcode IDE.
- T (T4g, T3, T3a, T2) – Support burstable mode to handle higher CPU usage anytime and for as long as needed. Each T-instance generation offers unique features. In particular, the T4g general-purpose instance type uses AWS Graviton2 processors, which are 40% more efficient than T3 processors. T instances are ideal for web development, testing, and microservices projects.
- M (M7g, M6g, M6i, M6in, M6a, M5, M5n, M5zn, M5a, M4) – M instances are suitable for small and medium-sized databases and enterprise applications like cluster computing and robust data processing. M3, M2, and M1 instances belong to the older generation. M7g are the latest generation and offer the best price performance of any M general purpose instance right now.
Check back regularly to see if Amazon has added any new instances, since it frequently does.
2. Compute Optimized AWS Instances (C7g, C7gn, C6i, C6in, C6a, C6g, C6gn, C5, C5n, C5a, C4 )
These types are ideal for intensive computing use cases, such as:
- High-performance web servers
- Media transcoding
- Scientific modeling
- Dedicated ad and gaming servers
- Batch processing workloads
AWS made them more cost-effective even when performing intensive tasks. However, it is still important to learn how each generation and optimization differs. For example, like T4g general-purpose instances, C6g and C6gn compute-optimized instances are powered by AWS Graviton2 processors.
3. Memory Optimized AWS Instances (z1d, High-memory, X1, X1e, X2gd, X2idn, X2iedn, X2iezn, R5, R5a, R5b, R5n, R6g, R6i, R6in, R6a, R7g, R7iz)
The R instance family is suitable for running large workloads in memory without lag. Think of memory-intensive data sets, such as those used for data mining, analytics, and similar applications.
The X instance family supports high-performance databases, such as HANA and SAP, for large big data processing and enterprise-grade databases with in-memory databases.
Again, each memory-optimized type is unique. Z1d instances, for example, are the fastest of all cloud instances, while R7 memory optimized instances deliver the best overall price-performance ratio in their class using AWS Graviton3 processors.
4. Accelerated Computing AWS Instances (Vt1, F1, G3, G4ad, G4dn, G5, G5g, Inf1, Inf2, Trn1, DL1, P2, P3, P4)
This instance family offers sustained high performance, which is much better than what is possible with software running on CPUs. To support this, the instance family uses hardware accelerators.
The following are the ideal use cases for each of these instance families:
- P – These are the most powerful of the bunch, capable of handling operations such as machine learning, seismic analysis, and speech recognition.
- DL – They feature Gaudi accelerators and are suitable for training deep learning models. They also deliver up to 40% better price-performance than comparable GPU-based instances.
- Trn – With their AWS Trainium chips, these instances are ideal for high-performance deep learning training and deliver 50% better price performance than comparable instances on AWS.
- G – These instances are perfect for graphics-intensive applications, such as 3D rendering, video encoding, and app streaming.
- F – Select this option if you need hardware acceleration for extensive data analysis, financial analytics, real-time video processing, and genomics research.
- Inf – These instances are ideal for baseline machine learning operations.
- Vt1 – These are ideal for live transcoding video at up to 4K UHD resolutions at a low cost.
In addition, there are AWS instances that are storage-optimized.
5. Storage Optimized AWS Instances (H1, D2, D3, D3en, I3, I3en, I4g, I4i, Is4gen, Im4gn)
The instances in this family come with powerful Intel Xeon E5 processors, are EBS-optimized, and have Enhanced Networking. That means they can efficiently run workloads that require sequential read and write access to large data sets.
- D – Have large volumes of persistent storage (48 Terabytes per instance) and offer hard-drive-based backups.
- H1 – This option offers high disk throughput and 16 Terabytes of hard drive storage.
- I3 – These instances leverage Non-Volatile Memory Express (NVMe) SSD-based storage to handle low-latency, high-sequence, and random I/O needs.
In general, storage-optimized instance families are best suited for big data processing clusters, MapReduce workloads, and distributed file systems such as MapR-FS and HDFS.
6. High-performance computing (HPC) Optimized Instances (Hpc6id, Hpc6a)
AWS designed HPC instances to deliver the highest price-performance ratio when running HPC workloads at scale. Complex simulations and deep learning workloads that require high-performance processors are ideal use cases for HPC instances.
Hpc6id instances are ideal for data-intensive and memory-bound high-performance computing projects, including finite element analysis (FEA) for crash, structural, and seismic reservoir simulations. Only the 32xlarge size is available.
Hpc6a instances are built for tight-coupled, compute-intensive, and high-performance computing jobs—and cost-efficiently so. Such use cases include computational fluid dynamics, weather forecasting, and molecular dynamics. AWS also designed them for workloads that benefit from improved network throughput and packet-rate performance. Only the 48xlarge size is available.
Yet, instance families, types, and generations are not the only factors to consider when considering your Amazon EC2 costs.
We’ve outlined a few other things you’ll want to keep in mind.
What Factors To Consider When Choosing The Right AWS Instance Types For Your Needs
Fixed vs. Burstable performance instances; What to know
Instances with burstable performance provide a baseline level of CPU performance but allow your applications to perform above that baseline when necessary. With baseline performance, you can keep your costs as low as possible, while Burstable Mode enables your system to handle increased load without crashing. Meanwhile, fixed-performance instances provide consistent CPU performance.
Some use cases, like small databases and web servers, need fast processing for short bursts but throttle back at other times. If your T instances are idle, they accumulate CPU credits, which the CPU can use when your applications use more than 20% of a core.
If you’re encoding videos and creating high-volume websites, you’ll want to use a fixed-performance instance type.
What are the available AWS instance sizes?
AWS instance types come in a range of sizes, including:
- Nano
- Micro
- Small
- Medium
- Large
- XLarge
- 2XLarge
- 4XLarge
- 6XLarge
- 8XLarge
- 16XLarge
- 32XLarge
The size of an instance affects its pricing. Consider this:
The sizing is paired with an instance family, in this case, the M general-purpose AWS instance type. Yet there are other factors at play here, including the following.
AWS Instance Chipsets
There are three main types of processing cores on AWS: Intel Xeon, AWS Graviton, and AMD EPYC. Turbo Boost and Advanced Vector extensions are among the many features of Intel processors.
However, the Graviton2 processors from AWS are 40% more efficient than previous generations. If you have ARM-based workloads, AMD EPYC processors are designed for you.
However, AWS is actively adding different types of processors in the fold, including Gaudo accelerators by Intel’s Habana Labs and AWS’ own Tritanium instances for training deep learning models.
EBS-Optimized Instances
EBS-optimized instances enable EC2 instances to use the IOPS provisioned on an EBS volume fully. They offer dedicated throughput for your EC2 instances and Amazon EBS volumes (500-4,000 Mbps), ensuring that your EBS volumes perform at their greatest potential.
If you use D2, G3, P2, R6g, C4, C5, C6, M4, M5, and M6g, you get EBS-enabled instances by default at no extra charges. However, your EBS-optimized instances will be billed by the hour if you use them with other EC2 instances.
AWS Relational Database Storage (Amazon RDS) Instances
Aside from Amazon EC2, there are other AWS services with instances worth considering. AWS Relational Database Storage (Amazon RDA) also offers three kinds of instances based on memory requirements and processing power:
- General Purpose (db.M4, db.M5, db.M6g)
- Memory Optimized (db.R4, db.R5, db.R6g, db.X1, db.X1e, db.z1d)
- Burstable (db.T2, db.T3)
RDS instances come in multiple sizes, like Amazon EC2 instances. You’ll need to rightsize them as well to avoid exceeding your AWS budget.
What about AWS instance prices?
Amazon EC2 offers four paid pricing tiers and a free trial. The free trial requires you to use only AWS Micro instances, with no more than 750 hours of Linux or Windows t2.micro instances.
If you’re using paid instances, AWS updates its prices frequently, so you’ll need to keep checking its official Amazon EC2 instance pricing page.
As a pointer, here’s how Amazon EC2 pricing works:
On-Demand Instances allow you to scale up or down your compute resources according to your application’s needs.
You may also pay by the hour or per second, so a usage threshold does not bind you. Just remember that EC2 instances are always running, so until you end them, AWS will continue to charge you per hour or by the second.
This pricing option might be suitable if you have apps that use unpredictable amounts of resources at different times.
Spot Instances lets you access Amazon EC2 surplus capacity for up to a tenth of the On-Demand instance cost.
Prices depend on the number of unused instances AWS has and the demand for them. They are also usually available during off-peak hours, so you’d need to run your instances at these times to take advantage.
AWS can take back the instances with only a two-minute notice if it chooses. The good news is you can pause and resume your work later. Better yet, you can use spot instances only with fault-tolerant workloads. Or, you can use a spot instance optimization tool, like Xosphere, to automatically move your workloads between spot and on-demand instances whenever they are available at a reasonable price and vice versa.
With an Amazon Savings Plan, you can commit to a specific monthly spending amount rather than to using a particular instance family or type — in exchange for committed use discounts of up to 72% off the On-Demand rate.
You can also use your Savings Plan instances with other AWS compute services, including AWS Lambda functions and AWS Fargate.
Dedicated hosts provide you with a dedicated EC2 server
In this case, you have exclusive use of the physical EC2 server. You can purchase the plan On-Demand or buy it asf an AWS Reservation for up to 70% off the price of the On-Demand plan. This could be your best plan if you are concerned about maintaining compliance.
Per Second Billing may be the fairest of the four as you only pay for what you use
Unlike On-Demand billing, Per-Second billing doesn’t charge you for the seconds or minutes your instances are idle.
How To Choose The Best AWS Instances For Your Needs With CloudZero
Now that we’ve covered the different AWS instance types in detail, you can tell instances are not made equal. Yet, choosing the right AWS instances for your application requirements can still feel overwhelming, considering all the options available: instance families, types, and sizes.
We get it. That’s why we built CloudZero Advisor.
CloudZero Advisor is a handy, easy-to-use tool for finding the most suitable AWS instances for your workload. It empowers you to choose your ideal pool of instances based on criteria such as AWS service, region, budget, instance type and size, and resource type.
If you want to understand your cloud costs after that truly, CloudZero collects, analyzes, and shares granular cost insights — more than traditional cost tools. As examples:
- With CloudZero, you can also collect and report the costs of untagged, untaggable, and shared resources across multiple tenants. No more endless tagging.
- The CloudZero platform breaks down data into immediately actionable insights, such as costs per customer, per feature, per service, per environment, per team, per Kubernetes namespace label, and per project.
- View your cost of goods sold (COGS) to determine if you are running on a healthy SaaS gross margin.
- CloudZero detects cost anomalies in real time to avoid surprise costs and sends you timely alerts.
- CloudZero AnyCost enables you to compare, combine, and act on your multi-cloud costs: AWS, GCP, Azure, Kubernetes, Snowflake, MongoDB, Databricks, New Relic, Datadog, and other cloud costs all in one place.
Yet, reading about CloudZero differs from experiencing the platform in action for yourself. , and you’ll see why customers like Drift (saved $2.4 million), Remitly, and Malwarebytes use CloudZero.
Frequently Asked Questions On AWS Instances
What is the most common AWS Instance type?
The most commonly used AWS instance type is the General Purpose instance, particularly the M-series (M5 or M6g). These instances provide a balanced combination of computing power, memory, and networking resources.
What are the AWS Instance types?
AWS offers seven types of instances: General Purpose, Compute Optimized, Memory Optimized, Accelerated Computing Storage Optimized, High-Performance Computing, and Burstable Performance.
How are AWS Instance types classified?
AWS instance types are classified based on their intended purpose and the resources they provide. These instance types are organized into different families, each represented by a specific letter, such as M for General Purpose or C for Compute Optimized. Each family is further divided into generations, indicated by a number, and within each generation, various instance sizes are available (for example, small, large, extra-large).