Mathieu Kerbel
All articles

AWS Graviton pricing: what you save

By Mathieu Kerbel
Share on LinkedIn

Key facts

Processor
64-bit Arm with Arm Neoverse cores and custom silicon designed by AWS [2]
Price
Up to 20% less than comparable x86-based Amazon EC2 instances, in AWS's words [1]
Price-performance
Up to 40% better than comparable x86-based EC2 instances, AWS states [3]
Fargate
20% lower cost and up to 40% better price/performance than comparable Intel x86-based Fargate, AWS states [14]
vCPU
One physical core where an x86 vCPU is a logical core, achieved by hyperthreading [10]
Operating system
Linux only not an option for Windows or legacy .NET Framework applications [10]

AWS Graviton is the family of Arm processors AWS designs for its own servers, and it has no bill of its own: Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS), AWS Lambda, AWS Fargate and the other services that run on it each price their Graviton option on their own lines. What you save is the gap between that line and the Intel or AMD line it replaces, and in the Paris Region (eu-west-3) it is not one figure. A Graviton type costs 20.3% less on EC2's burstable instances and 15.2% less on its newest generation, 20.0% less on Lambda duration and on Fargate, but 4.8% less on RDS for PostgreSQL, and on Amazon ElastiCache a Graviton4 node costs 2.6% more than the newest Intel node, computed. AWS's "up to 20%" holds on EC2, Lambda and Fargate, not on the managed databases. This article explains what Graviton is, which services offer it, how its pricing works service by service, and the levers AWS documents to move to it; four architectures price a move, then a commitment, on whole monthly bills.

Prices in this article are AWS list prices for the EU (Paris) Region, in USD before tax, from the AWS Price List: Linux and shared tenancy for EC2, PostgreSQL for RDS and Aurora, Valkey for ElastiCache, On-Demand unless a commitment is named. The offer files and their publication dates are listed in the Sources section, and each table repeats the dates of its own prices. A gap is the Graviton price against the x86 price of the same series (m, c, r, t) and size, per hour or per unit; Lambda bills memory in MB and duration in GB-seconds, at 1,024 MB to the GB. Monthly amounts (730 hours), totals and percentages are computed from these prices. Free tiers are left out.

What AWS Graviton is

In AWS's words, "AWS Graviton is a family of processors designed to deliver the best price performance for your cloud workloads running in Amazon Elastic Compute Cloud (Amazon EC2)." AWS designs them itself, on Arm: the Amazon EC2 FAQs say they "are based on the 64-bit Arm instruction set and feature Arm Neoverse cores as well as custom silicon designed by AWS". So is AWS Graviton Arm or x86? Arm. Intel and AMD processors are x86: code compiled for them must be rebuilt for arm64, while interpreted code usually runs as is (What does not fit).

Graviton is a processor, not a service you buy. It has no pricing page, and no line of its own on a bill: what a bill shows is the EC2 instance, the DB instance class, the Lambda function or the Fargate task that runs on it, each priced by its own service. It started with EC2 instances, and "AWS Graviton-based instances are also available in popular managed AWS services, such as Amazon Aurora, Amazon RDS, and Amazon EKS"; the full list, nine services, is in Which services offer it. An instance on Graviton against one on Intel, at a glance:

AWS Graviton against Intel, on Amazon EC2
Instruction set
64-bit Arm (arm64)
One vCPU
A physical core
Operating system
Linux only
In an instance name
The option letter g, as in m7g.large
Instruction set
x86 (x86_64)
One vCPU
A thread: two per core, by default
Operating system
Linux or Windows
In an instance name
The option letter i, as in m7i.large

What differs: the instruction set, which decides what software runs, and what a vCPU is, which decides what the same vCPU count buys.

AWS's own figures for Graviton are of two kinds, and they measure different things. On price, "AWS Graviton-based instances cost up to 20% less than comparable x86-based Amazon EC2 instances" (AWS Graviton); on price-performance, "Amazon EC2 instances powered by AWS Graviton processors provide up to 40% better price performance over comparable x86-based instances" (Getting started with AWS Graviton). The first is a list price: this article computes it for each service, and it holds on EC2, Lambda and Fargate, not on the managed databases (Is AWS Graviton cheaper?). The second depends on what a workload does with the processor, so this article quotes it and never computes it.

Graviton is not AWS's only processor family: the EC2 User Guide also lists AWS Trainium, "purpose built for high-performance, cost-effective deep learning training", and AWS Inferentia, "designed to accelerate machine learning", which this article leaves out.

In short: AWS Graviton is an Arm processor that services offer as an option, not a service of its own: its price is each service's Arm price, and its saving is the gap to that service's x86 price.

How AWS Graviton works under the hood

AWS documents Graviton at the level of its generations, the instance name and the vCPU, and each bears on the bill: the generation sets the price, the option letter tells a Graviton line from an Intel one, and the vCPU decides what an hourly price buys. How each generation's silicon is laid out is not in the pages this article cites, beyond a few figures, and is left out.

Five generations, and the EC2 families of each

The EC2 FAQs give the step from the first generation to the second: "The AWS Graviton2 processors deliver up to 7x performance, 4x the number of compute cores, 2x larger caches, 5x faster memory, and 50% faster per core encryption performance than first generation AWS Graviton processors." The EC2 User Guide's list of current instance families matches each generation to its families, through the generation digit and the option letter g. Against it, what this article prices in Paris:

AWS Graviton generations, their EC2 families, and what this article prices in Paris

Generation EC2 families Priced here
Graviton (first) A1, now a previous generation No: superseded
Graviton2 M6g, C6g, R6g, T4g, X2gd, I4g, Im4gn, Is4gen, G5g, and their d and n variants t4g, m6g, c6g, r6g
Graviton3 M7g, C7g, R7g, Hpc7g, and their d and n variants m7g, c7g, r7g
Graviton4 M8g, C8g, R8g, I8g, X8g, and their b, d and n variants m8g, c8g, r8g
Graviton5 M9g, C9g, R9g, and their d variants No: no row in Paris on October 15, 2026

The pages this article cites date none of the five generations, so the table gives no launch dates. The fifth is announced: "Graviton5 features 192 cores, a 5x larger cache, and up to 33% lower inter-core latency", says the product page, without naming what it compares with. The EC2 User Guide lists M9g, C9g and R9g among the current families, and the RDS User Guide documents "General-purpose DB instance classes powered by AWS Graviton5 processors", but neither the EC2 price list of October 15, 2026 nor the RDS one of October 6 has a Graviton5 row in Paris, so this article prices Graviton2 to Graviton4. At the same size, each of them has cost more per hour than the one before:

One size, three Graviton generations, in Paris, On-Demand

Instance typeList price, per hourA month, computed
m6g.largeGraviton2 · 2 vCPU · 8 GiB$0.09$65.70
m7g.largeGraviton3 · 2 vCPU · 8 GiB$0.0952$69.50
m8g.largeGraviton4 · 2 vCPU · 8 GiB$0.10472$76.45

USD, before tax. AWS Price List, eu-west-3, offer file published October 15, 2026, fetched October 16, 2026.

For the generations, AWS gives performance figures, not prices: M7g instances offer "up to 25% better performance over Graviton2-based M6g", and M8g instances "up to 30% better performance ... than the seventh-generation AWS Graviton3-based M7g instances". In Paris, m7g.large costs 5.8% more than m6g.large and m8g.large 10.0% more than m7g.large, computed. It follows that m8g.large costs less than m7g.large per unit of work only if it does more than that share of extra work; AWS's figure says "up to", and only a measurement on your workload says where it lands (Measure price-performance on your workload; the EC2 article weighs generations the same way).

Reading a Graviton instance name

An instance type is named after its family and size: the series, the generation, the options, then the size after the dot. What does the g mean in an EC2 instance name? The naming guide's options list "g – AWS Graviton processors", beside "a – AMD processors" and "i – Intel processors". The series list has one Arm series of its own, "A – Powered by Arm-based AWS Graviton processors": A1, the first generation's. Every later Graviton type carries the g in a series that has Intel siblings:

r8g.large: r, the memory optimized series; 8, the eighth generation; g, an AWS Graviton processor, Graviton4 at this generation; large, the size.

Its Intel sibling is r8i.large, with the option letter i; Paris has no seventh- or eighth-generation AMD EC2 type at all. The same letter sits at the same place in the managed services' names: db.r8g.large is an RDS DB instance class, cache.m6g.large an ElastiCache node type and m8g.large.search an OpenSearch Service instance type, each on Graviton. The EC2 article reads the other letters.

One vCPU, one physical core

Many instances run two threads on each core, simultaneous multithreading (SMT), and "each thread is represented as a virtual CPU (vCPU) on the instance". Graviton does not: "Each core of the AWS Graviton2 processor is a single-threaded vCPU", say the EC2 FAQs, and AWS Prescriptive Guidance puts the difference in two sentences: "In the x86 architecture, a vCPU is a logical core achieved by hyperthreading. In Graviton, vCPU equates to a physical core which allows the vCPU to be fully committed to the workload." AWS's table of CPU options gives the defaults of the eighth generation:

Two vCPUs each: one Intel core, or two Graviton cores
  • m8i.large Intel: 2 vCPUs on 1 core, 2 threads per core

  • m8g.large AWS Graviton4: 2 vCPUs on 2 cores, 1 thread per core

Default CPU options. AWS, Supported CPU options for Amazon EC2 instance types

The same table gives AMD's seventh generation (m7a, c7a, r7a) one core per vCPU too, but Paris prices none of it. The layout is fixed: "You can't modify the number of threads per core for T2, C7a, M7a, R7a, and Apple silicon Mac instances, and instances based on the AWS Graviton processor" (CPU options). It follows that an hourly price compared at the same vCPU count, as every table of this article compares it, sets two Graviton cores against one Intel core and its two threads. Whether two cores do more work than two threads depends on the workload: that is why AWS's price-performance figures say "up to".

Two more facts from AWS's pages have no price of their own. Graviton instances run on the AWS Nitro System, as every current EC2 family does (the EC2 article explains it), and "AWS Graviton2 processors support always-on 256-bit memory encryption to further enhance security", say the EC2 FAQs, a sentence the pages this article cites write for Graviton2 only.

In short: A Graviton vCPU is a whole core and a Graviton type carries a g, and each newer generation costs more per hour: compare instances on the work they do, not on their vCPU count or their generation.

What AWS Graviton is used for

Which services offer it, and in which form

Each service offers Graviton in its own form: an instance type or a DB instance class picked as any other, or an Arm setting on a function or a task. Amazon Elastic Kubernetes Service (Amazon EKS) and Amazon EMR reach it through their EC2 nodes:

How AWS services offer GravitonAWS Graviton is not a service of its own. Seven services offer it as an instance type or a DB instance class you pick, as any other: EC2, RDS, Aurora, ElastiCache, OpenSearch Service, and EKS and EMR through their EC2 nodes. Lambda and Fargate offer it as an Arm setting.Region eu-west-3 (Paris)A Graviton instance type or classAn Arm settingAmazonEC2AmazonRDSAmazonAuroraAmazonElastiCacheAmazonOpenSearchAmazonEKSAmazonEMRAWSLambdaAWSFargate123
How AWS services offer Graviton
  1. Pick a Graviton type as any other: an EC2 instance family (t4g, m7g, c8g, r8g…), an RDS or Aurora DB instance class (db.t4g, db.r8g…), an ElastiCache node type (cache.m7g…) or an OpenSearch Service instance type (m8g.large.search…). On RDS, the move is a modification like any other.
  2. Set the architecture: arm64 for a Lambda function, ARM64 in the task definition of an Amazon ECS task on Fargate. EMR Serverless takes arm64 too, instead of its default, x86_64.
  3. Amazon EKS and Amazon EMR run their nodes on EC2 instances, Graviton ones included.

Built from each service's own documentation, what each one offers:

The AWS services that offer Graviton, and how you choose it

Service How you choose Graviton Generations documented
Amazon EC2 An instance family: t4g, m7g, c8g, r8g… Graviton2 to Graviton5
Amazon RDS A DB instance class: db.t4g, db.m7g, db.r8g… Graviton2 to Graviton5 (db.m9g)
Amazon Aurora A DB instance class, memory optimized or burstable: db.r8g, db.t4g… Graviton2 to Graviton4
Amazon ElastiCache A node type: cache.t4g, cache.m7g, cache.r8g… Graviton2 to Graviton4
Amazon OpenSearch Service An instance type: c7g, m8g, r8g… Graviton2 to Graviton4
Amazon EKS EC2 nodes of a Graviton type As on EC2
Amazon EMR EC2 nodes of a Graviton type; on EMR Serverless, arm64 As on EC2; Graviton2 and Graviton3 on EMR Serverless
AWS Lambda The function's architecture: arm64 Graviton2, the one named
AWS Fargate The task's CPU architecture: ARM64, on Amazon ECS only None named

Lambda's setting is the function's instruction set architecture, "arm64 – 64-bit ARM architecture, for the AWS Graviton2 processor" (instruction set architectures). Fargate's is the CPU architecture of a task definition, for the tasks of Amazon Elastic Container Service (Amazon ECS) (ECS task definitions for ARM workloads) and only those: "Use Amazon EC2 to run Arm workloads on Amazon EKS, which are not supported on AWS Fargate today" (AWS Fargate FAQs). On EMR Serverless, "x86_64 is the default option for EMR Serverless applications" (EMR Serverless architecture options). The other pages differ in what they leave out: Aurora lists memory-optimized, burstable and serverless classes and no general-purpose one (Aurora DB instance class types); Amazon ElastiCache documents no Intel node type newer than cache.m5 and cache.r5 (supported node types); Amazon OpenSearch Service lists no eighth-generation Intel type, and "You can't combine Graviton and non-Graviton instances in the same cluster" (supported instance types). On EKS, the Auto Mode fee on each instance is lower on Graviton too: 19.0% less for an m7g.xlarge than for an m7i.xlarge in Paris, computed (the EKS article prices the fee).

It follows that a move to Graviton is not the same work on each service: a setting on Lambda and Fargate, a class change on RDS, an arm64 Amazon Machine Image (AMI) and rebuilt binaries on EC2. How to reduce costs with AWS Graviton orders the moves by that work.

What AWS recommends it for

The EC2 FAQs recommend each Graviton2 family for its own kind of work:

What AWS recommends the Graviton2 EC2 families for

Family Recommended for, in AWS's words
M6g, general purpose "application servers, gaming servers, microservices, mid-size databases, and caching fleets"
C6g, compute optimized "high performance computing (HPC), batch processing, ad serving, video encoding, gaming, scientific modelling, distributed analytics, and CPU-based machine learning inference"
T4g, burstable "micro-services, low-latency interactive applications, small and medium databases, virtual desktops, development environments, code repositories, and business-critical applications"

None of these pages lists a workload that Graviton serves badly; the limits come from the software, below.

What does not fit

Will my application run on Graviton without changes? It depends on the language it is written in, and AWS says so plainly:

Applications that are based on interpreted languages (such as Java, Node, Python) not reliant on native CPU instruction sets should run with minimal to no changes. Applications developed using compiled languages (C, C++, GoLang) will need to be re-compiled to generate Arm binaries.

AWS, Amazon EC2 FAQs

The same answer adds that "Most Linux distributions as well as containers (Docker, Kubernetes, Amazon ECS, Amazon EKS, Amazon ECR) support the Arm architecture", and the machine image matters as much as the code: "x86 AMIs are not compatible with M6g and A1 instances". Windows does not fit at all: "Graviton instances only run the Linux operating system. As a result, Graviton instances are a strong offering for .NET running on Linux, but aren't an option for the Windows operating system or legacy .NET Framework applications" (AWS Prescriptive Guidance). GPU instances and AWS's machine learning chips are other series of instances, chosen for their accelerator before their processor. Decide what stays on x86 is the lever for what cannot move yet.

In short: Graviton fits Linux workloads, those in interpreted languages and those on a managed service first; compiled code moves once it is rebuilt, and Windows stays on x86.

How AWS Graviton pricing works

Graviton has no price of its own. Each service prices its Graviton option on its own lines, so "is AWS Graviton cheaper?" has one answer per service. This section reads the Paris price lists service by service, with one pairing rule: the same series (m, c, r, t) and size, Graviton against the Intel or AMD type of the same generation; where a service offers no Intel type of that generation, the newest one it offers, said each time. It keeps AWS's price-performance figures apart, then turns to the commitments and to the bill.

Is AWS Graviton cheaper? The gap, service by service

On every service, yes, at least at one generation: in Paris, almost every Graviton type costs less per hour than the x86 type it is paired with, by a gap each service sets, a fraction of EC2's on the managed databases. The exception is ElastiCache's Graviton3 and Graviton4 nodes, which cost more (OpenSearch Service and ElastiCache):

What Graviton takes off the hourly list price, by service and generation, in Paris, On-Demand

Service and generationDiscount, computedIntel, per hourGraviton, per hour
EC2 · Graviton2m6g.large against m6i.large19.6% less$0.112$0.09
EC2 · Graviton3m7g.large against m7i.large19.0% less$0.1176$0.0952
EC2 · Graviton4m8g.large against m8i.large15.2% less$0.12348$0.10472
OpenSearch Service · Graviton3m7g.large.search against m7i.large.search16.0% less$0.188$0.158
OpenSearch Service · Graviton4against m7i.large.search, an older Intel type7.4% less$0.188$0.174
RDS for PostgreSQL · Graviton2db.m6g.large against db.m6i.large10.7% less$0.206$0.184
RDS for PostgreSQL · Graviton3db.m7g.large against db.m7i.large5.3% less$0.206$0.195
RDS for PostgreSQL · Graviton4against db.m7i.large, an older Intel class5.3% less$0.206$0.195
Aurora PostgreSQL · Graviton4against db.r7i.large, an older Intel class5.1% less$0.335$0.318
ElastiCache · Graviton2against cache.m5.large, an older Intel node5.0% less$0.144$0.1368

USD, before tax. AWS Price List, eu-west-3, offer files published October 6, 2026, October 14, 2026, October 15, 2026 and October 16, 2026, fetched October 16, 2026.

On OpenSearch Service, RDS, Aurora and ElastiCache, the newer Graviton types are set against an older Intel type, the newest each service offers. AWS Lambda and AWS Fargate are metered by the GB-second and the vCPU-hour, so they are not on this chart: each of their Arm rates costs 20.0% less than its x86 rate, Lambda's requests excepted (Lambda and Fargate).

Amazon EC2: Intel, AMD and the generations

Against Intel, the EC2 gap is the same across the series of a generation, c, m and r alike, and the burstable t4g.small costs 20.3% less than t3.small. The gap narrowed with Graviton4 because the Graviton price rose more than the Intel one: m8g.large costs 10.0% more than m7g.large, where m8i.large costs 5.0% more than m7i.large, computed.

Against AMD, the gap is smaller. Paris prices no seventh- or eighth-generation AMD EC2 type, so the sixth generation and the burstable family are where Graviton, Intel and AMD can be set side by side:

Graviton against Intel and against AMD in Paris, On-Demand: each pair drawn against its x86 price

Pairx86, per hourGraviton, per hourChange, computed
m6i.large → m6g.largeIntel$0.112$0.0919.6% less
m6a.large → m6g.largeAMD$0.1008$0.0910.7% less
t3.small → t4g.smallIntel$0.0236$0.018820.3% less
t3a.small → t4g.smallAMD$0.0212$0.018811.3% less

USD, before tax. AWS Price List, eu-west-3, offer file published October 15, 2026, fetched October 16, 2026.

AMD already costs 10.0% less than Intel at this generation, computed, so m6g.large costs 10.7% less than m6a.large, where it costs 19.6% less than m6i.large. The EC2 article prices the move for instances.

RDS and Aurora: a smaller gap, narrower since Graviton3

On the managed databases, Graviton saves much less than on EC2, and less since Graviton3 than at Graviton2. On RDS for PostgreSQL, the Graviton4 class saves this much against the newest Intel class of its series in Paris:

Computed from Paris list prices

4.8% lessper hour: db.r8g.large (Graviton4) against db.r7i.large, the newest Intel memory-optimized class Paris prices; RDS for PostgreSQL, Single-AZ, On-Demand. AWS's headline for EC2 is up to 20%.

Computed from the AWS Price List · eu-west-3 · Oct 6, 2026

Two prices explain it. The Graviton class rose with Graviton3: db.m7g.large costs 6.0% more than db.m6g.large, and db.m8g.large costs what db.m7g.large costs. The Intel class did not move: db.m7i.large costs what db.m6i.large costs, $0.206 per hour, and Paris has no db.m8i or db.r8i, so Graviton4 is set against a seventh-generation Intel class. So the gap narrowed at Graviton3 and has not moved since. RDS for PostgreSQL also has no db.r7g in Paris, though the RDS User Guide documents the class, so its memory-optimized pairs jump from db.r6g to db.r8g. Every pair, by generation:

RDS for PostgreSQL and Aurora PostgreSQL in Paris: the Graviton gap by generation, Single-AZ, On-Demand (computed)

Graviton against Intel Generation Gap, computed
RDS: db.t4g.small against db.t3.small Graviton2 12.2% less
RDS: db.m6g.large against db.m6i.large Graviton2 10.7% less
RDS: db.r6g.large against db.r6i.large Graviton2 10.2% less
RDS: db.m7g.large against db.m7i.large Graviton3 5.3% less
RDS: db.m8g.large against db.m7i.large Graviton4, older Intel 5.3% less
RDS: db.r8g.large against db.r7i.large Graviton4, older Intel 4.8% less
Aurora: db.t4g.medium against db.t3.medium Graviton2 12.0% less
Aurora: db.r6g.large against db.r6i.large Graviton2 10.7% less
Aurora: db.r7g.large against db.r7i.large Graviton3 5.1% less
Aurora: db.r8g.large against db.r7i.large Graviton4, older Intel 5.1% less

Computed from the AWS Price List, eu-west-3, offer file published October 6, 2026, fetched October 16, 2026.

The pages this article cites give no price-performance figure for these classes: the RDS User Guide's sentences on the eighth generation are about vCPUs and memory, not price. The RDS article prices the move class by class, and pattern 2 a Multi-AZ database.

OpenSearch Service and ElastiCache

On OpenSearch Service, m7g.large.search costs 16.0% less than m7i.large.search, its own generation's Intel type, and m8g.large.search 7.4% less than the same m7i.large.search, since the service lists no m8i: the Graviton4 type costs 10.1% more than the Graviton3 one. ElastiCache documents no Intel node newer than cache.m5 and cache.r5, so this article sets every Graviton node against them, by its pairing rule, and there only the Graviton2 nodes cost less:

ElastiCache Valkey nodes in Paris against the newest Intel nodes, cache.m5 and cache.r5, On-Demand

PairIntel, per hourGraviton, per hourChange, computed
cache.m5.large → cache.m6g.largeGraviton2$0.144$0.13685.0% less
cache.m5.large → cache.m7g.largeGraviton3$0.144$0.14561.1% more
cache.m5.large → cache.m8g.largeGraviton4$0.144$0.14772.6% more
cache.r5.large → cache.r6g.largeGraviton2$0.2024$0.1925.1% less
cache.r5.large → cache.r7g.largeGraviton3$0.2024$0.20410.8% more
cache.r5.large → cache.r8g.largeGraviton4$0.2024$0.20621.9% more

USD, before tax. AWS Price List, eu-west-3, offer file published October 14, 2026, fetched October 16, 2026.

The Graviton4 nodes list a little more memory than the Intel ones (6.79 GiB for cache.m8g.large, 6.38 GiB for cache.m5.large, in the price list), and cost 2.6% more (cache.m8g.large) and 1.9% more (cache.r8g.large) per hour. It follows that on ElastiCache, a move to Graviton saves money at Graviton2 only; at Graviton3 and Graviton4 it is a move for what the newer node does, to measure, not for its price.

Lambda and Fargate: one gap on duration, vCPU and memory

Lambda and Fargate price Arm by the same units as x86, and in Paris each Arm rate costs 20.0% less than its x86 rate, except Lambda's requests, which cost the same:

AWS Lambda and AWS Fargate in Paris: each Arm rate against its x86 rate

Rate Arm, list price Against x86, computed
Lambda duration, per GB-second $0.0000133334 20.0% less
Lambda requests, per million $0.20 the same
Fargate, per vCPU-hour $0.03888 20.0% less
Fargate memory, per GB-hour $0.00424 20.0% less

Computed from the AWS Price List, eu-west-3, offer files published September 11, 2026 and October 16, 2026, fetched October 16, 2026.

Lambda's guide stays qualitative: "Lambda functions that use arm64 architecture (AWS Graviton2 processor) can achieve significantly better price and performance than the equivalent function running on x86_64 architecture" (instruction set architectures). It follows that a function's bill falls by less than its duration rate, since its requests do not move: pattern 3's bill is 18.5% less after the move. The Lambda article weighs the move on every duration tier.

Price or price-performance: AWS's 20% and 40%

AWS gives both kinds of figure, for one service, in one sentence:

AWS Fargate powered by AWS Graviton processors delivers up to 40% improved price/performance at 20% lower cost over comparable Intel x86-based Fargate for a variety of workloads such as application servers, web services, high-performance computing, and media processing.

AWS, AWS Fargate FAQs

The 20% is a price, and the Paris price list matches it to the decimal. The 40% is price-performance, the work done per dollar, as AWS measured it on its workloads: performance enters it, and only a measurement on your own workload says what you get. AWS's other price-performance figures for Graviton each set their own pair:

AWS's price-performance figures for Graviton, and what each one compares

AWS's figure, and where What it compares
"up to 40% better price performance over comparable x86-based instances" (Getting started) Graviton EC2 instances against x86 ones, no generation named
M6g: "up to 40% better price/performance over M5 instances" (Amazon EC2 FAQs) Graviton2 against the Intel M5
X2gd: "up to 55% better price performance compared to x86-based X1 instances" (EC2 FAQs) Graviton2 against an older Intel family
.NET: "up to 45 percent savings when you switch to Graviton" (Prescriptive Guidance) No comparator named, for .NET workloads

The pages this article cites give no such figure for RDS, Aurora, ElastiCache or OpenSearch Service. It follows that the list-price gap is the one figure that holds for every workload, and a price-performance figure the one that says what a workload gains: this article computes the first, and leaves the second to a measurement.

Savings Plans and Reserved Instances on Graviton

Do Savings Plans apply to Graviton? Yes: Graviton usage is usage like any other. "Compute Savings Plans provide the most flexibility and prices that are up to 66% off of On-Demand rates", and "They also apply to your Fargate and Lambda usage" (Savings Plans types); the Savings Plans FAQ has them "automatically apply to EC2 instance usage regardless of instance family, size, AZ, region, OS or tenancy, and also apply to Fargate and Lambda usage", and says nothing of the architecture. In Paris, most plans take the same share off Graviton and x86; two do not:

What each commitment takes off On-Demand in Paris, No Upfront, Graviton against x86 (computed)

Usage and commitment Graviton x86
EC2 m7g.large and m7i.large, 1-year EC2 Instance Savings Plan 34.0% less 34.0% less
EC2 m7g.large and m7i.large, 1-year Compute Savings Plan 24.2% less 24.2% less
EC2 c7g.large and c7i.large, 1-year Compute Savings Plan 21.0% less 23.8% less
EC2 c8g.large and c8i.large, 3-year Compute Savings Plan 44.0% less 47.8% less
Lambda duration, 1-year Compute Savings Plan 10.0% less 10.0% less
Fargate vCPU, 3-year Compute Savings Plan 46.0% less 40.0% less
RDS db.m7g.large and db.m7i.large, 1-year Database Savings Plan 20.0% less 20.0% less

Computed from the AWS Price List, eu-west-3, offer files published September 11, 2026, October 6, 2026, October 13, 2026, October 15, 2026 and October 16, 2026, fetched October 16, 2026.

EC2 Instance Savings Plans, Reserved Instances, Lambda's Compute Savings Plan and the Database Savings Plan take the same share off Graviton and Intel, so the gap carries into the committed price: an m7g.large on a 1-year EC2 Instance Savings Plan costs 19.0% less than an m7i.large on the same plan, as it does On-Demand. On EC2, a Compute Savings Plan does the same for the m, r and t types, but takes less off the c types: committed for three years, c8g.large costs 9.0% less than c8i.large, against 15.2% less On-Demand. On Fargate it goes the other way: committed for three years, an ARM64 vCPU-hour costs 28.0% less than an X86_64 one on the same plan, computed. Together, Graviton and a commitment go further than either:

Two levers together, over three years

63.1% lessper hour: an m7g.large on a 3-year No Upfront EC2 Instance Savings Plan against an m7i.large On-Demand, in Paris.

Computed from the AWS Price List · eu-west-3 · Oct 13 and Oct 15, 2026

Two limits in Paris. Reserved Instances exist for c8g, m8g and r8g, and none for c8i, m8i or r8i, so the eighth generation compares on Savings Plans only. And Database Savings Plans have one term there: the 1-year No Upfront plan is the only one of the offer for eu-west-3, so a three-year commitment on RDS or Aurora is a Reserved Instance. Commit after the move, not before says why the order of the two levers matters.

Reading the Graviton lines of a bill

A Graviton line reads as its service's own usage type, after the Region's code, EUW3- in Paris: the instance type names the processor, or an ARM in the usage type does:

What Graviton lines look like on a bill in Paris, after EUW3-

Service Usage type of a Graviton line
Amazon EC2 BoxUsage:m7g.large, where the Intel type reads BoxUsage:m7i.large
RDS and Aurora InstanceUsage:db.r8g.large
ElastiCache NodeUsage:cache.m6g.large
OpenSearch Service ESInstance:m8g.large
AWS Lambda Lambda-GB-Second-ARM and Request-ARM
AWS Fargate Fargate-ARM-vCPU-Hours:perCPU and Fargate-ARM-GB-Hours

The services' own articles read the rest of their lines: the EC2 bill, the RDS bill, the Lambda bill.

In short: Graviton is cheaper per hour on almost every pair priced here, by a gap each service sets, not a flat 20%: read it in that service's price list, check what the commitment you plan does to it, and leave AWS's "up to 40%" to a measurement.

Architecture patterns: four moves to Graviton and what they cost

Four illustrative configurations in Paris, each priced before the move, after it, and with a commitment bought once the move is measured, line by line from the AWS Price List: an EC2 web tier, an RDS for PostgreSQL database, a Lambda function and containers on Fargate. None is a client case; every amount is computed, and each card lists its assumptions and what it leaves out. One cost is in none of them: the engineering of the move, the arm64 builds and the tests, which no price list prices and which differs with every codebase. To give it a scale, each card says how long a thousand dollars of that work takes to pay back from the move alone.

Pattern 1 of 4 · Illustrative configuration

An EC2 web tier moved from Intel to Graviton

An Application Load Balancer sends traffic to an EC2 Auto Scaling group of four general-purpose instances across two Availability Zones in Paris, running Linux web servers: moved from m7i.large to m7g.large, then committed for one year.

A web tier moved from Intel to GravitonAn Application Load Balancer sends requests to an EC2 Auto Scaling group of four instances, two in each of two Availability Zones of the Paris Region. The move changes the instances from m7i.large to m7g.large, on an arm64 AMI; the load balancer and the group stay as they are.Region eu-west-3 (Paris)Availability Zone 1Availability Zone 2Auto Scaling groupUsersApplicationLoad Balancerm7i.large →m7g.largem7i.large →m7g.largem7i.large →m7g.largem7i.large →m7g.large123
A web tier moved from Intel to Graviton Illustrative configuration in Paris, not a client case.
  1. The Application Load Balancer and its listener rules stay as they are: they send requests to the group, not to an instance type.
  2. After the move, the group runs four m7g.large instances, two in each zone: $0.0952 per hour each in Paris, where an m7i.large costs $0.1176.
  3. Each instance needs an arm64 AMI: x86 AMIs do not run on Graviton.

The move alone makes the bill 19.0% less, the gap of m7g.large to m7i.large, and pays back a thousand dollars of migration work in 15.3 months; the 1-year plan then makes the moved bill 34.0% less. The Application Load Balancer, part of Elastic Load Balancing, is not counted: the move does not change it. Bought before the move, an EC2 Instance Savings Plan for the m7i family would not have covered the m7g instances: Commit after the move, not before prices that mistake.

Before · 4 × m7i.large, On-Demand: compute $343.39, total $343.39 a month.

With the levers · 4 × m7g.large, 1-year EC2 Instance Savings Plan: compute $183.38, total $183.38 a month.

With the levers: $160.01 a month less (46.6% less), computed.

An EC2 web tier moved from Intel to Graviton, one lever at a time: the bill a month, computed

StepA month, computedChange
4 × m7i.large, On-DemandBefore the levers$343.39—
Moved to m7g.large, On-DemandLever: Move EC2 workloads by language$277.98−$65.41
1-year EC2 Instance Savings PlanLever: Commit after the move, not before$183.38−$94.60

USD, before tax. AWS Price List, eu-west-3, offer files published October 13, 2026 and October 15, 2026, fetched October 16, 2026.

The bills line by line, the assumptions and the sources

An EC2 web tier moved from Intel to Graviton, before: 4 × m7i.large, On-Demand Illustrative

The group's four Intel instances, On-Demand.

LineA month
Compute
m7i.large, On-Demand4 instances × 730 h × $0.1176 /h$343.39
A month, computed$343.39

An EC2 web tier moved from Intel to Graviton, with the levers: 4 × m7g.large, 1-year EC2 Instance Savings Plan Illustrative

The same four instances on Graviton3, committed for one year, No Upfront, once the move is measured.

LineA month
Compute
m7g.large, 1-year EC2 Instance Savings Plan, No Upfront4 instances × 730 h × $0.0628 /h$183.38
A month, computed$183.38

4 × m7g.large, On-Demand, no commitment: $277.98 a month, 19.0% less than before, computed.

Assumptions

  • Illustrative configuration in Paris (eu-west-3), not a client case.
  • Four instances before and after: the move keeps their count, their size and the load balancer, an assumption to measure on the workload.
  • One vCPU of an m7g.large is a physical core, where one of an m7i.large is a thread of a core: the same number of vCPUs is not the same work in every workload.
  • The 1-year EC2 Instance Savings Plan, No Upfront, commits to the m7g family in Paris and is bought after the move: a plan bought for m7i would not cover m7g.

Not counted

  • The Application Load Balancer, the EBS volumes and data transfer, the same before and after.
  • The engineering cost of the move (an arm64 build, an arm64 AMI, tests): real, different for every codebase, and on no price list.

Sources

USD before tax, 730 h a month. AWS Price List, eu-west-3, offer files published October 13, 2026 and October 15, 2026, fetched October 16, 2026. Illustrative configuration, not a client case.

Pattern 2 of 4 · Illustrative configuration

An RDS for PostgreSQL Multi-AZ database moved to a Graviton class

A production PostgreSQL database runs Multi-AZ on a memory-optimized DB instance class, a primary and a synchronous standby in two Availability Zones: moved from db.r7i.large to db.r8g.large, then reserved for three years.

A Multi-AZ PostgreSQL database moved to a Graviton classAn RDS for PostgreSQL Multi-AZ deployment has a primary instance in one Availability Zone and a standby in another, kept in sync by synchronous replication. Moving both from an Intel DB instance class to a Graviton one is a class change: the engine, the data and the endpoint stay the same.Region eu-west-3 (Paris)Availability Zone AAvailability Zone BPrimarydb.r7i → db.r8gStandbydb.r7i → db.r8g123
A Multi-AZ PostgreSQL database moved to a Graviton class Illustrative configuration in Paris, not a client case.
  1. After the move, db.r8g.large (AWS Graviton4) Multi-AZ costs $0.561 per hour for PostgreSQL in Paris, both instances included.
  2. Before, the db.r7i.large (Intel) Multi-AZ deployment cost $0.588 per hour.
  3. The standby is kept in sync by synchronous replication. RDS applies the class change to the standby first, then fails over to it: a few minutes of unavailability, and the same endpoint.

The class change alone makes the bill 4.6% less, and pays back a thousand dollars of migration work in 50.7 months; on RDS, the 3-year Reserved Instance does most of the work, making the moved bill 53.0% less. A Database Savings Plan, the other way to commit on RDS, has a single term in Paris, one year.

Before · db.r7i.large, Multi-AZ, On-Demand: compute $429.24, total $429.24 a month.

With the levers · db.r8g.large, Multi-AZ, 3-year Reserved Instance: compute $192.43, total $192.43 a month.

With the levers: $236.81 a month less (55.2% less), computed.

An RDS for PostgreSQL Multi-AZ database moved to a Graviton class, one lever at a time: the bill a month, computed

StepA month, computedChange
db.r7i.large, Multi-AZ, On-DemandBefore the levers$429.24—
Moved to db.r8g.large, On-DemandLever: Move managed services first$409.53−$19.71
3-year Reserved InstanceLever: Commit after the move, not before$192.43−$217.10

USD, before tax. AWS Price List, eu-west-3, offer file published October 6, 2026, fetched October 16, 2026.

The bills line by line, the assumptions and the sources

An RDS for PostgreSQL Multi-AZ database moved to a Graviton class, before: db.r7i.large, Multi-AZ, On-Demand Illustrative

The Intel class, Multi-AZ, On-Demand.

LineA month
Compute
db.r7i.large, Multi-AZ, On-Demand1 instance × 730 h × $0.588 /h$429.24
A month, computed$429.24

An RDS for PostgreSQL Multi-AZ database moved to a Graviton class, with the levers: db.r8g.large, Multi-AZ, 3-year Reserved Instance Illustrative

The Graviton4 class, reserved for three years, No Upfront, once the move is measured.

LineA month
Compute
db.r8g.large, Multi-AZ, 3-year Reserved Instance, No Upfront1 instance × 730 h × $0.2636 /h$192.43
A month, computed$192.43

db.r8g.large, Multi-AZ, On-Demand, no commitment: $409.53 a month, 4.6% less than before, computed.

Assumptions

  • Illustrative configuration in Paris (eu-west-3), not a client case.
  • Storage, backups and the parameter group stay as they are: only the DB instance class changes.
  • A class change makes the database unavailable for a few minutes; in Multi-AZ, RDS applies it to the standby first, then fails over (Amazon RDS FAQs).
  • db.r8g.large (Graviton4) is the Graviton class the database moves to: Paris prices no db.r7g for RDS for PostgreSQL, and no db.r8i.
  • The 3-year Reserved Instance, No Upfront, is bought after the move, for the class the database runs on.

Not counted

  • Storage, backup storage, data transfer and RDS Proxy, the same before and after (the Amazon RDS article prices them).
  • The engineering cost of the move: testing the database on the new class.

Sources

USD before tax, 730 h a month. AWS Price List, eu-west-3, offer file published October 6, 2026, fetched October 16, 2026. Illustrative configuration, not a client case.

Pattern 3 of 4 · Illustrative configuration

A Lambda function moved from x86_64 to arm64

A function serves 20 million requests a month, each 150 ms of billed duration at 1,024 MB, invoked through Amazon API Gateway (not counted): moved from x86_64 to arm64, then committed for one year with a Compute Savings Plan.

A Lambda function moved from x86_64 to arm64API Gateway invokes a Lambda function in the Paris Region through an alias. The function's architecture moves from x86_64 to arm64, a setting, not another service; the code and its dependencies need an arm64 build, and the alias splits traffic between the two versions while the arm64 one is measured.Region eu-west-3 (Paris)API GatewayAlias liveweighted routingVersionx86_64Versionarm64123
A Lambda function moved from x86_64 to arm64 Illustrative configuration in Paris, not a client case.
  1. API Gateway invokes the alias, whatever version runs behind it.
  2. The x86_64 version costs $0.0000166667 per GB-second of duration; it keeps a small share of the traffic while the arm64 version is measured (dashed: the path being phased out).
  3. The arm64 version costs $0.0000133334 per GB-second; a request costs $0.20 per million on either architecture.

Duration costs 20.0% less and requests the same, so the bill is 18.5% less, and a thousand dollars of migration work takes 100.0 months to pay back at this traffic; the 1-year plan then makes the moved bill 9.1% less, since it discounts duration only. Amazon API Gateway, in front of the function, is not counted: the move does not change it.

Before · x86_64, On-Demand: compute $54.00, total $54.00 a month.

With the levers · arm64, 1-year Compute Savings Plan: compute $40.00, total $40.00 a month.

With the levers: $14.00 a month less (25.9% less), computed.

A Lambda function moved from x86_64 to arm64, one lever at a time: the bill a month, computed

StepA month, computedChange
x86_64, On-DemandBefore the levers$54.00—
Moved to arm64, On-DemandLever: Set Lambda functions to arm64$44.00−$10.00
1-year Compute Savings PlanLever: Commit after the move, not before$40.00−$4.00

USD, before tax. AWS Price List, eu-west-3, offer files published October 13, 2026 and October 16, 2026, fetched October 16, 2026.

The bills line by line, the assumptions and the sources

A Lambda function moved from x86_64 to arm64, before: x86_64, On-Demand Illustrative

The function on x86_64, On-Demand.

LineA month
Compute$54.00
Lambda requests, x86: 20 million20 M requests × $0.20 /M req$4.00
Lambda duration, x86: 20 million × 0.15 s × 1 GB3,000,000 GB-s × $0.0000166667 /GB-s$50.00
A month, computed$54.00

A Lambda function moved from x86_64 to arm64, with the levers: arm64, 1-year Compute Savings Plan Illustrative

The same function on arm64, its duration committed for one year, No Upfront, once the move is measured.

LineA month
Compute$40.00
Lambda requests, Arm: 20 million20 M requests × $0.20 /M req$4.00
Lambda duration, Arm, 1-year Compute Savings Plan: 20 million × 0.15 s × 1 GB3,000,000 GB-s × $0.0000120001 /GB-s$36.00
A month, computed$40.00

arm64, On-Demand, no commitment: $44.00 a month, 18.5% less than before, computed.

Assumptions

  • Illustrative configuration in Paris (eu-west-3), not a client case.
  • 20 million requests a month, each a billed duration of 150 ms at 1,024 MB: 3,000,000 GB-seconds.
  • The function runs as fast on arm64 as on x86_64: an assumption to measure, with an alias that splits traffic between the two versions.
  • Requests cost the same on both architectures, and the Compute Savings Plan leaves them at their On-Demand rate: only duration changes.

Not counted

  • Amazon API Gateway, CloudWatch Logs, data transfer and the free tier.

Sources

USD before tax, 730 h a month. AWS Price List, eu-west-3, offer files published October 13, 2026 and October 16, 2026, fetched October 16, 2026. Illustrative configuration, not a client case.

Pattern 4 of 4 · Illustrative configuration

Containers on ECS with Fargate moved to ARM64

An Amazon ECS service runs 10 Fargate tasks of 1 vCPU and 2 GB around the clock, behind a load balancer (not counted): moved from X86_64 to ARM64 with a multi-architecture image, then committed for three years with a Compute Savings Plan.

Containers on Amazon ECS moved from Fargate X86_64 to Fargate ARM64Amazon ECS runs a service's tasks on AWS Fargate in the Paris Region. Setting the task definition's CPU architecture to ARM64 runs the same tasks on Graviton, from an Arm-compatible or multi-architecture image in Amazon ECR, built before the service is updated.Region eu-west-3 (Paris)Amazon ECS serviceMulti-arch imagein Amazon ECRTaskARM64TaskARM64TaskX86_64, before12
Containers on Amazon ECS moved from Fargate X86_64 to Fargate ARM64 Illustrative configuration in Paris, not a client case.
  1. Fargate runs Arm tasks from Arm-compatible or multi-architecture images in Amazon ECR, built before the move; the task definition sets the CPU architecture to ARM64.
  2. An ARM64 task costs $0.03888 per vCPU-hour and $0.00424 per GB-hour in Paris; the X86_64 task it replaces (dashed) cost $0.0486 and $0.0053.

The move makes the bill 20.0% less, the full Fargate gap, since both rates fall by the same share, and pays back a thousand dollars of migration work in 11.6 months; the 3-year plan then makes the moved bill 46.0% less, more than the same plan would take off X86_64, because its Paris rates discount ARM64 more (Savings Plans and Reserved Instances on Graviton).

Before · X86_64, On-Demand: compute $432.16, total $432.16 a month.

With the levers · ARM64, 3-year Compute Savings Plan: compute $186.73, total $186.73 a month.

With the levers: $245.43 a month less (56.8% less), computed.

Containers on ECS with Fargate moved to ARM64, one lever at a time: the bill a month, computed

StepA month, computedChange
X86_64, On-DemandBefore the levers$432.16—
Moved to ARM64, On-DemandLever: Build multi-architecture container images$345.72−$86.44
3-year Compute Savings PlanLever: Commit after the move, not before$186.73−$158.99

USD, before tax. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 13, 2026, fetched October 16, 2026.

The bills line by line, the assumptions and the sources

Containers on ECS with Fargate moved to ARM64, before: X86_64, On-Demand Illustrative

The service's tasks on X86_64, On-Demand.

LineA month
Compute$432.16
Fargate X86_64 vCPU: 10 tasks × 1 vCPU × 730 h7,300 vCPU-h × $0.0486 /vCPU-h$354.78
Fargate X86_64 memory: 10 tasks × 2 GB × 730 h14,600 GB-h × $0.0053 /GB-h$77.38
A month, computed$432.16

Containers on ECS with Fargate moved to ARM64, with the levers: ARM64, 3-year Compute Savings Plan Illustrative

The same tasks on ARM64, committed for three years, No Upfront, once the move is measured.

LineA month
Compute$186.73
Fargate ARM64 vCPU, 3-year Compute Savings Plan: 10 tasks × 1 vCPU × 730 h7,300 vCPU-h × $0.021 /vCPU-h$153.30
Fargate ARM64 memory, 3-year Compute Savings Plan: 10 tasks × 2 GB × 730 h14,600 GB-h × $0.00229 /GB-h$33.43
A month, computed$186.73

ARM64, On-Demand, no commitment: $345.72 a month, 20.0% less than before, computed.

Assumptions

  • Illustrative configuration in Paris (eu-west-3), not a client case.
  • 10 tasks of 1 vCPU and 2 GB, running all month (730 hours).
  • A multi-architecture image in Amazon ECR, built before the move, lets the task definition's CPU architecture change to ARM64 without a second image to maintain.
  • The 3-year Compute Savings Plan, No Upfront, is bought after the move, on the ARM64 usage: in Paris its rates take a larger share off ARM64 than off X86_64 (computed).

Not counted

  • The Application Load Balancer, Amazon ECR storage, CloudWatch Logs and data transfer.
  • The engineering cost of building and testing the multi-architecture image.

Sources

USD before tax, 730 h a month. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 13, 2026, fetched October 16, 2026. Illustrative configuration, not a client case.

Across the four, the move alone makes the bill from 4.6% less (RDS) to 20.0% less (Fargate), and a thousand dollars of migration work pays back in 11.6 months on the Fargate service but 100.0 months on the Lambda function, computed. The commitments differ in term, one year on EC2 and Lambda, three on RDS and Fargate, so their results are not compared across the cards.

In short: The move sets a lower rate and the commitment takes its share off that rate: the two compound, and the commitment comes second, so that it covers the Graviton usage.

Want the same levers on your own bill?

Get a free audit

How to reduce costs with AWS Graviton

Each lever below comes from AWS documentation; their order is this article's. Graviton has nothing to trim: its levers are a migration path, from the moves that cost the least work to those that cost the most, with the commitment last, once the usage it covers runs on Graviton. See the gap, move the managed services, then the functions and the containers, then EC2, measure, keep on x86 what cannot move, and commit to what remains. The levers, in that order:

  1. Lever 01,SeeSee the gap, service by serviceAlways, and first
  2. Lever 02,SeeSize the opportunity before movingBefore spending engineering time
  3. Lever 03,ReshapeMove managed services firstDatabases, caches and search clusters on an Intel class
  4. Lever 04,ReshapeSet Lambda functions to arm64Functions whose dependencies have arm64 builds
  5. Lever 05,ReshapeBuild multi-architecture container imagesContainers on Amazon ECS and Fargate
  6. Lever 06,ReshapeMove EC2 workloads by languageAfter the managed services, functions and containers
  7. Lever 07,ReshapeMeasure price-performance on your workloadBefore a commitment, and after each move
  8. Lever 08,RouteDecide what stays on x86Windows, and code that cannot move yet
  9. Lever 09,CommitCommit after the move, not beforeSteady usage, once the move is measured
  10. Lever 10,ReviewReview as new generations shipQuarterly or yearly, by the workload's share of the bill

Lever 01 · See

See the gap, service by service

When it applies
Before moving anything: each service prices its Arm option on its own line, and the gap differs by service and by generation.
Watch out
Measure your saving from the type you run today; the same-generation pair is the architecture's discount, not your saving.
Tools
AWS Price List

Start from the price lists, not from a headline: each service prices its Arm option on its own line, and in Paris a Graviton type costs from 4.8% less on RDS for PostgreSQL to 20.3% less on EC2's burstable instances, against its x86 type, and more on ElastiCache's newer nodes (Is AWS Graviton cheaper?). Two pairs answer two questions: the same-generation pair is the architecture's discount, and your saving is measured from the type you run today:

One Graviton type against two Intel types in Paris, On-Demand: each pair drawn against its Intel price

PairIntel, per hourGraviton, per hourChange, computed
m8i.large → m8g.largeThe architecture's discount$0.12348$0.1047215.2% less
m7i.large → m8g.largeYour saving, from m7i.large$0.1176$0.1047211.0% less
m7i.large → m7g.largeYour saving, from m7i.large$0.1176$0.095219.0% less

USD, before tax. AWS Price List, eu-west-3, offer file published October 15, 2026, fetched October 16, 2026.

From m7i.large, m7g.large saves more per hour than m8g.large; whether m8g.large's extra performance is worth its higher price is a measurement. On the bill, the usage types tell the Graviton lines from the others (Reading the Graviton lines of a bill).

Lever 02 · See

Size the opportunity before moving

When it applies
Before choosing which workloads to move, and in what order.
Watch out
Compute Optimizer recommends Lambda memory sizes for x86_64 functions only, not a move to arm64; the Graviton Savings Dashboard needs the Cost and Usage Reports and the Inventory Collector Module of Data Collection first.
Tools
AWS Compute OptimizerGraviton Savings Dashboard

Two AWS tools size a move before any code changes:

The two AWS tools that size a move to Graviton, and their limits

Tool What it gives Its limits
AWS Compute Optimizer EC2 and RDS recommendations with a Graviton preference; a migration effort rating on EC2 For Lambda, memory sizes for x86_64 functions only
Graviton Savings Dashboard The usage already on Graviton, and the potential savings of the rest, from the bill Needs the Cost and Usage Reports and the Inventory Collector Module first

AWS Compute Optimizer takes a "Graviton (aws-arm64)" CPU architecture preference for EC2, and the same for RDS (the RDS article); for Lambda, "Compute Optimizer supports only functions that use x86_64 architecture" (Configure Lambda Event Function memory), so it does not say whether to move to arm64. "In as little as 1 hour, the Graviton Savings Dashboard helps you evaluate and find the potential savings of moving workloads to AWS Graviton" (Graviton Savings Dashboard), once the "AWS Cost and Usage Reports" and the "Inventory Collector Module" of Data Collection are in place. Size by service and by generation: a database fleet moved to Graviton saves a smaller share than the same spend on EC2 instances.

Lever 03 · Reshape

Move managed services first

When it applies
First among the moves: on Amazon RDS, Aurora, ElastiCache and OpenSearch Service, the move is a change of DB instance class, node type or instance type.
Watch out
A class change makes an RDS database unavailable for a few minutes (in Multi-AZ, the standby first, then a failover); on ElastiCache, only the Graviton2 nodes cost less than the Intel ones.

On the managed services, the move is a change of class, not of code. On RDS, "You can modify a DB instance to use one of the DB instance classes powered by AWS Graviton4 processors. To do so, complete the same steps as with any other DB instance modification" (DB instance class types). The modification costs a short outage: "your database will be temporarily unavailable while the DB instance class is modified. This period of unavailability typically lasts only a few minutes", and in Multi-AZ "these operations occur first on the standby, prior to automatic failover" (Amazon RDS FAQs). Each managed service takes Graviton its own way:

How each managed service takes Graviton, and what to watch

Service The move Watch out
Amazon RDS A DB instance class, changed like any other modification A few minutes of unavailability; in Multi-AZ, the standby first, then a failover
Amazon Aurora A memory-optimized or burstable DB instance class No general-purpose class to move to
Amazon ElastiCache A node type Only the Graviton2 nodes cost less than cache.m5 and cache.r5
Amazon OpenSearch Service An instance type The whole cluster at once: no mixing

It is the move with the least engineering and, in Paris, the smallest gap: plan it for its ease, not for its saving. Pattern 2 prices a Multi-AZ database.

Lever 04 · Reshape

Set Lambda functions to arm64

When it applies
When the function's code, layers, extensions and container image have arm64 builds.
Watch out
Measure before moving all the traffic: split it between an x86_64 and an arm64 version with alias routing.
Tools
Lambda aliases

A function moves to arm64 when its code allows it: "If the function code includes third-party dependencies, each library or package provides an arm64 version" (instruction set architectures), and its layers, extensions and container image must be arm64 too. Then measure, as the same guide advises: "use alias routing configuration to split traffic between the x86 and arm64 versions of the function, and compare the performance and latency". The duration rate is 20.0% less; requests do not move, so the bill is only 18.5% less in pattern 3, and the Lambda article prices every tier.

Lever 05 · Reshape

Build multi-architecture container images

When it applies
For every new Amazon ECS service on Fargate, and for existing ones at their next image build.
Watch out
Fargate runs Arm tasks for Amazon ECS only, from platform version 1.4.0; on Amazon EKS, Arm workloads run on EC2 nodes.
Tools
docker buildxAmazon ECR

Fargate runs a task on Graviton when its task definition says ARM64 and its image runs on Arm: "AWS Fargate allows you to run your Arm-based applications by using Arm-compatible container images or multi-architecture container images in Amazon Elastic Container Registry (Amazon ECR)" (AWS Fargate FAQs). AWS Prescriptive Guidance gives the build: "For a containerized workload, create a multi-architecture container image. You can do this by specifying multiple architectures in the Docker build command", with --platform linux/amd64,linux/arm64 in its example. What an Arm task needs, in all:

What an Arm task on Fargate needs

Part What it needs
Task definition The CPU architecture set to ARM64
Container image Arm-compatible or multi-architecture, in Amazon ECR
Platform Fargate platform version 1.4.0 or later
Cluster Amazon ECS; on Amazon EKS, Arm runs on EC2 nodes instead

The platform version is the ECS guide's (ECS task definitions for ARM workloads). Build both architectures from the first deployment and the move becomes a setting; pattern 4 prices ten tasks, and the EKS article covers Graviton nodes.

Lever 06 · Reshape

Move EC2 workloads by language

When it applies
After the managed services, the functions and the containers: on EC2 the move is yours, from the machine image up, and Porting Advisor reads compiled code before it is rebuilt.
Watch out
x86 AMIs do not run on Graviton, and compiled code (C, C++, Go) must be rebuilt for Arm; the Getting started page does not say whether AWS Transform custom is generally available.
Tools
Porting Advisor for GravitonAWS Transform custom

On EC2 the move is yours, from the machine image up, and the language decides its size. Interpreted code (Java, Node, Python) should move "with minimal to no changes" once the AMI is arm64; compiled code (C, C++, Go) is rebuilt for Arm first (What does not fit). Sort the instances by what they run, and move them in this order:

The order of an EC2 move to Graviton, by what the instances run

Order Workload The work
First Interpreted code on Linux: Java, Node, Python An arm64 AMI, then tests
Then Compiled code: C, C++, Go Porting Advisor, a rebuild for Arm, an arm64 AMI, tests
Not yet Windows, legacy .NET Framework, x86-only dependencies Stays on x86: the eighth lever

Before rebuilding compiled code, find what will not build: Porting Advisor for Graviton, a command line tool, "analyzes source code and generates a report highlighting missing and outdated libraries and code constructs that may require modification along with recommendations for alternatives" (Getting started with AWS Graviton). For Java, the same page names AWS Transform custom, with "a managed transformation for migrating Java applications from x86 to Graviton-based Amazon EC2 instances", and does not say whether it is generally available nor what it costs. The same size is not the same cores: an m7g.large has two cores where an m7i.large has one (One vCPU, one physical core), so measure before you change an instance count. Pattern 1 prices four instances moved; the EC2 article compares the families.

Lever 07 · Reshape

Measure price-performance on your workload

When it applies
Before sizing a commitment, and before calling a move done.
Watch out
Each of AWS's "up to" figures compares its own pair of instances; none is a promise for your workload.

Each of AWS's "up to" figures compares its own pair (Price or price-performance), and none promises a result on yours. AWS's .NET guide says it plainly: "It's important to test your application's performance profile when considering Graviton. Graviton isn't a replacement for solid software development practices" (AWS Prescriptive Guidance), and its own two worked examples save less than its headline of "up to 45 percent savings". Run the workload on both architectures at the same load, and compare what each costs per unit of work: requests served, jobs finished, queries answered. Between two Graviton generations, the price sets the bar:

The bar m8g.large must clear

10.0% moreper hour against m7g.large, in Paris: m8g.large costs less per unit of work only if it does more than this much extra work.

Computed from the AWS Price List · eu-west-3 · Oct 15, 2026

Measure before a commitment, since a plan fixes the usage it covers for one or three years, and after each move, since the instance count or size it needs may change.

Lever 08 · Route

Decide what stays on x86

When it applies
When a workload runs Windows or .NET Framework, or when Porting Advisor finds a blocker that cannot be fixed yet.
Watch out
A decision per workload, to revisit at each review: not a rule for the whole account.

Some workloads stay on x86, by design or for now. AWS names the first: Graviton instances "aren't an option for the Windows operating system or legacy .NET Framework applications". The others come from the code and the instance:

What stays on x86, and until when

Workload Why it stays Until
Windows, legacy .NET Framework Graviton instances run Linux only A port to .NET on Linux
GPU and machine learning instances Other series of instances, chosen for their accelerator Not a Graviton choice
Compiled code with an x86-only dependency No Arm binary to run An Arm build of the dependency

A Compute Savings Plan covers both architectures, so the x86 that remains needs no plan of its own (Commit after the move, not before). Revisit each case at the next review: a library with no Arm build may have one by then.

Lever 09 · Commit

Commit after the move, not before

When it applies
Once the move is measured and stable: commit to the Graviton usage that remains.
Watch out
An EC2 Instance Savings Plan or a reserved DB instance stays with its family or class: bought for Intel, it does not follow the move. A Compute Savings Plan does, but takes less off c7g and c8g than off their Intel siblings, and applies to the usage with the highest savings percentage first.
Tools
Compute Savings PlansEC2 Instance Savings PlansReserved InstancesDatabase Savings Plans

A commitment bought before the move can miss it. An EC2 Instance Savings Plan commits to one instance family in a Region (Savings Plans types), so a plan bought for m7i does not cover m7g, and a reserved DB instance stays with its class type (the RDS article). It follows that a plan bought for the Intel instances keeps billing its commitment after the move, while the Graviton instances pay On-Demand:

Four instances moved from m7i.large to m7g.large in Paris, a month: a 1-year EC2 Instance Savings Plan bought before the move, or after it

An m7i plan, then the move Illustrative

LineA month
Compute$504.46
Plan for 4 m7i.large, billed, unused2,920 h × $0.07756 /h$226.48
4 × m7g.large, On-Demand2,920 h × $0.0952 /h$277.98
A month, computed$504.46

The move, then an m7g plan Illustrative

LineA month
Compute
4 × m7g.large on the plan2,920 h × $0.0628 /h$183.38
A month, computed$183.38

The plan bought after the move costs $321.08 a month less than the plan bought before the move (63.6% less), computed.

USD before tax, 730 h a month. AWS Price List, eu-west-3, offer files published October 13, 2026 and October 15, 2026, fetched October 16, 2026. Illustrative configuration, not a client case.

A Compute Savings Plan does follow the move, at a smaller discount, and it goes first where it saves the most: "Your Savings Plans are applied to your highest savings percentage first" (how Savings Plans apply). On an account that runs both c7i and c7g, it follows that the plan goes to the Intel usage first, since it takes a larger share off it (Savings Plans and Reserved Instances on Graviton). On Fargate, buying after the move also buys the deeper Arm rate: the 3-year plan's ARM64 vCPU rate is 46.0% less than On-Demand, its X86_64 rate 40.0% less, computed. Measure the move, then commit to the Graviton usage that remains.

Lever 10 · Review

Review as new generations ship

When it applies
On AWS's cadence: quarterly or every six months for the core workloads and those over a tenth of the bill, yearly for the rest.
Watch out
Graviton5 is documented for EC2 and RDS, with no Paris price yet: each review can find a new type to pair, and a new gap.

"The review effort should reflect potential benefit", in AWS's words (COST10-BP01): core workloads or those over ten percent of the bill quarterly or every six months, the others annually. Graviton gives each review a question of its own: has a new generation, or a new Intel type, changed the pair? The gap has moved with the generations, narrower on EC2 from Graviton3 to Graviton4 and on RDS from Graviton2 to Graviton3, reversed on ElastiCache after Graviton2, and Graviton5 is documented for EC2 and RDS with no Paris price yet. Re-pair the types at each review, and recompute the gap before buying the next commitment.

In short: Move where the work is smallest first, the managed services, the functions and the containers, then EC2 by language; measure each move, keep on x86 what cannot move, and commit last, to the Graviton usage that remains.

FAQ

Is AWS Graviton cheaper than Intel or AMD?

Almost always, by a gap each service sets: in Paris, 19.0% less on EC2 at Graviton3, 20.0% less on Lambda duration and Fargate, 5.3% less on RDS for PostgreSQL at Graviton3, computed. Against AMD the gap is smaller, since AMD already costs less than Intel, and on ElastiCache the Graviton3 and Graviton4 nodes cost more than the newest Intel ones (Is AWS Graviton cheaper?).

What does the g mean in an EC2 instance name?

An AWS Graviton processor: it is the option letter after the generation digit, as in m7g.large, where i means Intel and a means AMD. The A series, A1, is the first generation's (Reading a Graviton instance name).

Will my application run on Graviton without changes?

If it runs on Linux and is written in an interpreted language such as Java, Node or Python, with no native code, AWS says it should run with minimal to no changes on an arm64 AMI. Compiled code is rebuilt for Arm, and Windows does not run on Graviton (What does not fit).

Do Savings Plans and Reserved Instances apply to Graviton?

Yes, as to any usage. In Paris, EC2 Instance Savings Plans, Reserved Instances, Lambda's plan and the Database Savings Plan take the same share off Graviton and x86; a Compute Savings Plan takes less off Graviton's c types and more off Arm on Fargate. Buy them after the move: an EC2 Instance Savings Plan or a reserved DB instance does not follow a change of family or class (Savings Plans and Reserved Instances on Graviton).

Is AWS Graviton available in Paris?

Yes: every service this article prices has a Graviton option in Paris. The Paris price lists of EC2, RDS, Aurora, ElastiCache and OpenSearch Service carry Graviton2 to Graviton4 types; Lambda names Graviton2 and Fargate names no generation. Graviton5 is documented for EC2 and RDS, but the Paris price lists of October 15, 2026 (EC2) and October 6, 2026 (RDS) have no row for it (Five generations).

Sources

  1. AWS Graviton Processor AWS, product page, accessed October 17, 2026.
  2. Amazon EC2 FAQs AWS, product page, accessed October 17, 2026.
  3. Getting started with AWS Graviton AWS, product page, accessed October 17, 2026.
  4. Amazon EC2 instance types AWS, documentation, accessed October 16, 2026.
  5. DB instance class types (Amazon RDS) AWS, documentation, accessed October 16, 2026.
  6. Amazon EC2 M7g instances AWS, product page, accessed October 16, 2026.
  7. Amazon EC2 M8g instances AWS, product page, accessed October 16, 2026.
  8. Amazon EC2 instance type naming conventions AWS, documentation, accessed October 16, 2026.
  9. CPU options for Amazon EC2 instances AWS, documentation, accessed October 16, 2026.
  10. Use Graviton instances and containers (AWS Prescriptive Guidance) AWS, documentation, accessed October 17, 2026.
  11. Supported CPU options for Amazon EC2 instance types AWS, documentation, accessed October 16, 2026.
  12. Selecting and configuring an instruction set architecture for your Lambda function AWS, documentation, accessed October 16, 2026.
  13. Amazon ECS task definitions for 64-bit ARM workloads AWS, documentation, accessed October 16, 2026.
  14. AWS Fargate FAQs AWS, product page, accessed October 17, 2026.
  15. Amazon EMR Serverless architecture options AWS, documentation, accessed October 16, 2026.
  16. DB instance class types (Amazon Aurora) AWS, documentation, accessed October 16, 2026.
  17. Supported node types (Amazon ElastiCache) AWS, documentation, accessed October 16, 2026.
  18. Supported instance types in Amazon OpenSearch Service AWS, documentation, accessed October 16, 2026.
  19. Savings Plans types AWS, documentation, accessed October 16, 2026.
  20. Savings Plans FAQ AWS, product page, accessed October 16, 2026.
  21. Viewing EC2 instance recommendations AWS, documentation, accessed October 16, 2026.
  22. Configure Lambda Event Function memory AWS, documentation, accessed October 17, 2026.
  23. Graviton Savings Dashboard AWS, product page, accessed October 16, 2026.
  24. Amazon RDS FAQs AWS, product page, accessed October 15, 2026.
  25. Understanding how Savings Plans apply to your usage AWS, documentation, accessed October 16, 2026.
  26. COST10-BP01 Develop a workload review process AWS, whitepaper, accessed October 16, 2026.
  27. AWS Price List: Amazon EC2, eu-west-3 (offer file of October 15, 2026) AWS, price list, accessed October 16, 2026.
  28. AWS Price List: Amazon RDS, eu-west-3 (offer file of October 6, 2026) AWS, price list, accessed October 16, 2026.
  29. AWS Price List: Amazon OpenSearch Service, eu-west-3 (offer file of October 16, 2026) AWS, price list, accessed October 16, 2026.
  30. AWS Price List: Amazon ElastiCache, eu-west-3 (offer file of October 14, 2026) AWS, price list, accessed October 17, 2026.
  31. AWS Price List: AWS Lambda, eu-west-3 (offer file of October 16, 2026) AWS, price list, accessed October 16, 2026.
  32. AWS Price List: Amazon ECS (AWS Fargate), eu-west-3 (offer file of September 11, 2026) AWS, price list, accessed October 16, 2026.
  33. AWS Price List: Amazon EKS, eu-west-3 (offer file of September 28, 2026) AWS, price list, accessed October 16, 2026.
  34. AWS Price List: Compute Savings Plans, eu-west-3 (offer file of October 13, 2026) AWS, price list, accessed October 16, 2026.
  35. AWS Price List: Database Savings Plans, eu-west-3 (offer file of October 13, 2026) AWS, price list, accessed October 16, 2026.

Quotations from AWS documentation are used under CC BY-SA 4.0.

Amazon Web Services, AWS and the names of AWS services are trademarks of Amazon.com, Inc. or its affiliates. Diagrams use the AWS Architecture Icons, unaltered.

More articles

AWS · AI

Amazon Bedrock pricing: how to cut the bill

Read
AWS · Cost management

AWS Cost Explorer: reading your bill

Read
AWS · Databases

Amazon DynamoDB pricing and how to cut it

Read