Explore CloudZero


Discover the power of cloud cost intelligence.

Why Change?

Give your team a better cost platform.


Give engineering a cloud cost coach.


Learn more about CloudZero's pricing.


Request a demo to see CloudZero in action.


Learn more about CloudZero and who we are.


Explore by feature

Cost Anomaly Detection Icon
Cost Anomaly Detection

Build fast with cost gaurdrails.

Budgeting Icon
Budgeting And Forecasting

Drive accountability and stay on budget.

Discount Optimization Dashboard Icon
Discount Optimization Dashboard

Manage all your discounts in one place.

CloudZero Dimensions Icon
CloudZero Dimensions

Organize spend to match your business.


How SeatGeek Decoded Its AWS Bill and Measured Cost Per Customer

Read customer story arrow-right

By Role


Enable engineering to make cost-aware development decisions.


Give finance the context they need to make informed decisions.


Decentralize cloud cost and mature your FinOps program.


By Use Case


By Provider

Amazon Web Services (AWS)

Measure, monitor, and optimize cloud spend on AWS.


Combine cloud cost intelligence from AWS and Snowflake.




Discover the best cloud cost optimization content in the industry.

CloudZero Advisor

Compare pricing and get advice on AWS services including EC2, RDS, ElastiCache, and more.

Content Library

Browse helpful webinars, ebooks, and other useful resources.

Cloud Cost Assessment

Gauge the health and maturity level of your cost management and optimization efforts.

Case Studies

Learn how we’ve helped happy customers like SeatGeek, Drift, Remitly, and more.


Guide: How To Overcome Tagging And Accelerate Cloud Cost Allocation

See guide arrow-right

AWS Instance Types Explained: The Best Time To Use Each

AWS instances are available in a multitude of capabilities. Learn more about each instance type and the best time to use each.

Is your current cloud cost tool giving you the cost intelligence you need?  Most tools are manual, clunky, and inexact. Discover how CloudZero takes a new  approach to organizing your cloud spend.Click here to learn more.

If you've heard that companies using AWS waste more than $10 billion a year, you might wonder how. That an organization might lose so much money is also easy to dismiss, especially when AWS usage can be reduced, right?

Well, it's not that simple. AWS offers a staggering amount of options — over 200 different services. Among them, Amazon Elastic Compute Cloud (EC2) provides a further 300 AWS instance types spread over five unique instance families. 

If you find the decision to choose which family of AWS instances to use overwhelming, we understand and you’re not alone:

Just downsizing an instance by one size can reduce its cost by 50%, so being able to choose the right instance type and size is critical to enhanced cost optimization.

To help you make the best choice for your organization, this guide covers the different instance types in full detail, including when to use each and factors to consider when making a final decision.

Table Of Contents

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 the cloud-based environment instead. Renting computing capacity from AWS can improve your costs, time-to-market, and time-to-benefit.

Instances differ in terms of 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. It is this auto-scaling feature that gives EC2 its name "Elastic". EC2 is the most commonly used compute service on AWS, but there are 12 others as well.   

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 basically 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 usually 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. C4, for example, refers to AWS instances in the fourth generation of the C family of AWS instances. 

Instances on AWS are generally current generation. Additionally, there are low-cost alternatives that rely on older generation instances, including:

AWS Instance Types Diagram  

The latter option is a good option for workloads with low-performance requirements. You can still select the more energy-efficient types since they can save you money. What you need is a balanced provisioning strategy.   

Let's look at the families and generations to which these letters belong now.

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 is a brief overview of each instance family, including its features and typical and ideal use cases.

1. General Purpose AWS Instances (Mac, T4g, T3, T3a, T2, M6g, M6i, M5, M5a, M5n, M5zn, M4, A1)

A general-purpose instance provides the right amount of processing power for a wide variety of scalable use cases:

  • A - The Arm-based servers use AWS Graviton processors, are EBS-optimized, and support Enhanced Networking (up to 10Gbps network bandwidth).
  • Mac - 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 - These types support bursting CPU usage at any time and as long as you need. Each generation has some unique features. In particular, the T4g general-purpose instance type uses AWS Graviton2 processors, which are 40% more efficient than T3 processors. These instances are ideal for web development, testing, and microservices projects. 
  • M - These types of instances are suitable for small and medium-sized databases and enterprise applications like cluster computing and robust data processing.

AWS frequently adds new instances, so make it a routine to check back regularly to see if it has made any updates.

2. Compute Optimized AWS Instances (C4, C5, C5, C5a, C5n, C6g, C6gn)

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 used to perform intensive work. Even then, you need to learn how each generation and optimization differs. For example, like the T4g general-purpose instances, more modern and efficient AWS Graviton2 processors power C6g and C6gn compute-optimized instance types.

3. Memory Optimized AWS Instances (z1d, High-memory, X1, X1e, X2gd, R5, R5a, R5b, R5n, R6g) 

If you want large workloads running in memory without lag, you can use the R instance family. Think of memory-intensive data sets, such as those used in 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 R6g and X2gd family instances are the most efficient because they use AWS Graviton processors. 

4. Accelerated Computing AWS Instances (Vt1, F1, G3, G4ad, G4dn, Inf1, P2, P3, P4)

You can get sustained high-performance from this instance family, 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 applications such as machine learning, seismic analysis, and speech recognition. 
  • G - These instances are perfect for graphics-intensive applications, including 3D rendering, video encoding, and app streaming. 
  • F - Select this option if you need hardware acceleration for big data analysis, financial analytics, real-time video processing, and genomics research.
  • Inf  - These instances are ideal for baseline machine learning. 
  • Vt1 - These are ideal for live transcoding video at up to 4K UHD resolutions at a low cost

Last but not least, we have the storage optimized family of AWS instances. 

5. Storage Optimized AWS Instances (H1, D2, D3, D3en, I3, I3en)

The instances in this family come with powerful Intel Xeon E5 processors, are EBS-optimized, and have Enhanced Networking so they can 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 backup. 
  • 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. 

When considering your AWS EC2 spending, instance families and generations are not the only factors to consider. 

What Are Other Factors To Consider When Choosing AWS Instance Types?

Here is a brief overview of what else you need to keep in mind.

Fixed vs. Burstable Performance Instances

Burstable performance instances provide a baseline level of CPU performance but let you “burst” above the baseline when your applications need to. Fixed performance instances, on the other hand, let you have consistently high CPU performance.

Small databases, web servers, and developer projects are some of the use cases that need bursts of fast processing but throttle down at other times. Whenever your T instances are idle, they accumulate credits in the CPU, so that when your applications need to burst more than 20% of a core, the CPU can use that credit balance. 

For high-volume websites and video encoding, it's best to use the fixed-performance instance types.          

AWS Instance Sizes

All AWS instance types come in a myriad of sizes, including:

  • Nano
  • Micro
  • Small
  • Medium
  • Large
  • XLarge
  • 2XLarge
  • 4XLarge
  • 6XLarge
  • 8XLarge
  • 16XLarge
  • 32XLarge

The size of an instance is typically one of the most important factors for instance pricing, and is described as follows:

AWS Instance Types Diagram

The sizing is paired with an instance family, in this case, the M general-purpose AWS instance type. There are other factors at play here, which we'll discuss in a moment.  

AWS Instance Chipsets

There are three types of processing cores you will find on AWS: Intel Xeon, AWS Graviton, and AMD EPYC. Among the many features of Intel processors are Turbo Boost and Advanced Vector extensions. 

The Graviton2 processors from AWS, however, are 40% more efficient than previous generations. If you have ARM-based workloads, AMD EPYC processors are designed for you.  

EBS-optimized Instances 

EBS-optimized instances help 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 the best performance of your EBS volumes.

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. Otherwise, you will be billed by the hour whenever you use one of your EBS-optimized instances with another EC2 instance.    

AWS Relational Database Storage (Amazon RDS) Instances 

EC2 is not the only service whose instances are 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)

There are multiple sizes of RDS instances, just like Amazon EC2 instances. So, you'll want to rightsize them as well to avoid exceeding your AWS monthly budget.   

AWS Instance Pricing 

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 their prices frequently, so you'll need to keep checking back. So, here's how Amazon's EC2 prices work:

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 you are not bound by a usage threshold. Just keep in mind 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 let EC2 customers access Amazon EC2 spare capacity for up to a tenth of the ON-DEMAND instance price. 

Prices depend on how many unused instances there are and how much demand there is 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. 

However, AWS can take back the instances within a two-minute notice if they choose. The good news is you can pause and resume your work later.     

You can commit to a specific monthly spend instead of an instance family when you choose the Amazon Savings Plan

You can also use the Savings Plan you commit to with other instances on AWS, Lambda functions, or Fargate.   

Dedicated hosts provide you a dedicated EC2 server.

Here, the physical EC2 server is dedicated to your use. You can purchase the plan On-Demand. Or, you can buy it as a Reservation for up to 70% off the price of the On-Demand plan. If you are concerned about maintaining compliance, this could be your best plan.   

Perhaps the fairest of the four is Per Second Billing as you only pay for what you use. 

Rather than paying for every hour that your instances run using On-Demand billing, Per-Second Billing doesn't charge you for the seconds or minutes your instances are idle. 

Get Data-Backed Insights On How Best To Rightsize Your AWS Compute Resources With CloudZero

We hope that this overview of AWS instance types helps you choose which ones are right for your computing needs. Yet, we understand how confusing and difficult a choice this can be.

We designed CloudZero to help you make sense of your complicated cloud spend and AWS bill. By pulling insights from multiple AWS services, and other sources such as Kubernetes and Snowflake, CloudZero enables you to distinguish between instances, so you can tell where your AWS spending is going. Request a demo today.


Join thousands of engineers who already receive the best AWS and cloud cost intelligence content.