Choosing the right EC2 instance on AWS from instance familyrooty
Amazon Web Services (AWS) Cloud services offers its clients numerous Amazon Elastic Compute Cloud (Amazon EC2) instance families to help them accomplish various workloads depending on the network, storage, memory, and computing requirements.
The Amazon EC2 refers to the web service offered through the AWS Cloud to offer secure yet resizable computing capacity within the cloud with the intention of easing cloud computing on web-scale for developers.
It comprises a simple interface that enables users to configure and acquire capacity without problems while allowing them full control of their computing resources that run within the Amazon computing environment.
While every Amazon EC2 instance is designed to save time needed for obtaining and booting new server instances and enabling rapid downscaling or upscaling capacity, choosing the right EC2 instance from the instance family can be a daunting task.
Understanding the Concepts
While in this article we will be showing you how to get to the most cost-effective EC2 instance with optimum performance, it is important to start with an explanation of the various concepts involved so that understanding the steps is easy for you. We will explain four terms:
vCPU is the virtual CPU (Central Processing Unit) with at least two vCPUs
Instances are the primary building blocks that give you the computing power. They are created when one launches the AMI on a given type of instance. It is possible to perform on-demand downscaling or upscaling of the number of instances automatically or manually.
Amazon Machine Image (AMI) refers to the template used to define the operating environment. One AMI is enough to launch up to thousands of instances
Instance types include the diverse combinations of networking, storage, memory, and CPU capacities that enable the flexibility of choosing the suitable combination of resources for the respective applications that you need to run. All instance types have at least one size options that are capable of addressing diverse sizes of workloads. For optimum experience, aunching on instance types that suit your applications best is
Instance Families refer to the groups of instance types that are meant to accomplish a shared objective. Amazon EC2 groups your instance types into instance families depending on the target application profiles to ease the selection process for its users.
The Amazon EC2 Instance Families
Currently, you can choose from the ten instance types that Amazon has packaged into six different instance families. Altogether, you can choose to combine the various instance sizes and types to suit your application needs and even change this later when you need to make adjustments. The following are the six instance families available on AWS cloud:
General Purpose includes M3 and M1 instances types. The former is the latest general-purpose instance that comes with the option of more vCPUs for higher performance. M1 are the initial family offering the lowest cost for moderate performance. Both M3 and M1 offer a spread across network, memory and CPU resources, which renders them suitable for numerous applications. Most people choose this first and enjoy up to 8-30 GiB RAM size vCPUs because it is good for databases run by SMEs. General purpose EC2 instance families are also good for caching fleets, data processing tasks that require more memory, and backend Microsoft SharePoint and SAP.
Compute-optimized is focused on applications requiring high power of computing and include the CC2 and CC1 instance types. On the one hand, CC2 instances are more recent that CC1 instances and are the cheapest CPU performance overall. However, they come with advanced features including 32 vCPUs, cluster networking support, and Intel Xeon E5-2670 processors. On the other hand, C1 instance types are an older, smaller-size generation.
Memory optimized instance family types include CR1 and M2 instance types that are suitable for applications that require intense memory to run. CR1 types are more recent than the M2 types and they offer faster Intel Xeon E5-2670 CPU capacity and higher memory capacity at 244 GiB. Compared to the other Amazon EC2 instance types, memory-optimized instances offer the cheapest per-RAM-GiB cost.
Storage-Optimized types included the HS1 and HI1 to offer options for direct-attached storage for applications that have specific requirements for storage and I/O capacity. HI1 types offer low per-IOPS cost and considerably high random I/O performance with the potential to deliver more than 120,000 4k random read IOPS that suits transactional applications very well. HS1 instances offer highly optimized storage density coupled with high sequential I/O performance, and low cost of storage that includes 24 2-TB each hard disk drives. They can also support up to 2.6 GBps throughput performance.
GPU instances comprises the CG1 type of instance. They give you parallel Nvidia Tesla GPUs performance using OpenCL or CUDA models of
GPGPU computing programming models with cluster networking and high CPU Capabilities.
Micro instances are also known as T1 instances. They are the least expensive, but come with small CPU resources. In short bursts, micro instances can raise CPU capacity opportunistically if there are additional cycles. This makes them unreliable for applications requiring consistent CPU performance. You can try out Micro instances for free so that you can explore the functionality of EC2 or just check out the workload characteristics that suit them best here.
Choosing the Right EC2 Instance Family
When choosing the EC2 instance family that suits you best, most people resort to a trial-and-error approach. While we agree trying out so that you can figure out which options fits you best, we strongly recommend that you consider these five workload options:
1) Development workload – if you are using your AWS cloud to support development workloads, the T2 family instances would generally work best. However, it is important to note that T2 instance family types do not work well with Microsoft/Oracle/IBM enterprise solutions, which require configurations in excess of 8GB. In case you need over 8GB memory, M4 instance families would work best.
2) API workloads – use the C4 family instances because they offer compute heavy resources and combine this with the memory heavy M4 instance types. T2-based instance families would also work well for task-processing workloads
3) Web and Digital App workloads – The R3 and C4 instances are good enough for this workload although T2 instances are great when running digital campaign workloads that are compute light.
4) Database Workloads – since you will be needing a balanced combination of compute and memory infrastructure, M4 and R3 family instances will be good for moderate to huge workloads.
5) Storage and filesystem heavy workloads – the storage optimized types will be good for this task, but it is good to rely on the C4, M4, T2, and HS1 instance families.