Optimize your x86-based Amazon EC2 Workloads
This post will show how you can optimize your x86 Amazon Elastic Cloud Compute (Amazon EC2) workloads with no architectural changes. We will focus on improving price-to-performance without introducing engineering overhead, large planning cycles and significant time investment. The optimizations mentioned today require no application engineering and can be done quickly. The focal point of this post is showing the benefits of running your x86 EC2 workloads on AMD-based EC2 instances to achieve at least 10% cost savings.
AMD Performance & Selection
Amazon EC2 instances powered by AMD EPYC Processors have been available since 2018 with the introduction of the M5a and R5a families. Since then, the C6a, M6a, T3a, R6a, Hpc6a and G4ad have been introduced, giving you more choices for addressing application needs. EC2 instances powered by AMD EPYC processors help provide you additional x86 options to right-size your workloads, while providing 10% lower cost compute and memory over comparable instances without sacrificing performance.
AMD-powered EC2 instances are built on the AWS Nitro System, a combination of dedicated hardware and a lightweight hypervisor which delivers nearly all the compute and memory resources of the host hardware to your instances for better overall performance and security. The AWS Nitro System delivers a collection of building blocks that offloads many of the traditional virtualization functions. By doing so, the AWS Nitro System can reduce virtualization overhead, which frees up additional memory for workloads, boosts performance and lowers the $ per GiB cost. Together, AMD and AWS are giving you the ability to do more for less cost with their x86 based EC2 workloads.
From the perspective of performance, AMD-powered EC2 instances have a plethora of options to satisfy your workload requirements. The T3a instance family can achieve up to 2.5 GHz in CPU performance, while the C6a, R6a, M6a can achieve frequencies up to 3.6 GHz. Amazon EC2 also provides high performance and networking capabilities to these instances by leveraging next generation Elastic Network Adapter (ENA), and NVM Express (NVMe) technology. The Elastic Network Adapter and NVM Express components justify running workloads that require high-throughput and low latency on AMD-powered EC2 instances. Please refer to the chart below showing the range of potential instance configurations to help determine what is best for your workload:
Making the Transition:
When you evaluate EC2 footprint, you have the option of looking at Graviton-based EC2 instances which deliver up to 40% better price performance than similar x86 instances. These instances leverage an arm64 CPU architecture requiring your applications OS and dependencies to be upgraded to arm64. Many of you are increasingly adopting Graviton, migrating in a matter of weeks or months. For an immediate 10% cost saving on your EC2, AMD instances are a great option.
Since AMD instances are based on x86-64 CPU architecture, workloads currently running on alternative x86-64 Amazon EC2 are top candidates for a simple transition. The C6a, R6a, M6a, T3a are available in the same sizes as instances you are currently running and can use the same Amazon Machine Image (AMI), making it easy for you to find the best instance for your application. During your next application testing period, you can simply launch your applications AMI on an AMD-based Amazon EC2 instance to measure the performance. If the application performs as expected, you will run your workload for 10% less on an instance that offers identical specifications to your original. With workloads for which EPYC processors have higher performance, it’s possible to extract more than 10% cost savings because higher performance means less runtime or fewer instances required.
If your organization determines that existing and future applications can be run on AMD-powered EC2 instances, you can set up guardrails within AWS Service Catalog. AWS Service Catalog lets you centrally manage your cloud resources to achieve governance at scale of your infrastructure as code (IaC) templates written in AWS CloudFormation or Terraform. You can leverage Service Catalog Template Constraints to limit the options that are available to end users when they launch a product. In this case, you can define template constraints to limit the values that users can choose when launching a product, specifically you can limit the EC2 instance values to only allow AMD-based instances. Ensuring that the organization plans appropriately for any application migration is critical to mitigate any discontinuity. During this planning and implementation process, be sure to monitor application performance before and after.
Detailed Pricing Example:
As discussed, the required effort to run existing x86 based applications on AMD-powered EC2 instances is minimal. Other than the performance benefits associated with the switch, the cost-savings is even more attractive. To show these costs savings, using the AWS Pricing Calculator, we ran some brief estimates to show what the expected savings would be like.
Assumption: OS: Linux, 50 t3.small, 50 c6i.large, 50 r6i.large, 50 m6i.large instances to AMD Alternative
Outcomes: Highlights potential monthly, yearly and percentage savings by running your x86 EC2 workloads on AMD backed EC2 instances
As you can see, on the left-hand side of this estimate, we have priced out the latest generation non-AMD x86 based instances, and have highlighted the vCPU, Memory, and Network Performance along with their monthly on-demand pricing. On the right-hand side, we have priced out the equivalent AMD instances, with the same specifications with on-demand pricing. After comparing the t3.small to the t3a.small, c6i.large to the c6a.large, r6i.large to the r6a.large, and the m6i.large to the m6a.large, you would recognize 10% savings across the board.
Besides saving on the instance type alone, compute savings can be even greater if your organization leverages Amazon EC2 Reserved Instances, Amazon EC2 Savings Plans, Amazon Compute Savings Plans or Amazon EC2 Spot Instances. Amazon EC2 Reserved Instances provide a significant discount (up to 72%) compared to On-Demand pricing and provide a capacity reservation when used in a specific Availability zone. Amazon EC2 Savings Plans provide savings up to 72% in exchange for commitment to usage of individual instance families in a Region. This automatically reduces your cost on the selected instance family in that region regardless of Availability Zone, Operating System, or tenancy type. Compute Savings plans provide the most flexibility and help to reduce your costs by up to 66%. These plans automatically apply to EC2 instance usage regardless of instance family, size, Availability Zone, Region, Operating System or tenancy, and also apply to Fargate or Lambda usage. Amazon EC2 Spot instances let you take advantage of unused EC2 capacity in the AWS cloud. Spot Instances are available at up to a 90% discount compare to On-Demand prices. You can use Spot instances for various stateless, fault-tolerant, or flexible applications such as big data, containerized workloads, CI/CD, web servers and more.
If your organization has EC2 workloads that require an x86 based CPU, they can be run on AMD-powered Amazon EC2 instances and achieve 10% cost savings compared with other x86 based EC2 instances. Running compute workloads on AMD based instances is a great way to recognize short-term savings, as your organization creates a migration path to run their applications on arm64 based Graviton-based EC2 instances. If your organization determines that AMD instances should be required for new and current workloads, you can implement guardrails through AWS Service Catalog. Last, by leveraging Amazon EC2 Reserved Instances, Amazon EC2 Savings Plans or Amazon Compute Savings Plans, your organization can achieve even larger savings on their Amazon EC2 compute workloads. To achieve 10% in cost savings, see more details on the AMD EC2 offering.