POV | What We Believe, On the Record | Mactores

Amazon EMR Pricing 2026: EC2, EKS & Serverless Cost Math

Written by Ammar Nizami | Nov 6, 2026, 6:50:55 PM

Key takeaways

  • The payments company in this guide paid about $5,174 a month for one nightly Spark workload, and the same jobs cost about $1,031 once its cluster shut down between runs and moved to Graviton and Spot.
  • Its EMR charge never got a discount, because Spot and Savings Plans only cut the EC2 layer, so the EMR share of each task node's hour rose from 20% to 39% while the total fell.
  • EMR Serverless would have cost it $1,475 to $1,842 a month, and Serverless only beats an always-on cluster that's busy less than about 82% of the hours it's paid for.
  • Its biggest leak wasn't EMR at all but a NAT gateway billing about $6,900 a month for S3 traffic that a free gateway endpoint carries.
  • Glue 6.0's 30% price cut in August 2026 changed its small-job math, putting a Glue DPU-hour at about the same price as an equal EMR Serverless x86 worker.
  • Its Savings Plan came last, sized to the On-Demand floor left after the redesign rather than to the cluster it was replacing.
  • PCI DSS, SOX, GDPR and DORA each added a line item, from KMS requests to EU-region rates, and all of them belonged in the first estimate.

We've spent close to two decades building data platforms on AWS for companies that answer to auditors, regulators and boards. In most of the EMR bills we review, the per-instance rate explains a small slice of the overspend. The bigger slice comes from how long clusters stay up and from the services wrapped around them, which fits what the wider market reports. Flexera's 2026 State of the Cloud survey of more than 750 cloud decision-makers put wasted cloud spend at 29%, the first increase in five years.

Our running example is a payments processor, made up but typical. It's publicly listed in the US, settles card payments for mid-sized merchants and serves its EU merchants through a subsidiary in Dublin. Three years ago it lifted its on-premises Hadoop jobs onto one always-on EMR on EC2 cluster, an m5.xlarge primary node and ten r5.2xlarge core nodes reading and writing an S3 data lake. The nightly settlement and reconciliation run keeps those nodes busy for about eight hours. For the other sixteen, the cluster mostly waits on an hourly fraud-feature refresh that needs a sliver of its capacity.

Nobody questioned the cluster's shape until the CFO asked why the data platform bill kept rising while transaction volume stayed flat. This guide follows that question through every EMR deployment model, prices the lines that never show up on the EMR pricing page, and gives the break-even points we use when we size EMR for clients in the US and Europe.

Amazon EMR Pricing at a Glance: 2026 Rates for EC2, EKS, and Serverless

The payments company's estimate started from the US East (N. Virginia) list rates on the Amazon EMR pricing page, shown below as of November 2026. On EMR on EC2, the per-instance EMR charge sits on top of the EC2 price, and on the instance families most Spark estates run it comes to about a quarter of On-Demand EC2.

Deployment model

What you pay for

US East list rate

Billing

EMR on EC2, m5.xlarge (4 vCPU, 16 GiB)

EMR charge plus the EC2 instance

$0.048 EMR + $0.192 EC2 = $0.240 per hour

Per second, one-minute minimum

EMR on EC2, r5.2xlarge (8 vCPU, 64 GiB)

EMR charge plus the EC2 instance

$0.126 + $0.504 = $0.630 per hour

Per second, one-minute minimum

EMR on EC2, r6g.2xlarge Graviton (8 vCPU, 64 GiB)

EMR charge plus the EC2 instance

$0.1008 + $0.4032 = $0.504 per hour

Per second, one-minute minimum

EMR on EKS

EMR charge on requested vCPU and memory, plus EC2 or Fargate capacity and $0.10 per EKS cluster-hour

$0.007084 per vCPU-hour, $0.000777875 per GB-hour

Per second

EMR Serverless, x86

vCPU, memory and storage used by workers

$0.052624 per vCPU-hour, $0.0057785 per GB-hour

Per second, one-minute minimum

EMR Serverless, Graviton

vCPU, memory and storage used by workers

$0.042094 per vCPU-hour, $0.004628 per GB-hour

Per second, one-minute minimum

EMR Serverless storage

Standard storage above 20 GB per worker, or all shuffle-optimized storage

$0.000111 per GB-hour

Per second, one-minute minimum

Two things in that table catch teams out. The EMR on EKS rates look tiny because they're only the EMR charge, whereas the Serverless rates already include the compute, so you can't compare the two line for line. The other surprise is region. For an r6g.2xlarge the EMR charge is $0.1008 an hour in US East, Ireland and Frankfurt alike, and it's the EC2 rate that climbs, to $0.4512 in Ireland, where the Dublin subsidiary's data would stay, and $0.4864 in Frankfurt.

What Does Amazon EMR Pricing Include in Production?

The EMR charge pays for the managed runtime: Spark, Hive, Trino and HBase, the cluster lifecycle, and AWS's performance-tuned runtime for Apache Spark. It doesn't pay for the instances underneath, the storage around them or the network in between, and at the payments company those made up most of the bill.

The premium earns its keep on large jobs that need custom runtimes, tuned executors or engines that stay up for hours, which is the role EMR plays next to AWS Glue in an AWS data lake. The settlement run fits that description well. The hourly fraud-feature refresh doesn't, and it comes up again further down.

Which line items make up a production EMR bill?

The first two boxes are where most EMR pricing articles stop. At the payments company, the other six added up to more than the EMR charge itself, scattered across the EBS, S3, VPC, CloudWatch and KMS sections of the bill, where nobody on the data team was looking.

EMR on EC2 vs. EMR on EKS vs. EMR Serverless: How Does Pricing Compare?

All three run the same EMR runtime, and AWS bills each one per second with a one-minute minimum. What differs is the unit you pay for and who pays while nothing's running. The rates below are US East list prices, and EU regions generally cost more, so rerun the numbers on your own region's rate card before committing.

The EMR on EKS column fools people. At $0.007084 per vCPU-hour and $0.000777875 per GB-hour, each of the payments company's 8 vCPU, 64 GB pods would add about 11 cents an hour, which reads like a rounding error until the EC2 nodes underneath and the $0.10 hourly EKS cluster fee land on the same bill. EMR Serverless looks expensive beside it for the opposite reason, since its rate already covers the compute and no node bill follows.

Serverless storage got cheaper too. Since December 2, 2025, EMR Serverless no longer needs local storage provisioned for Spark jobs on release 7.12 and later, so intermediate shuffle data carries no storage charge, and AWS puts the saving at up to 20% of data processing costs.

Where is the break-even between EMR Serverless and EMR on EC2?

Utilization settles it. An EMR Serverless worker can't be configured with 8 vCPU and 64 GB, since 8-vCPU workers top out at 60 GB, so we priced the payments company's nodes against an 8 vCPU, 60 GB worker. YARN holds back part of every EC2 node's memory for the operating system and the Hadoop daemons anyway, which leaves the executors with similar room on both. That worker costs about $0.77 an hour on x86 and $0.61 on Graviton, but only while it's working, while an r5.2xlarge on EMR on EC2 costs $0.63 an hour and an r6g.2xlarge $0.504 whether it's busy or not.

Divide one rate by the other and the line falls in the same spot on both architectures. Below about 82% utilization an always-on cluster costs more than Serverless, and above it a well-run EC2 cluster wins, by more once Spot task nodes join. Pitting a Graviton cluster against x86 Serverless workers drops the line to about 66%, so match architectures before you trust the answer.

The payments company's cluster was busy about eight hours in 24, or roughly 33%, so Serverless would have beaten it easily. Most production clusters we review sit well under the 82% line, too, which is why Serverless often looks like a bargain early in a migration. Move the same jobs onto a tuned transient EC2 design and the comparison usually flips, as the monthly numbers show.

How Much Does Amazon EMR Cost Per Month for a Production Workload?

For the payments company's nightly run, anywhere from about $1,031 to $5,174 a month, depending on the deployment model and what happens to the idle hours. The run needs ten 8 vCPU, 64 GiB nodes for about eight hours a day, and we priced it five ways at US East list rates, assuming Spot at about 61% below On-Demand.

The two EMR on EC2 designs break down as follows. Both run the same jobs against the same S3 tables.

Cost line (monthly)

Always-on cluster (before)

Transient cluster (after)

Primary node

m5.xlarge, 730 hours: $175

m6g.xlarge, 240 hours: $46

Core nodes

10 × r5.2xlarge On-Demand, 730 hours: $4,599

4 × r6g.2xlarge On-Demand, 240 hours: $484

Task nodes

None

6 × r6g.2xlarge on Spot, 240 hours: $370

EBS (500 GB gp3 per node)

$400

$132, billed only while attached

Monthly total

$5,174

$1,031

Annualized

About $62,000

About $12,400

Three changes opened that gap. The transient cluster starts for the nightly run and shuts down when it finishes, which takes out about 490 idle hours per node a month. Graviton lowers the EC2 rate and the EMR charge together, because the charge tracks the instance price. Spot carries the task tier, where an interruption costs a retried task and no HDFS data, since task nodes don't store any.

The hourly fraud-feature refresh went to EMR Serverless instead. Two 4 vCPU, 16 GB Graviton workers running about five minutes an hour come to roughly $30 a month, a far smaller bill than ten nodes kept awake for it.

Why does the EMR charge grow as a share of the bill when you optimize?

Most EMR pricing guides skip this part. On an On-Demand r6g.2xlarge the EMR charge is $0.1008 of a $0.504 hourly total, or 20%. Put the node on Spot at about $0.156 an hour and the charge stays at $0.1008, now 39% of what the node costs. Savings Plans have the same effect, because they apply to the EC2 instances in an EMR cluster and leave the EMR charge alone.

At the payments company this turned up in a FinOps report where EMR's share of compute spend went up after the cleanup, even though total spend had fallen by about 80%. Teams that miss the mechanism sometimes switch engines to escape a line item that was never the problem, so we judge a platform on cost per job or per terabyte processed rather than on the EMR line alone.

Is Amazon EMR Cheaper Than AWS Glue After the Glue 6.0 Price Cut?

For big, tuned, long-running Spark it usually still is, but the answer for small jobs shifted this year. AWS cut Glue's price 30% with Glue 6.0 on August 21, 2026, taking a standard Spark DPU-hour from $0.44 to $0.308. One DPU is 4 vCPU and 16 GB, which lines up neatly with a 4 vCPU, 16 GB EMR worker.

4 vCPU and 16 GB for one hour (US East)

List price

You pay while

AWS Glue 5.x Spark job (1 DPU)

$0.44

The job runs; per second, one-minute minimum

AWS Glue 6.0 Spark job (1 DPU)

$0.308

The job runs; per second, one-minute minimum

AWS Glue 6.0 Flex job (1 DPU)

$0.203

The job runs, for work that can wait for spare capacity

EMR Serverless worker, x86

About $0.303

The worker runs; per second, one-minute minimum

EMR Serverless worker, Graviton

About $0.242

The worker runs; per second, one-minute minimum

EMR on EC2, m6g.xlarge On-Demand

$0.193

The cluster is up, busy or idle

Read across the rows and a Glue 6.0 job now costs within a cent of an equal EMR Serverless x86 worker. Graviton Serverless undercuts both by about a fifth, and Glue Flex is the cheapest serverless hour on the list for work that isn't urgent. EMR on EC2 has the lowest rate of all, though only for the hours a cluster is actually busy.

There's a catch. The new rates apply only to jobs running on Glue 6.0, which brings Apache Spark 4.1 with it, so older jobs keep paying $0.44 until someone ports them. The payments company left its settlement run on EMR, where it controls instance types, Spot and executor tuning, and it could reasonably have put the hourly fraud refresh on Glue 6.0 rather than EMR Serverless. At about $30 a month either way, it kept both jobs on one runtime. That split between Glue for scheduled or spiky jobs and EMR for the heavy ones shows up in most data pipeline modernization on AWS.

Where Do Production EMR Costs Leak Beyond the Pricing Page?

Through idle capacity, storage requests, network paths and logs, and none of those show up in a rate-card estimate. The State of FinOps 2026 report, drawn from 1,192 respondents with more than $83 billion in annual cloud spend, ranks workload optimization and waste reduction as the top current priority for FinOps teams. On a data platform the waste tends to pool in the same few places.

The payments company's largest leak was the NAT gateway. The cluster pulled about 5 TB a day from S3 through NAT because its subnet's route table had no S3 gateway endpoint, and at $0.045 per GB processed that came to about $230 a day, or roughly $6,900 a month. A gateway endpoint carries the same traffic at no charge. The NAT line was nearly seven times what the redesigned cluster would cost, and it had sat in the VPC section of the bill since the migration.

How do you measure EMR cost per job instead of per service?

Cost per job is the number that survives budget season, because it ties spend to something the business recognizes. The payments company started by tagging every cluster, EKS namespace and Serverless application with team, pipeline and environment, then activated those tags in AWS Billing so they appeared in its cost reports.

Next it joined the AWS Cost and Usage Report to Spark job metadata, so each settlement run carried its own compute, EMR and storage cost. That join is what exposed the fraud refresh, a cheap job on its own that had been holding the whole cluster up between batches.

It then published dollars per settlement run and dollars per terabyte processed and went over them weekly with engineering, much as an SRE team reviews error budgets. With the CFO and the data engineering lead looking at one chart, the argument over what to fix first got a lot shorter.

How Do Spot Instances, Graviton, and Savings Plans Change EMR Costs?

Each lever cuts a different layer of the bill, and the order you pull them in decides how much of the saving you keep. Here's what each one touched at the payments company.

Lever

Typical effect

Touches the EMR charge?

At the payments company

Spot Instances

Up to 90% off On-Demand EC2, per AWS

No

Task tier only, in an instance fleet with several instance types per Availability Zone

Graviton (r6g, r7g, r8g)

Lower instance rates; Graviton Serverless workers list about 20% below x86

Yes, the charge follows the instance price

Native libraries and fraud-model UDFs tested on Arm before cutover

Compute Savings Plans

Discount on committed EC2, Fargate and Lambda usage

No

Bought last, sized to the On-Demand floor left after the redesign

Managed scaling

Shrinks a cluster between peaks

Yes, through fewer instance-hours

Minimums set to protect the settlement deadline

Auto-termination

Ends an idle cluster after a timeout

Yes

Paired with the scheduler so the nightly cluster relaunches on time

Spot prices move daily, so the model uses a conservative discount. On November 4, 2026, AWS's Spot price data showed an r6g.2xlarge in US East at about $0.12 an hour, roughly 71% below its On-Demand rate, against the 61% assumed in the payments company's numbers.

When should you buy Savings Plans for EMR?

Last. A commitment locks in a usage level, so buying one before the idle hours are gone means paying a discounted rate on capacity you were about to delete. The payments company's first plan was to commit against the always-on cluster's roughly $3,800 a month of On-Demand EC2, when the redesign would leave only about $420 of On-Demand usage to cover.

On EMR programs we follow the same sequence as in AWS cost optimization generally. Idle hours go first, through transient clusters, auto-termination or Serverless for spiky jobs. Executors and instance types are right-sized next, from Spark event logs rather than guesses. The task tier then moves to Spot and the remaining On-Demand nodes to Graviton, and the new baseline runs for 30 to 60 days before anyone signs a commitment against its floor, sized below peak.

Teams that keep to that order tend to hold their savings through the next budget cycle. The ones that start with the commitment often spend the following year paying for capacity they no longer run.

What Do Security and Compliance Controls Add to Amazon EMR Pricing?

A modest, predictable layer, provided it's designed in from the start. Retrofitting the same controls after an audit finding is what turns a few hundred dollars a month into a quarter-long project. The payments company's settlement jobs touch cardholder data, which puts the cluster inside its PCI DSS scope. Its listing brings SOX controls over financial reporting, and the Dublin subsidiary adds GDPR and, as a payment institution, DORA.

Control

Why auditors ask for it

Cost line to budget

Frameworks it supports

Encryption at rest (EBS, local disks, S3 with KMS)

Protects cardholder data, PHI and personal data

KMS key fees plus $0.03 per 10,000 requests

PCI DSS v4.0.1, HIPAA, SOC 2, GDPR

Encryption in transit (TLS for Spark and shuffle)

Protects data moving between nodes

Extra CPU on shuffle-heavy jobs; benchmark before sizing

PCI DSS, HIPAA, SOC 2

Private networking (VPC endpoints, no public IPs)

Keeps traffic off the public internet

Interface endpoints at $0.01 per AZ-hour plus per-GB processing

PCI DSS, FFIEC, DORA

Fine-grained access (Lake Formation, runtime roles)

Least privilege at table, column and row level

No charge for Lake Formation permissions; engineering time to model them

SOC 2, HIPAA, GDPR

Audit logging (CloudTrail data events, Spark history)

Proves who touched which data

$0.10 per 100,000 S3 data events, plus log storage

SOX, SEC 17a-4, SOC 2

Data residency

Keeps personal data inside the EU or a named country

EU regional rates, which list above US East

GDPR, DORA

How should US and European teams plan EMR compliance costs differently?

US teams in healthcare and financial services tend to start from HIPAA eligibility under a signed BAA, PCI DSS scope reduction and retention rules such as SEC 17a-4. Amazon EMR is on AWS's HIPAA-eligible list, so the cost question is less about the service than about the encryption, logging and access controls around it. Financial services estates add FFIEC, FINRA and SOX to the list, the frameworks our financial services data modernization work is built around.

In Europe, residency and resilience come first. GDPR keeps the Dublin subsidiary's merchant data in EU regions, and Ireland lists the r6g.2xlarge's EC2 layer about 12% above US East. DORA asks financial entities, payment institutions included, for documented exit strategies and resilience testing, which favors portable designs built on open table formats such as Apache Iceberg on AWS. Teams that report in euros should model currency exposure as well, because AWS bills in US dollars by default.

Whichever regime applies, controls that ship with the first cluster cost far less than controls bolted on after the first audit.

How Do You Cut Amazon EMR Costs Without Breaking SLAs?

With a gated sequence of measure, redesign, parallel run, cutover and commit, where each phase closes with sign-off from finance and engineering so the saving is proven before the next change lands. At the payments company the transient cluster ran beside the old one for four weeks, through a month-end close, and settlement totals had to match to the cent before the old cluster was switched off.

Should you lift and shift Hadoop to EMR or replatform first?

The payments company's first move had been a lift and shift. Copying cluster shapes one for one kept the idle hours, the oversized nodes and the HDFS habits that made the old platform expensive, and three years on it was paying to redo that work.

After a replatform the same figure is 15 to 25 percent, and that difference carries most of the rehost vs. replatform argument. For Spark estates, replatforming usually means keeping storage on S3 in an open table format, splitting persistent clusters into job-scoped ones and re-baselining executor memory on current instance families.

Which EMR deployment model fits which workload?

Workload

Best-fit model

At the payments company

Steady, predictable ETL with high utilization while it runs

EMR on EC2 with Graviton core nodes, Spot task fleets and a Savings Plan floor

Settlement and reconciliation, on a transient cluster each night

Bursty, ad hoc or event-driven jobs

EMR Serverless with Graviton workers, and pre-initialized capacity only where cold starts hurt an SLA

The hourly fraud-feature refresh

Teams standardizing on Kubernetes

EMR on EKS sharing a node pool with other services, scaled by Karpenter

Priced at about $1,072 a month, but its platform team didn't run EKS

Interactive analytics and notebooks

EMR Studio on Serverless or EKS, with idle timeouts enforced by policy

Not part of this estate

Small scheduled Spark jobs with no tuning needs

AWS Glue 6.0, or Glue Flex when the job can wait

A fair alternative for the fraud refresh

Most production platforms end up running two models side by side, picked per pipeline with the cost-per-job metric, and the payments company finished the same way.

How Can Mactores Help Lower Your Amazon EMR Costs?

Mactores is the agent-native AWS modernization firm, and EMR cost work is one of the most common places our data platform engagements start. You bring the bill that keeps growing and the pipelines that can't miss an SLA. We bring a delivery model built to get the redesigned platform into production on a committed date.

Aedeon, the agent platform built by our founders' sister company, handles discovery and validation. It maps every cluster, job and dependency, then runs parallel-run checks on live data, and approximately 60% to 70% of the engagement hours a traditional consulting proposal of equivalent scope would staff go to Aedeon. Forward-deployed engineers own the architecture, the Spot and Graviton strategy, the compliance controls and the cutover itself.

Plume's program shows the pattern. When we moved its analytics to an AWS lakehouse on Amazon EMR on EKS, all 20 workspaces went live in 18 weeks with zero rollbacks, and the projected six-month analytics run-rate fell from $1,513K to $635K, a 58% reduction averaged across workspaces. Plume's engineers have operated EMR themselves since the day after cutover.

What you get

How it works

EMR cost baseline

Cost per job and utilization for every cluster, tagged and agreed with finance

Target design

Deployment model per workload, with modeled savings and compliance controls

Parallel-run validation

Output and SLA parity proven on live data before any cutover

Legacy retirement

Old clusters, licenses and idle capacity decommissioned as a scoped deliverable

Commercial terms

Fixed date and fixed fee, with Mactores absorbing overage on delays inside our control

Two other engagements show the range. Flipboard's high-volume HBase platform moved from a self-managed cluster to Amazon EMR with roughly three times the read and write throughput. Another team's legacy EMR footprint was consolidated onto Amazon EMR on EKS in weeks, which gave its data engineers back the hours they'd spent on cluster upkeep. Mactores holds the Amazon EMR Service Delivery designation and the AWS Agentic AI Specialization, and our median time to production is 12 weeks.

If your EMR bill needs a defensible answer before the next budget review, our delivery commitment puts the terms in writing: one ship date, one fee, and overage on delays inside our control absorbed by us. The first step is a 30-minute working session with the forward-deployed engineer who would own your program. Send one line about your EMR estate through Let's Deliver, and you'll have a reply within 24 hours and, where it's a fit, a scoped proposal within five business days.