Discover how CloudZero helps engineering and finance get on the same team — and unlock cloud cost intelligence to power cloud profitability
Learn moreDiscover the power of cloud cost intelligence
Give your team a better cost platform
Give engineering a cloud cost coach
Learn more about CloudZero and who we are
Learn more about CloudZero's pricing
Take a customized tour of CloudZero
Explore CloudZero by feature
Build fast with cost guardrails
Drive accountability and stay on budget
Manage all your discounts in one place
Organize spend to match your business
Understand your cloud unit economics and measure cost per customer
Discover and monitor your real Kubernetes and container costs
Measure and monitor the unit metrics that matter most to your business
Allocate cost and gain cost visibility even if your tagging isn’t perfect
Identify and measure your software COGS
Decentralize cost decisions to your engineering teams
Automatically identify wasted spend, then proactively build cost-effective infrastructure
CloudZero ingests data from AWS, GCP, Azure, Snowflake, Kubernetes, and more
View all cost sourcesDiscover the best cloud cost intelligence resources
Browse webinars, ebooks, press releases, and other helpful resources
Discover the best cloud cost intelligence content
Learn how we’ve helped happy customers like SeatGeek, Drift, Remitly, and more
Check out our best upcoming and past events
Gauge the health and maturity level of your cost management and optimization efforts
Compare pricing and get advice on AWS services including EC2, RDS, ElastiCache, and more
Learn moreDiscover how SeatGeek decoded its AWS bill and measures cost per customer
Read customer storyLearn how Skyscanner decentralized cloud cost to their engineering teams
Read customer storyLearn how Malwarebytes measures cloud cost per product
Read customer storyLearn how Remitly built an engineering culture of cost autonomy
Read customer storyDiscover how Ninjacat uses cloud cost intelligence to inform business decisions
Read customer storyLearn Smartbear optimized engineering use and inform go-to-market strategies
Read customer storyAWS instances are available in a multitude of capabilities. Learn more about each instance type and the best time to use each.
You might wonder how companies using Amazon Web Services waste more than $10 billion a year. 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 a staggering amount of options — over 200 different services, for example. Among those, Amazon Elastic Compute Cloud (EC2) provides a further 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.
Yet, downsizing an instance by one size can reduce its cost by 50%, which is why choosing the right instance size and type is critical to optimizing your AWS costs.
The purpose of this guide is to help you decide which instance type is right for your organization, including when to use each and what factors you should consider.
Table Of Contents
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.
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.
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.
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:
The following is a brief overview of each instance family, including its features and typical and ideal use cases.
A general-purpose instance provides a balanced amount of processing power for a wide variety of scalable use cases:
Check back regularly to see if Amazon has added any new instances, since it frequently does.
These types are ideal for intensive computing use cases, such as:
AWS made them more cost-effective even when performing intensive tasks. It is still important to learn how each generation and optimization differs. As an example, like T4g general-purpose instances, C6g and C6gn compute-optimized instances are powered by AWS Graviton2 processors.
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.
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:
In addition, there are AWS instances that are storage optimized.
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.
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.
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 simulations, structural simulations, 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 along with 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.
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 need fast processing for short bursts, but then throttle back at other times, like small databases and web servers. If your T instances are idle, they accumulate CPU credits, which can be used by the CPU when your applications burst 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.
AWS instance types come in a range of sizes, including:
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.
There are three main 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.
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 enable EC2 instances to fully use the IOPS provisioned on an EBS volume. They offer dedicated throughput for your EC2 instances and Amazon EBS volumes (500-4,000 Mbps), ensuring that your EBS volumes are performing 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. Your EBS-optimized instances will be billed by the hour if you use them with other EC2 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:
There are multiple sizes of RDS instances, much like Amazon EC2 instances. So you'll need to rightsize them as well in order not to exceed your AWS budget.
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 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 you access Amazon EC2 surplus capacity for up to a tenth of the On-Demand instance cost.
Prices depend on how many unused instances AWS has 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.
If AWS chooses, it can take back the instances with only a two-minute notice. The good news is you can pause and resume your work later. Better yet, you can choose to 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.
Also, you can 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, you can buy it in the form of an AWS 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.
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.
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 does this by empowering you to choose your ideal pool of instances based on criteria such as AWS service, region, budget, instance type and size, as well resource type.
If you want to truly understand your cloud costs after that, CloudZero collects, analyzes, and shares granular cost insights — more than traditional cost tools. As examples:
Yet, reading about CloudZero is nothing like experiencing the platform in action for yourself. and you’ll see why customers like Drift (saved $2.4 million), Remitly, and Malwarebytes use CloudZero.
Cody Slingerland, a FinOps certified practitioner, is an avid content creator with over 10 years of experience creating content for SaaS and technology companies. Cody collaborates with internal team members and subject matter experts to create expert-written content on the CloudZero blog.
CloudZero is the only solution that enables you to allocate 100% of your spend in hours — so you can align everyone around cost dimensions that matter to your business.