By ec2calc.cloud maintainers · Published · Reviewed

Graviton Migration Guide

AWS Graviton processors (ARM64) deliver up to 40% better price-performance than x86. Here's how to migrate your workloads.

What is Graviton?

Graviton is AWS's custom ARM-based processor. It's not emulation — it's native ARM64 hardware designed specifically for cloud workloads. You get more compute per dollar, lower energy consumption, and the same AWS features.

Up to 40%

better price-performance

60%

less energy per chip

g suffix

m7g, c7g, r7g, t4g

Graviton Generations

2020

Graviton2

Up to 40% better price-performance vs x86 (5th gen)

m6gc6gr6gt4g
2022

Graviton3

Up to 25% better than Graviton2. 2x faster crypto, 3x better ML inference.

m7gc7gr7g
2024

Graviton4

Up to 30% better than Graviton3. Largest cache, highest memory bandwidth.

m8gc8gr8g

Recorded on-demand price comparisons

Dated Linux/shared-tenancy quotes in us-east-1, USD. These percentages compare hourly compute prices; they do not measure performance, migration effort or application ROI. Check current rates on the linked instance pages.

From (x86)To (Graviton)Saving
m5.largem7g.large15.0%
t3.microt4g.micro19.2%

Compatible Workloads

✅

Linux-based web apps

Node.js, Python, Go, Ruby, PHP, Java — all run natively on ARM. Most frameworks have full support.

✅

Containers (Docker/ECS/EKS)

Build multi-arch images with docker buildx. Most official images already support arm64.

✅

Databases

PostgreSQL, MySQL, Redis, MongoDB, Elasticsearch — all have ARM builds. RDS supports Graviton natively.

✅

Java applications

JDK 11+ has excellent ARM support. Corretto (Amazon's JDK) is optimized for Graviton.

✅

Python / Node.js

Interpreted languages work out of the box. Native extensions (C modules) need ARM compilation.

✅

.NET 6+

.NET 6 and later have full ARM64 support on Linux. Earlier versions are x86 only.

Watch Out For

❌

Windows workloads

Graviton does not support Windows. Stay on Intel/AMD instances.

⚠️

x86 assembly / SIMD code

Code with x86-specific instructions (SSE, AVX) needs porting to ARM NEON equivalents.

⚠️

Proprietary x86-only software

Some commercial software only ships x86 binaries. Check vendor ARM support before migrating.

⚠️

Old .NET Framework

.NET Framework (not .NET Core/6+) is Windows-only and won't run on Graviton.

Migration Steps

1

Audit your dependencies

Check that your OS, language runtime, and all native dependencies have ARM64 builds. Use `uname -m` to verify architecture.

2

Build ARM images

For containers: use `docker buildx build --platform linux/arm64`. For AMIs: launch a Graviton instance and build your AMI there.

docker buildx build --platform linux/arm64,linux/amd64 -t myapp:latest --push .
3

Test in parallel

Run the Graviton instance alongside your existing x86 instance. Route a small percentage of traffic to it and compare performance, errors, and latency.

4

Benchmark and validate

Run your standard load tests. Graviton typically matches or beats x86 on throughput. Watch for any regressions in specific operations.

5

Switch over

Update your Auto Scaling group, ECS task definition, or deployment config to use the Graviton instance type. Roll back is just changing the instance type back.

Tips

🐳

Use multi-arch Docker images

Build for both amd64 and arm64 with buildx. This lets you run the same image on either architecture during migration.

🔬

Start with non-production

Migrate dev/test environments first. Low risk, immediate savings, and you'll catch compatibility issues early.

📊

Compare prices in our calculator

Select any instance and compare the x86 vs Graviton variant side by side with real-time pricing.

Open calculator →
🔄

Use latest Graviton generation

Each generation brings significant improvements. Prefer Graviton4 (8g) > Graviton3 (7g) > Graviton2 (6g).

Compare x86 vs Graviton prices

See exactly how much you'd save by switching to Graviton — on-demand, reserved instances, savings plans, and spot, all in one view.

Open Calculator

Sources and calculation assumptions

AWS features and rates can change. Follow the official references for service details and use the calculator for the selected instance and region. Price differences do not measure application performance.

Our data sources, cache policy and pricing formulas · Browse EC2 specifications and quotes