What is an EC2 instance? | Cloudelligent

Amazon Elastic Compute, or AWS EC2 for short, is a web-service that provides secure, scalable compute capacity in the cloud, now that’s a mouth full right…In essence it’s a virtual machine inside a physical environment which you can rent and use, there is much more technical stuff to this, however that is for another blog 🙂

Many years ago… when cloud compute started (AWS) choosing a instance to use for an application was straightforward, because AWS provided a few instances that varied, for example if you wanted more power you select an instance type that contained more ECUs (compute units) this came with more memory and storage, which was straightforward.

Moving forward a few years… it’s become more difficult to decide what instance to use, because now AWS have families of instances designed to optimise certain type of functions not just overall compute, hopefully by the end of this blog you will understand some differences.

INSTANCE FAMILY

Instance family is a collection of different function an instance compute is capable of optimizing, the family breaks into five parts which are:

GENERAL PURPOSE (Instance family – A1, T3, T3a, T2, M6g, M5, M5a, M5n, M4) 

COMPUTE OPTIMIZED (Instance family – C5, C5n, C4) 

MEMORY OPTIMIZED (Instance family – R5, R5a, R5n, R4, X1e, High Memory, and z1d) 

STORAGE OPTIMISED (Instance family – I3, I3en, D2 and H1) 

ACCELERATED COMPUTING (Instance family – P3, P2, Inf1, G4, G3, F1)

Instance Family AWS

 

A typical name has three parts: a letter describing the instance class (R, M, C, T, G, D, I, P, X), a number describing the generation (1, 2, 3, 4, and 5), and a string describing the size within that instance class and generation (small, medium, large, xlarge, 2xlarge, 4xlarge, 8xlarge,

10xlarge, 16xlarge, 32xlarge). For instance, “r3.4xlarge” is instance type R, generation 3, and size 4xlarge.

General Purpose:

General purpose instances provide a balance of compute, memory and networking resources, and can be used for a variety of diverse workloads. These instances are ideal for applications that use these resources in equal proportions such as web servers and code repositories.

Use Cases

Websites and web applications, development environments, build servers, code repositories, micro services, test and staging environments, and line of business applications.

Computer Optimized:

Compute Optimized instances are ideal for compute bound applications that benefit from high performance processors. Instances belonging to this family are well suited for batch processing workloads, media transcoding, high performance web servers, high performance computing (HPC), scientific modelling, dedicated gaming servers and ad server engines, machine learning inference and other compute intensive applications.

Use Cases

High performance web servers, scientific modelling, batch processing, distributed analytics, high-performance computing (HPC), machine/deep learning inference, ad serving, highly scalable multiplayer gaming, and video encoding.

Memory Optimized:

Memory optimized instances are designed to deliver fast performance for workloads that process large data sets in memory.

 

Use Cases

R5 instances are well suited for memory intensive applications such as high performance databases, distributed web scale in-memory caches, mid-size in-memory databases, real time big data analytics, and other enterprise applications.

Storage Optimized:

Storage optimized instances are designed for workloads that require high, sequential read and write access to very large data sets on local storage. They are optimized to deliver tens of thousands of low-latency, random I/O operations per second (IOPS) to applications.

Use Cases

Machine/Deep learning, high performance computing, computational fluid dynamics, computational finance, seismic analysis, speech recognition, autonomous vehicles, drug discovery.

Accelerated Computing:

Accelerated computing instances use hardware accelerators, or co-processors, to perform functions, such as floating-point number calculations, graphics processing, or data pattern matching, more efficiently than is possible in software running on CPUs.

User Cases

Machine/Deep learning, high performance computing, computational fluid dynamics, computational finance, seismic analysis, speech recognition, autonomous vehicles, drug discovery.

choice

The Choice

I hope that the classification we have set out will help you select the instance type that best your needs. The choice of launch and terminating instances in the AWS console are desired, you have the choice to profile and load test across a variety of instance, which will further help, and ease the burden, on what to select finally for production.

Unlike a traditional environment where you are locked in to a particular hardware configuration for a period of time, you can easily change the instance as your environment changes or grows. You can even profile multiple instances types as part of your CI (Continuous Integration) process and use a different set of instances types for minor releases.

Speak to our professional cloud experts to find out more about EC2 types and how-to solution your infrastructure.