00:08 - What is AWS Graviton2
Randy Newell 00:08
Hi. Welcome to nSights, tech talks with nClouds. I'm Randy Newell and I'm here with Marius Ducea, VP of DevOps at nClouds. Hi Marius. And we're here for the next installment of nSights. And today the topic is AWS Graviton2. So tell us, Marius, what is AWS Graviton2?
Marius Ducea 00:32
Absolutely. AWS Graviton is the custom AWS processors built on 64 bit ARM neoverse cores. And this was released at re:Invent in 2018. The first instances powered by AWS Graviton. And these were called A1. And at that time, they were interesting new ARM-based instances, the first of their kind, which were marketed more for price performance. And they had been followed in re:Invent 2019 by the Graviton2. And this is where we're actually going to spend our time talking today about the Graviton2 instances. Because Graviton2 has much more performant than the initial versions, this is seven times more performance than the Graviton ARM original instances has four times more core, five times faster memory. And it's much more performant. Also, it has many types of instances Amazon has released just when they launched three types of instances, 6G, R6G and C6G. And they've been adding more instances ever since like they released T4G and so on. Compared to the Gravitron1, which was just A1. So one of the main performance improvements is that in the Graviton processor, all the virtual CPUs, the vCPUs, are physical cores. So in the Intel ones, we have multi threading. While this is not happening into the ARM processors. So since they’ve been released in 2019 in re:Invent, we haven't had a new refresh since then. Probably we'll have some in the future. We have seen lots of releases around Graviton from AWS, like different instance types, managed services, which have been released on various services, which we're going to talk about a little bit later.
02:54 - Why use Graviton2?
Randy Newell 02:54
That's interesting. So tell us why would someone want to use Graviton2?
Marius Ducea 02:59
Yeah, well, there are a few reasons but the most important one is cost. So the Graviton instances have 20% lower cost compared with the same size intel instances. So that's just on the cost. But then they also have a better performance. And this depends on the workload, which you're running on them. But it can go up to 40% on the price performance compared with Intel instances. There are different types of instances like I mentioned, there are general purpose instances like M6G, there are compute intensive instances like C6G, memory intensive instances like R6G, and so on. So there are lots of use cases for these instances, obviously, the more performance price improvement you'll get on CPU bound applications, - video encoding, machine learning, high performance computing, open source databases, application services, gaming services, and so on, like so many kinds of use cases, which can take advantage of the Graviton2 ARM-based CPUs.
04:27 - How to get started with Graviton2?
Randy Newell 04:27
So it sounds like a lot of it's around price performance. Yeah, how do we get started? How does somebody get started with Graviton2?
Marius Ducea 04:36
Yeah, so they're actually different ways to get started. We've done this quite a few times now for different customers migrating them to Graviton2 so we identified a pattern and there are two ways like one would be to identify what are some easy wins. Like I mentioned before, AWS has released managed services on Graviton. And these are like RDS, or ElastiCache. And these are very simple like most of the time, you just have to change the instance type. And you will take advantage of the Graviton and you'd use the Graviton. So nothing really is needed on your side. So AWS has already done the hard part of migrating and running that on the backend. You just take on the cost savings. So whatever kind of manner services you're already using, that can be migrated, this is going to be a great, easy, quick way to get started. And this is going to improve over time. I'm pretty sure that AWS is going to bring more and more managed services into the ground.
Marius Ducea 05:42
But then the second part would be to migrate your workloads. And this would be a custom application, your containers in case you're using some. And some of the workloads will be easier than others. For example, everything which is Linux-based, open source will have a pretty good support for ARM and it would be easier than something which is more closed source. And it is not so normal for lots of people to use and import it to ARM. So if you're using containers, for example, EKS, ECS, or even your own kind of container, like Kubernetes cluster, then you can take advantage of the bulk multi-architecture build. So both ECS and EKS support Graviton2 instances. And you can actually mix and match at ARM in the cluster. So this allows people to start small, they just provision a set of worker instances with Graviton. And then they can run and migrate just a few microservices or a few applications there just to see how it works. When you're building a Docker container for ARM, you know, like it is very useful that Docker has native support for multi-architecture builds. So it's very easy to inject in your build process. And using build from Docker, for example, you can build an ARM-based container to, you know, so you don't duplicate that you just build two images from the same flow. And most of the repositories for Docker will support multi-architecture manifests. So, for example, ECR, Docker, they support this. So you don't have to create a new repository, you will just upload both versions, and then whatever OS comes up and closes them and asks them from their repository, it will just get the right one for its environment. So this is obviously like a great kind of first step. And the fact that you can run this cluster hybrid, and you don't have to go all in. So you can gradually migrate to this. Obviously, like if you're not using containers, this will look a little bit different. It might look like you build different AMI's with an OS, which supports ARM and you recompile your application. Some of these would be easier, others might be a little bit more complicated. But overall, I think it is really worth the exercise to do this.
08:20 - Learning & experience from implementations of Graviton2
Randy Newell 08:20
We have mentioned a few, you know, a bunch of customers. So what's the learning that you've taken away so far from some of the implementations? Any tips from your experience so far?
Marius Ducea 08:31
Yeah, absolutely. In general, what we found is that it is a good idea to use recent versions of the software. This will be the operating system, libraries, they will have much better support for ARM. So even if you're able to compile on an older OS, the newer versions will have most of the performance improvement and better support for ARM. So we would highly recommend people to try to use the latest version of the OS, the latest version of the libraries. This would be just a simple step to just take advantage of those optimizations. So you know that even if the software is running on Graviton, it's also running as optimally and as fast as possible. Also, like when you compile different software, you should look to see if there are ways to use different flags to optimize or speed things up, or enable optimizations on the compiler side. So this is really kind of great to do. One other thing would be if you already have good testing for your software, then you're in pretty good shape. Like even if you're able to compile and build for Graviton, this does not necessarily mean that everything is going to work well. I mean, this is still a major change. And it's good that you have a good testing speed that you can just run to see that everything is working as expected after the compilation and running on Graviton. And I think probably the last thing, which I mentioned, I would mention is that Graviton2, like AWS has a great Getting Started repository on GitHub here. You just started on GitHub Graviton2 getting started, and they link here all kinds of things to literally just get you started on whatever language, whatever library you're using. And this is constantly improving and it can get you started. So let's say if you use GO like you'll just go there and find what kind of the steps which they have found that are useful to get started on that, you know, like a particular kind of setup, which we're running. So check that out, too.
Randy Newell 10:55
Fantastic. Well, thank you, Marius. The latest installment of nSights, tech talks with nClouds. So appreciate your time everybody for watching, and stay tuned for the next installment. Thanks, everybody. Thank you
You can also email us directly at firstname.lastname@example.org for your inquiries or use the form below