There are five main instance types in AWS you need to be aware of. If you’ve done any exploration into cloud computing with AWS, you’ve probably encountered the term “instance.” Maybe you’re confused about what an instance is, or maybe you have a basic grasp of it but don’t know what instance is right for your project.
Here, we’re going to cover the five major instance types available in Amazon Elastic Cloud Computing (EC2). Don’t be fooled, though: while there are only five major types of instances, there are over 600 total instances available to use that fall into any of these five buckets.
Choosing the right instance among hundreds of options is a daunting task. If you choose the wrong instance for your project, you could run into issues with performance, or you could end up paying for way more computing capacity than you need. You can avoid these pitfalls if you familiarize yourself with the main types of instances—and if you know where to go to zero in on the appropriate instance for your needs.
First, though, is a brief introduction to EC2 and instances. Let’s get into it!
What is AWS EC2?
Short for Elastic Cloud Computing, Amazon EC2 provides an agile and strong platform for running high-performance computing projects on the Amazon Cloud. Using EC2 gives you access to Amazon’s unmatched global infrastructure of over 450 Points of Presence and regional caches on every major continent.
EC2 powers all kinds of different high-performance computing projects. Here are some examples.
- Building and running cloud-native applications.
- Using EC2 as an engine for running high-capacity data storage and analytics systems.
- Training and deploying demanding machine learning projects with maximally optimized performance.
In order for this cloud computing magic to happen, EC2 relies on these technologies known as “instances.” So, what are they, exactly?
Simply put, instances are servers that uniquely configure and use to run applications and other services in the cloud. These nimble, custom-built servers are highly adaptable and easily scalable, allowing you to run any computing project imaginable with maximum power.
These days, many AWS Instances run on Graviton3 processors—which enable 25% improved compute performance, nearly double the floating-point and workload performance, and three times better performance on ML workloads compared to its predecessor, Graviton2.
What are the 5 Instance Types in AWS?
As we mentioned above, EC2 uses hundreds of different instances, but you can break all of them up into five categories—or types. These types vary based on particular CPU, memory, storage, and network needs. The breakdown of these instance types in AWS are as follows:
- General Purpose
A balance between computation, memory, and networking resources.
For applications that demand high computation.
Ideal for workloads that require lots of memory for processing data.
For computing projects that heavily involve distributed file systems or data warehousing.
- Accelerated Computing
For applications whose computing needs would benefit from an accelerator or coprocessor rather than conventional CPUs.
Now we’ll go over each of these instance types in more detail so that you can get a better idea of the use cases for each one—and so that you can get decide for yourself which instance is right for your project.
This balanced instance type works best in scenarios that give roughly equal weight to compute, memory, and networking resources. Gaming or web servers, small databases, and code repositories are a few examples of projects that work best with General Purpose instances. Since many of these instances are offered in the Free Tier, you will also likely get started with this instance type if you’re trying to get hands-on learning experience with AWS cloud computing.
Although all the roughly dozen instances within this instance type focus on balance, there are some granular differences between them. For instance, some deliver a tad more performance on networking. Others give extra strength to memory. Others are designed to provide “bursts” of computing power. Still, others are configured to be cost-saving—a great option for budget-conscious web hosts with minimal compute needs.
Compute-optimized instances can handle many of the same projects that General Purpose instances can. The biggest difference is you obviously get far more computing power. With these instances, web servers become high-performance, and gaming servers can now be dedicated. If you’re working in high-traffic scenarios, you need the compute power to match.
Compute-optimized instances can also handle workloads that require batch processing rather than real-time processing. The most frequent use of batch processing involves automated billing of a large customer base. Utility companies, credit card companies, and other financial companies often perform batch processing for this purpose.
Depending on just how demanding your computing needs are, you have the option to go all out with instances that provide the latest and greatest processors and networking support. Even within these higher-performing instances, though, there are cost-effective options—such as the C4 instances, which use up to 2.9 GHz Intel Xeon scalable processors rather than Graviton3 processors.
Some workloads require large amounts of data to be processed in memory prior to launching an application. These projects generally involve high-performance databases or real-time processing of high-volume, unstructured data. That’s where memory-optimized instances come in.
These instance types tip the scales heavily in favor of memory rather than computing or networking. The highest-memory instances in these categories can provide 24,576 GiB of RAM to support absolute juggernauts of databases.
If you’re managing open-source databases, in-memory caches, or running real-time big data analytics or machine learning, this instance type is likely the best fit for you.
These storage-heavy instances lend themselves well to workloads where fast sequential read and write access is critical. Sequential reading is especially advantageous in this scenario. Since it locates files in huge databases with much lower latency than random reading would, it is much faster.
You may be asking yourself, “Why wouldn’t I always want lower latency?” Well, sure, but using this kind of processing power is costly! You have to ask yourself if the project you’re working on is storage-intensive enough to require that kind of cost or if you can optimize your resources elsewhere.
An emphasis on storage optimization would be worthwhile. For instance, if your workload asks for a maximal number of transactions processed per second. They are also ideal if such high transaction is critical to your company’s operations. Storage-optimized instances are also ideal for gaining quick access to data that lives in local storage.
Within Amazon’s storage-optimized instance types, you have several instances to choose from. Some deliver lower costs by sacrificing a bit on processing power. At the same time, others do just the opposite. Still, others are geared toward organizations that use a mix of physical and cloud resources in their computation.
Most instance types in AWS run on CPUs—not so with accelerated computing! These instances run on co-processors, or hardware accelerators, which perform floating point number calculations, graphics processing, and data pattern matching far more efficiently than other instance types.
If you guessed that “accelerated computing” would indicate an emphasis on mathematics, you’d be correct. These instances are tailored for machine learning, computational finance, speech recognition, autonomous driving, and even seismic analysis.
To illustrate the difference in computing power here, let’s compare a general-purpose instance type to accelerated computing. With a general-purpose instance, you might get a range of available vCPU between 1 and 8. With an accelerated-computing instance, though, that range would be eight at the lowest and 96 at the highest.
Obviously, running a simple web server with an accelerated-computing instance would be overkill and perhaps even counter-intuitive, but if your workload involves heavy mathematics, this instance type is probably the right pick for you.
Picking the Right Instance
Choosing from 1 of over 600 instances sounds overwhelming, but if you’re aware of the major instance types and the differences between them, then you’ve already done much of the legwork. Just consider where your project fits within the above types. Is it storage or memory intensive, or is it compute intensive? Or would a balanced instance do the job?
Once you’ve narrowed it down to an instance type, we recommend navigating to Amazon’s Instance Type Explorer. There, you can use filters to search the available instances based on parameters like instance type, hardware configuration, available accelerators (if applicable), and other miscellaneous features. After filtering through some options, hover over each of the results to find detailed information on the instance and to learn the ideal use cases for each.
If your technical prowess is already rather advanced, you might even try your hand at this instance selector built out by the GitHub community. Using this tool successfully requires prior knowledge of the software parameters necessary for your project. You’ll also need a good level of comfort working with your computer’s Command Line Interface (CLI). But if you meet those prerequisites, this instance selector will really streamline the process.
Choosing the right instance certainly requires research on your part. But without putting in these man-hours, you risk your workload underperforming—or overperforming and senselessly eating into your expenses.
Next, we’ll show you how to launch an EC2 instance and how to monitor its ongoing performance once it’s up and running.
How to Launch an Instance
First, you’ll need to make sure you have an AWS account. It’s free to set up, so there is no need to worry about paying just yet. After signing into your account, head over to the EC2 Dashboard and click on EC2 right underneath the “Compute” menu option.
On the following page, you’ll see a big blue button that says “Launch Instance.” Click on that.
Then, Amazon will ask you to choose an Amazon Machine Image—or a template consisting of all the software needed to launch your desired instance. The Instance Type Explorer will show you the right software configuration for each instance, so you should have that page handy for this part.
After selecting your AMI, the next step is to choose an instance type. Note that some of these instances will indicate that they’re “Free tier eligible.” If you’re using EC2 on a trial basis, those are probably the instances you’ll want to use.
Now you simply select an instance and hit the blue button on the bottom right of the dashboard that says “Review and Launch.” Once you’ve confirmed the AMI details and the instance type, you can hit “Launch” at the bottom right.
Then you’ll see a pop-up window asking you to select an existing key pair or to create a new one. If you’re new to EC2, you’ll need to create a new one, name it anything you like, download it, and store it somewhere secure. After that, hit “Launch Instances.”
How to Monitor Instance Types in AWS
So, you’ve done the hard work of picking an instance that works for you and then launching it. Now, you need to monitor your instance to see how it’s performing. Fortunately, AWS EC2 comes preloaded with CloudWatch, which automatically processes activity from your EC2 console into comprehensible metrics.
Under the monitoring tab, you will, by default, see graphs that reveal the most pertinent data related to your instance run, such as average CPU utilization, average disk reads, average disk writes, maximum network in, and maximum network out. These and other metrics should help you gauge the effectiveness of your instance and whether or not you need to make adjustments to it.
You can customize these metrics as you wish so that you’re getting the most relevant stats on your instance. In addition, you can set up alarms that will stop, terminate, reboot, or recover an instance based on the parameters that you set.
Instance Types in AWS: Resources for Ongoing Support
We’ve given you a lot of information here to consider, but your journey in cloud computing surely doesn’t end here. With that in mind, we’ll conclude with some resources to consider for ongoing support for your cloud computing projects.
Fortunately, Amazon itself offers plenty of support for learning about how to use their products successfully. Definitely be sure to have the AWS documentation on standby so that you can reference it any time you hit a snag or need more ideas.
On top of the resources that Amazon provides, there’s also a community of developers at your disposal. Github’s huge user base has built thousands of repositories and samples for AWS projects—including ones involving EC2 instances. In addition, Stack Overflow is a good site to turn to for asking specific questions to the community and getting reliable answers.
The image featured at the top of this post is ©Monster Ztudio/Shutterstock.com.