AWS offers a number of different types of EC2 instances. Each instance type offers different compute, memory, and storage capabilities. Recently, AWS announced the latest generation of their compute optimized EC2 machine. This powerful machine is called the C4 instance family. It was introduced to meet the increasing demand of higher compute needs and network throughput that benefit from the uniformity of C4’s multi core processors. In this article, we will briefly review the current EC2 families, including the new C4 family. We also invite you to check out this informative white paper and dive into the EC2 instance families.
Current Generation Instances
Every user’s requirements are different. You should pick an instance according to the workload, memory and compute requirements of the application or software that you plan to run on that instance. AWS offers different instance families to meet a variety of requirements, for example:
- General purpose instances: For development, test environments, or code repositories.
- Compute-optimized instances: For running high traffic front-end fleets, batch processing, distributed analytics, or cluster computing applications.
- Memory-optimized instances: For high performance databases, distributed memory caches, in-memory analytics, genome assembly and analysis, larger deployments of enterprise applications.
- Storage-optimized instances: To provide SSD storage options, optimized for applications with specific disk I/O and storage capacity requirements. Ideal for NoSQL databases, scale out transactional databases, data warehousing, Hadoop, and cluster file systems.
- GPU instances: To help you take advantage of the parallel performance of NVidia GPUs, while providing high CPU capabilities and cluster networking support.
Selecting an initial instance type generally isn’t too complicated. For example, if an application requires a lot of memory, you can opt for a memory-optimized instance; if an application requires high compute power, you would opt for a compute-optimized instance.
Obviously, no one size fits all, so you have to make a choice. A very helpful case is with agile EC2, where you can easily switch to different instance sizes; still, it’s worth noting that changing an instance type will bring down the instance for a while.
The AWS C4 Instance Type
The cloud’s scalability, is a de facto choice for online hosting. Considering the growing needs of online gaming and simulation, AWS introduced a new instance family known as the C4 Instance Type.
AWS offers this solution for instances that require strong compute power. The new C4 instances are based on the Intel Xeon E5-2666 v3 (aka ‘Haswell’) processor and use hardware virtualization (HVM). Intel has designed the special custom Xeon processor to optimize performance. As per AWS specifications, C4 instances run at a base speed of 2.9 GHz, and can go up to a clock speed of 3.5 GHz with Intel Turbo Boost. Intel’s turbo boost technology allows the processor to run faster than the rated speed (2.9 GHz) as long as it stays within the design limits for power consumption and heat generation. This higher speed can boost the clock speed to as high as 3.5 GHz under optimal conditions to provide a powerful compute experience.
AWS offers SSD-based storage. C4 instances are best suited for those volume types as they offer EBS-optimized instances by default at no additional cost. This helps provide 500Mbps (c4.large) to 4000Mbps (c4.8xlarge) of dedicated throughput.
With the new processor, C4 instances also offer enhanced networking that helps achieve a very high packet per second (PPS) performance with lower network jitter and lower network latency. These instance types have been available in seven regions since January 2015; US East (N. Virginia), US West (Oregon), US West (N. California), EU (Ireland), Asia Pacific (Singapore), Asia Pacific (Sydney), and Asia Pacific (Tokyo).
The C4 instances are a bit costlier than other instances, but in terms of cost vs. performance, they are worth every penny. If you want to save on costs, use AWS Reserved Instances.
If you compare the C4 instance with C3 or C2, it may look higher in price on a per CPU or per GB Memory basis, but it is important to note that the new C4 instance offers more vCPUs (ECUs) compared to C3 and also offers higher network performance with dedicated EBS-optimized storage.
If you are seeking greater performance over cost, C4 seems to be the go-to option. When using lots of EBS-optimized EC2 instances with the C3 family, it is recommended to switch to C4 for greater cost savings because C4 does not charge extra for EBS-optimized instances. At the same time, it offers ultra high computation, making it well suited for applications that offer top-end website hosting, simulation, rendering, risk analysis, and online gaming.
Improving C4 Performance: C4 Deep Inside
According to AWS documentation, the c4.8xlarge instance type offers the ability to control processor C-state and P-state.
C-State: In some cases, your workload might not need all 18 of the cores offered by the c4.8xlarge instance (each of which runs two hyperthreads to make a total of 36 vCPUs). To tune the application for better performance, you can manage power consumption on a per-core basis. This is known as C-state management, and gives you control over the sleep level that a core may enter when it is inactive.
P-State: If, an application requires just four cores, for example, the operating system can set the other 14 cores to a state that draws little or no power, thereby creating some thermal headroom that gives the remaining cores an opportunity to Turbo Boost. This also provides control over the desired performance (CPU clock frequency); this is known as P-state management. The P-state management feature requires operating system support that is currently available only in AWS Linux AMIs.
The default C-state and P-state settings provide a system configuration that delivers the highest processor performance with the maximum Turbo Boost frequency, which is optimal for most workloads. You should consider changing C-state settings to decrease CPU latency variation and consider changing P-state settings to adjust the variation in CPU frequency to meet the needs of your application with powerful performance.
Operating System Support for C4.8xlarge
Amazon strongly recommends that you use the latest AMIs when you launch C4 instances. As the c4.8xlarge offers 36 vCPUs, some AMIs might not support this.
Below is the list of Linux AMIs that support launching c4.8xlarge instances.
- Amazon Linux: Amazon Linux AMI 2014.09.1 (HVM)
- Ubuntu: Ubuntu Server 14.04 LTS (HVM)
- Red Hat: Red Hat Enterprise Linux 7.0 (HVM)
- SUSE Linux: SUSE Linux Enterprise Server 12 (HVM)
Default C4 Instance Limits
Amazon also limits the number of C4 instances that user accounts can run simultaneously.
This limit can be changed by requesting use limit access to AWS.
With C4, AWS has taken a significant step forward for the next generation, moving towards dedicated throughput with higher CPU performance. It is well suited for applications such as:
- High computing workload or batch processing
- Media transcoding
- Websites that encounter very high traffic
- Online gaming such as multiplayer online (MMO), as well for engines serving advertisements
- High performance computing (HPC) and other compute-intensive applications
However, it does cost a bit more if you do not need dedicated throughput. It is advisable that you examine your usage patterns and, consider gradually moving your application workload to C4 based on your requirements.