AWS keeps recommending Graviton instances (m7g, c7g, r7g) as a cost-saving move, and Graviton instances are usually priced lower per hour than comparable x86 instances. The catch: Graviton is ARM-based. If your server runs on an x86 family like m5, m6i or m6a, you can't just change the instance type. Packages, compiled libraries and some programs have to be rebuilt for ARM.
The first question is always the same: will my server even work on Graviton, and how much effort is it? We built a free script that answers it.
First, check if you need to migrate at all
If you're already on m6g (Graviton2), moving to m7g needs no rebuild: stop the instance, change the instance type, start it. The script detects this and tells you.
Run the readiness check
SSH into your server and run:
curl -fsSL https://www.bluecurrentlabs.com/scripts/graviton-check.sh | sudo bash
For a deeper check that also looks up ARM versions of your Python packages and Docker images:
curl -fsSL https://www.bluecurrentlabs.com/scripts/graviton-check.sh | sudo bash -s -- --online
Prefer to read it before running it? View the script, download it, and run sudo bash graviton-check.sh.
Safe to run on production
- Read-only. It installs nothing, changes nothing and restarts nothing.
-
Your data stays on your server. Nothing is uploaded. With
--online, it only looks up public package names. - No secrets touched. It doesn't read your configs, crontab contents or .env files.
- It writes only a report folder in
/tmp.
What it checks
| Area | What it looks for |
|---|---|
| Operating system | Is there an official ARM image for your OS version? |
| Packages | Third-party repositories without ARM builds, and packages installed from downloaded files |
| Programs | x86-only programs installed outside the package manager (the usual blockers) |
| Python, Node.js, PHP | Compiled libraries that need reinstalling, and packages with no ARM version |
| Docker | Images that have no ARM version |
| Services | Custom services that run x86-only programs |
Reading the result
- READY: nothing architecture-specific found. A rebuild should be straightforward.
- FEASIBLE WITH MANUAL STEPS: some items need reinstalling or rebuilding on ARM. The report lists each one.
- NOT READY: something has no ARM version yet. Fix those blockers before you migrate.
Verify the script (optional)
SHA-256 checksum of the current version:
e7ff0a63f3f3ccb91810c26f53f28883e235bec9be53289ba3696a144bc2ea5b
Report says feasible? Here's the next step.
Our migration script exports your packages, configs, crontabs, services and application code from the x86 server, then rebuilds everything on a new Graviton instance with a dry run first, a list of anything that failed, and a check that the same ports are listening. Want it for your servers? Write to us at cost@bluecurrentlabs.com.