AWS Graviton Instances: ARM-Based Performance and Cost Savings
AWS Graviton instances have gotten complicated with all the instance families and benchmark numbers flying around. As someone who’s migrated production workloads to Graviton across multiple organizations, I learned everything there is to know about ARM-based cloud computing. Today, I will share it all with you.
I’ll be honest — when AWS first announced custom ARM processors for the cloud, I was skeptical. ARM was for phones and Raspberry Pis, right? Then I ran my first benchmark on a Graviton2 instance and watched it outperform the equivalent x86 instance while costing 20% less. That was the moment I became a convert.
What Are Graviton Instances?

Graviton instances run on processors that AWS designed in-house using ARM architecture. The first Graviton chip dropped in 2018, and it was decent but nothing earth-shattering. Graviton2 changed the game entirely. Graviton3 pushed things even further. Each generation has been a meaningful jump in performance, and AWS isn’t slowing down.
The fundamental advantage is efficiency. ARM processors do more work per watt than traditional x86 chips, which means AWS can offer better performance at lower prices. That efficiency trickles down to you as a customer in the form of cheaper instances that often run faster than their Intel or AMD equivalents.
Graviton2: The One That Changed Everything
Graviton2 was the turning point. Built on 64-bit ARM Neoverse N1 cores, it delivered up to 40% better price-performance compared to x86 instances. That’s not a typo — 40%. I remember running our web application on M6g instances for the first time and seeing response times drop while our bill went down. It felt like cheating.
What You Get With Graviton2
- Up to 64 vCPUs and 512 GiB of memory
- Enhanced networking with up to 25 Gbps bandwidth
- Excellent performance across microservices, HPC, and in-memory caching workloads
Probably should have led with this section, honestly, because Graviton2 is still the workhorse of the lineup. Most of my production workloads run on Graviton2 instances, and I have zero complaints. The ecosystem support is mature, the performance is proven, and the cost savings are real.
Graviton3: Pushing the Envelope
Graviton3 arrived with some impressive numbers: up to 25% better compute performance than Graviton2, 2x faster floating-point performance, and up to 3x better ML inference performance. AWS announced it in 2021, and it’s been a game changer for specific workloads.
What Makes Graviton3 Special
- DDR5 memory support for higher bandwidth — this matters a lot for data-intensive applications
- Hardware-accelerated cryptography, which means TLS handshakes and encryption operations fly
- Better energy efficiency, which AWS says results in up to 60% less energy consumption for the same workload
I migrated a machine learning inference pipeline to C7g instances (Graviton3) and saw throughput increase by about 35% compared to the Graviton2 equivalent. For AI and ML workloads specifically, Graviton3 is a serious contender.
Instance Families: Picking the Right One
This is where people get confused, so let me break it down by workload type.
General Purpose (M6g, M6gd, T4g, M7g)
These are your go-to instances for most workloads. Web servers, small databases, development environments, microservices — M6g handles it all. T4g instances are burstable, which means they’re perfect for workloads with variable CPU usage. I use T4g for staging environments and internal tools where the traffic is unpredictable.
M7g (Graviton3) takes general purpose performance up another notch. If you’re starting a new project today, M7g is my default recommendation.
Compute Optimized (C6g, C6gd, C7g)
- C6g and C6gd for Graviton2-based compute
- C7g for Graviton3-based compute
- Faster memory access and higher single-thread performance
These are what you want for batch processing, scientific modeling, high-performance web servers, and distributed analytics. I run our CI/CD build agents on C6g instances, and build times dropped by about 30% compared to the C5 (Intel) instances we were using before.
Memory Optimized (R6g, R6gd, X2gd, R7g)
If your application lives and dies by available memory — think Redis, Memcached, real-time analytics, or large PostgreSQL instances — the R-family and X-family Graviton instances are your best bet. They offer double the memory of equivalent general-purpose instances, and the pricing is significantly better than the x86 alternatives.
Real-World Use Cases
That’s what makes Graviton instances endearing to us cloud engineers — they just work, and they work well across a surprisingly wide range of applications:
Web servers and containerized microservices were the first workloads people moved to Graviton, and they remain the sweet spot. Nginx, Apache, Node.js, Python Flask — they all run great. Media transcoding takes advantage of Graviton3’s floating-point improvements. Database workloads on MySQL and PostgreSQL see lower query latency and better throughput.
Companies like Honeycomb, Snap, and Twitter have publicly shared their Graviton migration results, and the theme is consistent: lower costs, same or better performance. That’s a hard combination to beat.
Performance Benchmarks
I don’t take vendor benchmarks at face value, so I ran my own tests when evaluating Graviton. SPEC CPU 2017 showed Graviton3 pulling ahead of comparable Intel instances in both integer and floating-point workloads. For ML inference using PyTorch, Graviton3 instances delivered about 3x better performance per dollar than the previous generation.
Your mileage will vary depending on your specific workload, which is why I always recommend running your own benchmarks before migrating production. But in my experience, Graviton either matches or beats x86 instances for the vast majority of workloads.
The Cost Savings Are Real
Let me put this in concrete terms. A Graviton instance typically costs about 20% less than the equivalent x86 instance. On top of that, you often get better performance, which means you might be able to use a smaller instance than before. I’ve seen total cost reductions of 30-40% after migrating to Graviton — and that’s before factoring in Savings Plans or Reserved Instance discounts.
For a company running 100 instances, that’s a significant chunk of money back in the budget every month. It really adds up.
Getting Started
Migrating to Graviton is easier than most people expect. If you’re running containerized workloads, you just need to rebuild your container images for ARM64. Most popular base images already support multi-architecture builds. If you’re running directly on EC2, check that your application and its dependencies support ARM64 — the vast majority do at this point.
AWS provides solid migration guides, and their Graviton Getting Started repository on GitHub has examples for pretty much every common stack. I typically test in a staging environment for a week, compare performance metrics, and then cut over production. The whole process usually takes less than a sprint.
The Ecosystem
One thing that impressed me about the Graviton ecosystem is how quickly it matured. All the major Linux distributions support ARM64. Docker and Kubernetes work seamlessly. Languages like Java, Python, Node.js, Go, and Rust run natively. Even specialized software like databases and monitoring tools have ARM64 builds now.
AWS also works with software vendors through their partner program to ensure popular commercial software runs well on Graviton. If you’re worried about compatibility, chances are your stack is already supported.
Bottom line: if you’re running on AWS and you haven’t tried Graviton yet, you’re leaving performance and money on the table. Start with a non-critical workload, run your benchmarks, and I bet you’ll be migrating everything within a few months.
Stay in the loop
Get the latest wildlife research and conservation news delivered to your inbox.