AWS Glue has always been the serverless ETL service that people love to complain about the cost of. It does exactly what it says on the tin: discover, transform, and load data without managing infrastructure. But at $0.44 per DPU-hour, a moderately complex pipeline running a few hours a day across a handful of workers adds up fast. Teams that haven't used it extensively have heard the stories from teams that have.
Last week, AWS announced Glue 6.0 with a straightforward headline: 30% lower pricing across the board. That drops the effective DPU rate from $0.44 to roughly $0.31 per hour. For pipelines already running on Glue, this is free money. For teams that ruled Glue out on cost, it's worth reopening the spreadsheet.
The Price Cut in Context
A 30% reduction sounds good in a press release. What does it look like on a real workload?
Take a pipeline running 10 DPUs for 2 hours daily. On Glue 5.0, that's 10 × 2 × $0.44 = $8.80/day, or roughly $264/month. On Glue 6.0, the same job costs about $185/month. That's $79/month back in your pocket for doing nothing other than changing the --glue-version parameter.
Scale that up to a data team running dozens of jobs with larger worker pools, and the savings start to matter. A team spending $5,000/month on Glue compute is now spending $3,500. Over a year, that's $18,000 freed up without touching a single line of transformation logic.
This isn't a promotional rate or a new pricing tier with caveats. It's the base rate for Glue 6.0 jobs. You opt in by selecting the new version. Your existing Glue 5.0 jobs keep running at the old price until you upgrade them.
What Else Ships with 6.0
The price cut is the headline, but the release isn't just a billing change. Glue 6.0 is built on Spark 4.1, Python 3.13, and Scala 2.13. That's a full runtime overhaul.
Full Apache Iceberg v3 support. This is the biggest technical feature in the release. Glue 6.0 implements the complete Iceberg v3 specification on Iceberg 1.11.0. The headline capability is the VARIANT data type with shredding support, which lets you store and query semi-structured data (JSON, logs, event streams) without flattening schemas first. No more maintaining separate parsing logic that breaks every time an upstream system adds a field.
Iceberg v3 also brings geometry and geography types for spatial workloads, nanosecond-precision timestamps for IoT and financial data, and unknown type handling for schemas that evolve unpredictably.
Spark Declarative Pipelines. Instead of imperatively orchestrating your transformations, you declare what the output should look like and the engine figures out execution order and optimization. This is Spark 4.1's answer to the boilerplate that makes ETL code hard to maintain.
Arrow-native Python UDFs. PySpark performance has always suffered from serialization overhead between Python and the JVM. Arrow-native execution for UDFs and UDTFs eliminates that bottleneck, which matters a lot if your transformations are Python-heavy.
Real-time streaming mode. For stateless streaming workloads, Glue 6.0 can hit single-digit millisecond latency. That puts it in range of use cases that previously required a dedicated streaming framework like Flink or Kafka Streams on self-managed infrastructure.
When the Price Cut Actually Matters
The 30% reduction doesn't change the fundamental tradeoffs of Glue versus other approaches. It changes where the break-even points land.
If you were already on Glue: Upgrade your jobs to 6.0 and pocket the savings. There are no API changes required. AWS provides a Spark upgrade agent to help with migration, and an auto-upgrade feature for existing jobs.
If you'd dismissed Glue as too expensive: The math that pushed you toward self-managed Spark on EMR, or a third-party ETL tool, might be different now. Glue's pitch was always operational simplicity: no clusters to size, patch, or scale. At $0.44/DPU-hour, that premium was hard to justify for high-volume workloads. At $0.31, the gap between Glue and running your own Spark cluster narrows enough that the operational cost of self-management starts to outweigh the per-hour savings for many teams.
If you're evaluating Glue against Databricks or Snowflake pipelines: Glue's serverless model means you're paying only for active compute, not for idle clusters. With the price cut and full Iceberg v3 support, Glue is harder to dismiss for teams already in the AWS ecosystem who want native Iceberg without managing Unity Catalog or paying Databricks platform fees.
The Catch
Glue's pricing model still has characteristics that can surprise you. DPU allocation is per-worker, and Glue defaults to allocating more DPUs than many jobs actually need. Auto-scaling helps, but if you're not actively right-sizing your worker configurations, you're paying for idle compute within each job run.
The 30% cut doesn't fix bad architecture. A poorly written Spark job that scans entire datasets when it could be doing partition pruning will still be expensive. Just 30% less expensive. The teams who benefit most from this are the ones who've already optimized their jobs and were paying a premium purely for managed infrastructure. For them, this is a direct cost reduction with no work attached.
The Upgrade Path
Switching is straightforward. Set --glue-version 6.0 in your job configuration via the CLI, SDK, or Glue Studio console. For notebooks and interactive sessions, set %glue_version 6.0. New features like declarative pipelines and VARIANT types are opt-in, not breaking changes.
If you're running Glue 4.0 or 5.0 jobs, test the upgrade in a non-production environment first. The Spark 4.1 runtime is a major version bump from Spark 3.x, and while AWS has done compatibility work, complex jobs with custom dependencies should be validated before you flip the switch in production.