February 14, 2021

Graviton vs Intel vs AMD EC2

History

Over the last few years AWS has branched out into building their own ARM based processor named Graviton and also to providing instances powered by other x86_64/AMD64 architectures, namely AMD EPYC processors. In late 2019, they also introduced their second generation Graviton2 processor.

Though, this isn’t the first time AWS has used AMD processors. If you have been around AWS for a while you may remember in about 2011/2012, you used to be able to order an m1 instance family. At the time, you might get AMD based instancess or Intel based instances. While I tried for a while to find any AWS documentation about these instances, I wasn’t able to. If you carefully search the forum you can find people discussing the instances types (again, be prepared to dig deep), but there was also a The Register article from mid-late 2012.

With all these new processor types being available for EC2 and thus finding their way into other services at the descretion of the services teams, e.g. RDS, Gamelift and EKS, I ultimately expect to see these other processes make their way into Lambda, Fargate, Sagemaker and probably many other services.

Cost/Performance

With all these new instance types now available I wanted to get an idea of which would be best to run for an everyday workload from a cost/performance perspective. The everyday workload will be Wordpress, and a common deployment scenario using RDS & EC2 using CDK for deployment.

Why do this when there are many examples of this from others? Well, why not?

Wordpress

Wordpress is a really common CMS that powers many sites on the Internet today. While there are hosted (SaaS) variants, Wordpress is still deployed and used on VPS’s, on-premises, EC2 and many other options across the world. It gives us an easy platform to do a comparison.

Deployment

For the purposes of this experiment, we will use a single EC2 Instance, a single RDS instance and a really basic VPC/subnet setup. In a future post I’ll explain the deployment process, which I will use CDK for.

Wordpress Load Testing Deployment

Load Testing

For the purposes of this experiment we’ll use the new Graviton2 processors and stick to memory optimised for RDS, compute optimised for EC2 and all instances will be large. The only missing piece of this experiment is that there are no AMD powered RDS instances.

This is what each scenario will look like:

EC2 RDS
c6g.large db.r6g.large
c6g.large db.r5.large
c5.large db.r6g.large
c5.large db.r5.large
c5a.large db.r6g.large
c5a.large db.r5.large

We’ll use the AWS Distributed Load Testing blueprint and compare each scenario.

I’ll dive deeper into this solution in the next installment.

© Greg Cockburn

Powered by Hugo & Kiss.