What are EC2 Instance Types?

EC2 Instance Types

We now come to the $64,000 question! What EC2 instance types does the Amazon Web Services platform offer, and what are the difference between them?

If you want to brush up on your knowledge of instances, then point your browser to this link.

But as discussed in the article above, instances are nothing more than virtual machines or virtual servers that are spawned off from a single image. Yes, each instance is highly optimized, and comes with its own set of resources, namely CPU, memory, storage, and network. It is these differences that make the crux of the different instance families — or instance types, as AWS likes to call them.

These differences are what provide AWS users with the flexibility to choose the appropriate mix, the right blend or resources for their applications. And each instance type is available in multiple sizes, to allow users to scale the resources to their requirements.

Below is an overview of the different EC2 instance types that AWS offers.

Amazon EC2 Instance Types

When you first launch an instance, you need to specify its instance type. This is what will determine the amount of resources that your instance will obtain through its lifecycle. Amazon Web Services currently supports five instance types, or families, if you will.

They are briefly explained below.

General Purpose

This is your average, balanced instance for everyday usage. Balanced, because it provides the perfect mix of CPU, memory and disk space for use with most applications, while at the same time not compromising on performance. Uses cases range from web hosting, data processing, small-sized databases, and enterprise applications like SharePoint.

Compute Optimized

As the name gives away, these specialized types of instances are best used for CPU intensive applications. These are ideal for workloads that are heavy on batch processing, websites with very high traffic, ads and media serving, and video encoding.

Memory Optimized

Similar to Compute Optimized, this family of instances are commonly used for apps that require or consume more RAM than CPU. Database and analytical applications fall into this category, like advanced SAP implementations, GNOME assemble analysis, distributed memory caches, and so on.

Storage Optimized

These are specialized instance types that provide fast access to storage for reading and writing, using SSD drives. As you can imagine, these are best suited for high I/O performance use cases where high disk throughput is paramount. Large scale transactional databases, data warehousing and Hadoop are what you are looking at.

Accelerated Computing

Similar to the compute optimized family, these are GPU instances that are specially designed for handling graphics intensive tasks. They do this by making use of the latest AMD and NVIDIA GPU cards. These are perfect for workloads that entail 3D rendering, video encoding, and machine learning. Use cases range from application streaming, rendering, multimedia, and engineering design.

AWS also offers access to Micro instances that are ideal for low traffic websites, as well as for users to get involved with the other free tier stuff that is available on the Amazon cloud. New customers can use 750 instance hours free of charge each month on either Linux or Windows. After exceeding these limits, normal, on-demand prices apply.

Choices, choices

All said and done, AWS EC2 currently supports some 60 different instance types, each with its own set of pros and cons, and ideal use scenarios. This makes it really difficult for end users to decide which instance type is best for his or her applications.

The simple thing to remember that each and every instance type has different CPU power, RAM, and storage capacities, and you will just have to choose the most suitable instance type on which you can build or host your applications in the cloud. It’s all about computing your requirements.

AWS EC2 will give you consistent resources for your instance, regardless of the underlying hardware in the datacenter, whichever instance type you end up going with.