Until recently, it was easy to select instance types within Amazon AWS. They offered several instance types that were different primarily in a linear fashion. In other words, if you needed to add processing power, you choose an instance type that had more ECUs, storage, and memory. Today, AWS has launched numerous families of instances aimed at helping you optimize particular functionalities. Each instance type has one or many instance sizes, which helps when scaling your resources to meet the needs of your workload. However, it makes it a little more difficult to decide which instance type to use. In this post, we’ll take a closer look at the AWS EC2 instance types.
AWS EC2 Instance Types: General Purpose
T2 are Burstable Performance Instances that offer a baseline level of CPU performance with the capability to burst above the baseline. The ability to burst and baseline performance are directed by CPU Credits. Every T2 instance regularly gets CPU Credits at an established rate that is based on the size of the instance. These instances accrue CPU Credits as and when they become idle, and utilize the CPU credits as and when they become active. These instances are a better option for workloads that do not require the full CPU consistently but rarely requires bursting. These instances are suitable for general purpose workloads like developer environments, small databases, and web servers.
M4 instances are the most recent general purpose instances. The M4 family of instances offers a balance of memory, network, and compute resources, and it is a better option for several applications. They have custom Intel Xeon E5-2676 v3 Haswell processors that are optimized explicitly for EC2. The clock rate for these instances can be in the range of 2.4 GHz to 3.0 GHz with the aid of Intel Turbo Boost.
M4 instances also provide Enhanced Networking that gives up to four times the packet rate of instances without Enhanced Networking, while guaranteeing reliable latency, even under high network I/O. When inside the placement groups, the Enhanced Networking decreases the average latencies among instances by 50 percent or even more. By default, these instances are EBS-Optimized and have a devoted network capacity for Input/Output operations.
M4 instances types:
- large: This is the latest generation of general purpose instances. It has 8 GiB memory and only supports EBS storage. It has a dedicated EBS bandwidth of 450 Mbps and two vCPUs.
- xlarge: This instance has double vCPU than the m4.large instance, i.e. four vCPU. It also only supports EBS SSD storage. It has 16 GiB memory and 750 Mbps bandwidth of dedicated EBS.
- 2xlarge: The 2xlarge instance supports enhanced networking with 1000 Mbps dedicated EBS bandwidth. It has eight vCPUs and supports 32 GiB memory. It offers storage only for EBS SSD.
- 4xlarge: This instance has 16 vCPU and 64 GiB memory. With no additional cost, the 4xlarge instance only supports EBS SSD storage, and it has dedicated EBS bandwidth of 2000 Mbps.
- 10xlarge: This is the highest capacity instance. It has 40 vCPUs and supports 160 GiB memory and dedicated EBS bandwidth of 4000 Mbps. Like other m4 instances, it only has EBS SSD.
The M3 instance type offers a balance of memory, network, and compute resources. These instances are for general purpose virtual machines, and most of the EC2 instances belong to this category.
M3 instances are suitable for mid-size and small databases, data processing jobs that require extra memory, running backend servers for SAP, cluster computing, Microsoft SharePoint, and several other applications.
These instances are recent additions to the compute-optimized instances that feature maximum performance processors with the lowest compute/price performance in EC2 Instance types. These instances are suitable for compute-bound applications that derive advantage from high-performance processors. C4 instances are ideal for media transcoding, Massively Multiplayer gaming servers, high traffic web servers, batch processing workloads, and high-performance computing.
C4 instances are dependent on custom 2.9 GHz Intel Xeon E5-2666 v3 processors, which are specifically optimized for EC2. The Intel Turbo Boost Technology helps clock speed of the C4 instances to touch 3.5Ghz with 1 or 2 core Turbo Boost onc4.8xlarge instances.
C4 instances types:
- large: This compute optimized instance has high performing processors. This model has two vCPUs, dedicated EBS bandwidth of 500 Mbps, and 3.75 GiB memory. It offers storage for EBS only.
- xlarge: The xlarge model has four vCPUs and supports EBS storage only. All C4 models can be used for applications of clusters and networking. This model has 750 Mbps dedicated EBS bandwidth and 7.5 GiB memory.
- 2xlarge: This model of the C4 instance has 1000 Mbps bandwidth of dedicated EBS. It also supports storage of EBS only. This instance has 15 GiB memory and supports eight vCPUs.
- 4xlarge: With 4xlarge, the default storage is EBS. It has 16 vCPUs and offers 2000 Mbps of dedicated EBS bandwidth.
- 8xlarge: This C4 instance has the capacity of controlling C-state and P-state processor configurations. It has 4000 Mbps bandwidth of dedicated EBS, 36 vCPUs, and 60 GiB memory. Likes other C4 models, it only has EBS storage.
When compared to C1, C3 instances offer much faster processors with about twice the memory per SSD-based and vCPU instance storage. These instances are suitable for applications that derive advantage from a large amount of compute capacity for memory and are best-fitted for high performing web servers, and several compute-intensive applications.
Compute-optimized instances are a recent introduction from AWS. The instances are intended to provide maximum performance at an affordable price. They have per-core performance, which beats those offered by any of the AWS EC2 instance types, with a price-performance ratio that would be the best fit for compute-intensive workloads.
C3 instances types:
- large: This instance has a high-frequency processor named Intel Xeon E5-2680 v2 and two vCPUs. It supports 3.75 GiB memory and has an SSD storage of 2 x 16 GB.
- xlarge: The xlarge instance supports clustering with 7.5 GiB memory and four vCPUs. It has 2 x 40 GB SSD storage. These instances are highly recommended for engineering and MMO gaming applications.
- 2xlarge: C3 instances have storage that is integrated with SSD technology. This instance has eight vCPUs. It supports 15 GiB memory and has 2 x 80 GB SSD storage.
- 4xlarge: This instance supports enhanced networking with 2 x 160 GB SSD storage. It has 16 vCPUs and supports 30 GiB memory. All of these C3 instances can be used in web servers and distributed analytics.
- 8xlarge: With 32 vCPUs, the 8xlarge is largest of all C3 instances. It has 60 GiB memory and supports 2 x 320 GB SSD storage.
These instances are best suited for enterprise-class, large-scale, in-memory applications and offer the lowest price for each GiB of RAM among AWS EC2 instance types. The X1 instances are the latest addition to the EC2 memory-optimized instance group and are intended for executing high-scale, in-memory databases and in-memory applications over the AWS cloud. These instances provide 1,952 GiB of DDR4 based memory, eight times the memory provided by any of the AWS EC2 instances. They are powered by 4 Intel® Xeon® E7 8880 v3 processors and provide 128 vCPUs.
Compared to other Amazon EC2 instances, these offer the lowest price for each GiB of RAM and are best suited for executing in-memory databases such as SAP HANA, other big data processing engines such as Presto or Apache Spark, and HPC (High-Performance Computing) applications. These instances are SAP certified for running production environments of the next-generation Business Suite on HANA (SoH), Business Suite S/4HANA, Business Warehouse on HANA (BW), and Data Mart Solutions on HANA on the AWS cloud.
R3 instances are well-equipped for running on memory-intensive applications and are less expensive for each GiB of RAM. These instances offer greater I/O performance, constant memory bandwidth, support for reduced latency, lower jitter, and maximum packet per second performance and support for EBS optimization. They are suitable for applications that require maximum memory performance with a high price point for each GB of RAM.
These instances are best suited for in-memory analytics and high-performance databases, including NoSQL databases and relational databases like MemcacheD/Redis and MongoDB applications. These instances support HVM (Hardware Virtualization) Amazon Machine Images only.
G2 instances are well-suited for general purpose and graphics GPU compute applications. They belong to a GPU-powered family and offer molecular modeling, machine learning, rendering, transcoding jobs, and game streaming, which require enormous amounts of similar processing power. These instances provide a high performing NVIDIA GPU with 4GB of video memory and 1,536 CUDA cores, which makes them suitable for 3D visualizations, video creation services, and graphics-intensive applications. The NVIDIA GRID GPU contains committed, hardware-accelerated video encoding that produces H.264 video stream, which may be displayed on any device with a well-suited video codec. These instances are suitable for 3D application streaming and other GPU compute workloads.
I2 instances are high storage instances that offer fast SSD-backed instance storage, which is best for high random Input/Output performance and provide maximum IOPS at the lowest cost. The primary data storage in such instances is SSD-based instance storage. As with all other instance storage, these volumes continue for the life of the instance. When terminating and stopping an instance, the applications, as well as the data that is stored in the instance store, are wiped out. It is recommended to make back-ups at regular intervals or replicate the data that has been stored in the instance storage. These instances support SSD volumes with TRIM. The user can activate the TRIM command to notify the SSD controller when the data is no longer required. This offers the controller much more available free space that could decrease write amplification while increasing performance.
These instances offer up to 48 TB of HDD-based storage, providing huge disk throughput and offering the lowest price for each disk throughput performance on AWS EC2. D2 instances are intended for workloads that need greater sequential write and read access to larger data sets on local storage. They are best-suited for MPP (Massive Parallel Processing) data warehouses, Hadoop, MapReduce distributed computing, and data or log processing computing.
By default, these instances are EBS-optimized and offer a dedicated block storage throughput for AWS EBS, which ranges from 750 Mbps up to 4,000 Mbps free of charge. These EBS-optimized instances allow you to regularly achieve maximum performance for EBS volumes by reducing contention among network traffic and Amazon EBS I/O from the D2 instance.
Evaluating AWS EC2 Instance Types
Amazon EC2 offers a large number of alternatives across several instance types. Each offers different size options, which are organized into separate families that are enhanced for different applications. As a starting point for testing application performance, we recommend that you first evaluate the needs of your applications. To assess application performance, it is best to begin by recognizing the application requirements on the different instance families. Then, you can size the workload to identify the suitable instance size. Take a look at our Labs on how to create your first Amazon EC2 Instance for more information on EC2 Instances and assess your skills in EC2.