What is ECU in AWS?
An ECU is an EC2 Compute Unit used to measure the power of resources in the cloud. One of the fundamental offerings of cloud computing is a computational instance. In simpler terms, a compute instance is a virtual software instance running within a cloud provider's data center. In AWS, the most basic compute instance is EC2. It provides a small amount of computing power, limited memory, some storage, and basic network connectivity. Users can manually or programmatically deploy EC2 instances for a number of tasks - applications, microservices, etc.
What is the Purpose of ECU in AWS?
Cloud computing is essentially the rental of hardware and software. In other words, you pay for the hardware located on the provider's premises. An important breakthrough that made cloud computing as attractive as it is nowadays is that hardware resources can be partitioned. In other words, it’s possible to subdivide the resources of one physical device and “rent them out” to separate users.
Based on the concept of partitioning, AWS wanted to have a way to specify how much computing power a user is getting by “renting out” a certain amount of hardware. The ECU in AWS is defined as the power of a 1.0 - 1.2 GHz 2007 Intel Xeon or AMD Opteron processor. At this point in time, the actual hardware isn’t going to be a processor from 2007; AWS will specify the power of the current hardware benchmarked against the processor above. In other words, you may be 10 ECUs, 100 ECUs, or more as you spin up an instance in the current AWS environment.
The bottom line is that by knowing the ECU of an instance, it’s possible to have a direct comparison of the performance against another ressource. This allows engineers to optimize the performance of a given system by scaling up to accommodate a higher load, or by scaling down to save on cloud computing costs.
Factors that Affect ECU in AWS
As described above, ECUs are used as a metric for performance. However, that definition is rather simplistic. It’s important to understand some of the factors that impact the performance of a cloud computing instance and how they affect the ECU metric.
During the process of deploying a new instance, the user can choose between a few options - General Purpose, Compute Optimized, Memory Optimized, Accelerated Computing, Storage Optimized, and HPC Optimized.
The bottom line is that each instance may have a different processor. Once the instance is available, it’s possible to run a linux command to identify the processor speed.
Response Example - i-5560.... model name: Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
How to Determine ECU in AWS Instances
In AWS, it’s possible to deploy instances manually, or automatically - using the CLI, AWS automation tools, or through software. Based on the instance, you can determine the ECU in AWS. Start by running the following command through the CLI of the instance:
To compute the ECU use the following formula:
ECU=1925/t
Alternatively, you can use the chart below as a good estimate of the ECUs provided by every AWS instance:
The Difference Between ECU and vCPU
Virtual Compute Units or vCPUs are another metric you may encounter when it comes to virtual machine raw power. Although they appear to be fundamentally different from ECUs, they’re essentially a non-AWS measurement system for the exact same performance definition. In other words, vCPU is a metric that has been used outside of AWS for a number of year prior to the introduction of ECU. As Amazon realized that they’re having to educate customers on a metric that isn’t natively intuitive, they’ve interchangeably used ECU and vCPU in some of their documentation and conversations with end-users.
In 2014, AWS standardized their communications on vCPU to simplify their delivery for the end users.
Conclusion on ECU
We’ve covered all there is to know about ECU in AWS. This metric gives the end-user an idea of the expected performance of a virtual machine they’re looking to start in the cloud. AWS has introduced ECU as a baseline of a 1.0 - 1.2 GHz 2007 Intel Xeon or AMD Opteron processor. Based on that single ECU, the user can compute the number of ECUs in any system they’re looking to purchase / rent from AWS. More ECUs is “obviously” better for performance, but there are caveats - At this time, EC2 offers a number of optimized instances that may be preferred for certain applications.