Redshift pricing is a price per node hour on provisioned clusters, plus per GB-month of Redshift Managed Storage on RA3 and RG nodes, per RPU-hour on Redshift Serverless, per TB scanned for Redshift Spectrum, per node-second for Concurrency Scaling beyond the free credit and per GB-month for snapshots above the allowance; Athena charges per TB scanned or per DPU-hour of reserved capacity, and Glue per DPU-hour for jobs, crawlers and sessions plus per 100,000 objects and per million requests for the Data Catalog. On the bill, Redshift is dominated by the node hours of a cluster that runs around the clock, Athena by the bytes scanned from uncompressed data and Glue by the DPU-hours of jobs that have more DPUs than they need.
Pricing dimensions
The three services price the same work, queries over large data, in three ways: Redshift by capacity per hour, Athena by bytes scanned, Glue by compute time per job. Every item carries its own usage type, and on Redshift the node type sits in the usage type, on Glue the kind of job in the operation.
| Dimension | Unit | What drives it | Optional |
|---|---|---|---|
| Redshift provisioned | Hour per node type (RG, RA3, DC2) and node, in full hours; a paused cluster pays storage only | The number and size of nodes, whether queries run or not | No for clusters |
| Redshift Managed Storage | GB-month of stored data on RG and RA3, by the hour | The data volume, independent of the node count; DC2 brings local storage | No on RG and RA3 |
| Redshift Serverless | RPU-hour per second while queries run, from a configured base capacity | The capacity the workload draws between base and maximum; nothing but storage when idle | Yes, instead of clusters |
| Redshift Spectrum | TB scanned in S3, rounded up to the MB, 10 MB minimum per query; included on RG nodes | Queries against external tables in S3 | Yes |
| Redshift Concurrency Scaling | Node-second of the additional clusters beyond a free credit of up to one hour a day | Load peaks the main cluster hands to additional clusters | Yes |
| Redshift snapshots | GB-month above an allowance equal to the storage; copies to other regions per GB | Retention period, manual snapshots, snapshots of deleted clusters | Yes |
| Athena SQL | TB scanned, rounded up to the MB, 10 MB minimum per query | Data volume, format and compression of the files in S3; the partitions the query hits | No |
| Athena capacity reservations and Spark | DPU-hour of reserved capacity instead of bytes scanned; DPU-hour per Spark application | Workloads with steadily high query volume; Spark notebooks | Yes |
| Glue jobs and sessions | DPU-hour per second with a minimum duration per job type, Flex jobs cheaper; newer Glue versions at lower rates | DPUs per job times run time; Spark jobs at least 2 DPU, Python shell from 0.0625 DPU | No for jobs |
| Glue crawlers and Data Catalog | DPU-hour per crawler run; objects per month and requests per million above an allowance of one million each | Crawler schedules, tables, partitions and versions in the catalog, every request from Athena, Spark or Glue | Yes |
| Data transfer | Not charged within the region; Spectrum and Athena read S3 without a retrieval fee for Standard | Access from other regions | Yes (data transfer pricing) |
| Purchase option | Reserved nodes for Redshift clusters over one or three years; capacity reservations for Serverless | Steady baseline | Yes (reserved capacity for managed services) |
On Redshift the node type is the decision that sets everything else: RG and RA3 separate compute and storage, so the cluster can stay small while the data grows in managed storage per GB-month, and RG nodes bring Spectrum without a price of its own; DC2 ties storage to the node and is chosen only for small, fast clusters. A provisioned cluster pays every hour whether it answers queries or not, and pausing ends the node hours and leaves the storage running. Serverless measures in Redshift Processing Units, charged per second while a query runs and nothing when the workload rests; the base capacity sets how many RPUs a query draws at least, and the maximum how dear a heavy query can become. Concurrency Scaling adds clusters at load peaks that cost per node-second, after a free credit of up to one hour a day that AWS calls sufficient for most customers.
Athena has no capacity that runs: every query pays the bytes it reads, and that makes the file format a pricing dimension. A column from a Parquet file reads only that column, one from a CSV file the whole file; compression shrinks what is scanned, and partitions let a query skip the rest of the data set. Capacity reservations replace the bytes scanned with DPU-hours of reserved capacity, which pays off only at steadily high volume. Glue charges compute time: a Spark job pays its DPUs times its run time, per second after a minimum duration, and the default allocation of 10 DPUs is too much for most jobs; Flex jobs run on spare capacity at the lower rate, newer Glue versions at lower rates per DPU-hour. The Data Catalog is free up to a million objects and a million requests a month and paid per 100,000 objects and per million requests beyond; every Athena query and every Glue job queries it.
How it appears in your billing data
In the Cost and Usage Report the Redshift lines carry the product code AmazonRedshift and lineItem/ResourceId the ARN of the cluster or the serverless namespace; the usage type's prefix is the region code, EUC1 for Frankfurt. Node hours appear as EUC1-Node:ra3.large or EUC1-Node:rg.large with the operation RunComputeNode:0001, managed storage as EUC1-RMS:ra3.large or EUC1-RMS:Serverless in GB-months, serverless as EUC1-Redshift:ServerlessUsage in RPU-hours with the operation RunServerlessCompute:001, Concurrency Scaling as EUC1-CS:ra3.large in node-seconds beside EUC1-CSFreeUsage:ra3.large at 0 for the free credit, snapshots as EUC1-Redshift:PaidSnapshots per GB-month above the allowance, copies to other regions as EUC1-Redshift:InterRegionSnapshotCopy per GB. Hours under a reserved node appear as DiscountedUsage.
Athena lines carry the product code AmazonAthena and the workgroup name in lineItem/ResourceId: scanned data as EUC1-DataScannedInTB in TB, capacity reservations as EUC1-ReservedCapacityInDPUHours and Spark as EUC1-CodeExecutionInDPUHours in DPU-hours. Glue lines carry AWSGlue, and lineItem/Operation names the kind: Jobrun with EUC1-ETL-DPU-Hour or EUC1-ETL-DPU-Hour-Gen2 for the newer versions, FlexJobrun with EUC1-ETL-Flex-DPU-Hour, CrawlerRun with EUC1-Crawler-DPU-Hour, GlueInteractiveSession for sessions, Storage with EUC1-Catalog-Storage in object-months and Request with EUC1-Catalog-Request; the allowances appear as Global-Catalog-Storage and Global-Catalog-Request at 0. lineItem/ResourceId names the job or crawler on Glue, so the DPU-hours can be summed per job.
What none of the three reports delivers is the line per query or per user: on Athena the workgroup is the resource, and whoever needs cost per team creates a workgroup per team; on Redshift only the system tables show which query had which share of the node hours. The report's structure is described in the AWS Cost and Usage Report. In the FOCUS export, ServiceName carries Amazon Redshift, Amazon Athena or AWS Glue and x_ServiceCode AmazonRedshift, AmazonAthena or AWSGlue; node hours, scanned TB and DPU-hours are ChargeCategory Usage, hours under reserved nodes PricingCategory Committed (FOCUS columns).
Levers
Configuration: on Redshift, pausing is the first lever for clusters not needed around the clock, and Serverless the second for workloads with pauses; the base capacity of Serverless is the third, because every query draws at least that. On Athena the file format is the lever: Parquet or ORC instead of CSV and JSON, compression and partitioning by the columns that are filtered on cut the bytes scanned several times over, and a workgroup with a data limit per query catches the query that reads everything. On Glue the DPUs per job are the lever, because the default allocation of 10 DPUs wastes compute on a job with a few GB; the utilisation metrics per job show the right number, and auto scaling in Glue sets it per run. The general method is in data warehouses and analytics.
Purchase option: for Redshift clusters with a steady baseline, reserved nodes lower the node hour over one or three years per node type; for Serverless there are capacity reservations on RPU-hours. Athena and Glue have no purchase option beyond Athena's capacity reservations (commitment strategy).
Architecture: Athena for rare and irregular queries over data in S3, Redshift for a warehouse used daily, Serverless in between; Glue Flex for jobs that need not finish at a set time. A cluster for reports that run once a day is the case for Serverless or a pause schedule; an Athena workload that scans the same TB every hour the case for Redshift or a capacity reservation. The raw data belongs in S3 compressed and partitioned (S3 pricing).
Where it goes wrong
- The cluster runs empty at night. A provisioned cluster pays every node hour whether queries run or not.
Node:ra3.largeover 730 hours with queries only by day shows it; a pause schedule or Serverless ends it. - Athena scans CSV. A query over one column of an uncompressed CSV file reads the whole file.
DataScannedInTBper workgroup against the data volume in S3 shows the ratio; Parquet and compression cut it several times over. - The serverless base is too high. A base capacity of 128 RPU draws 128 RPU per second for every small query.
Redshift:ServerlessUsageper day against the number of queries shows it; a lower base with a higher maximum fits mixed load. - The Glue job has 10 DPUs for 1 GB. The default allocation pays ten times the needed capacity. The DPU utilisation per run in the job metrics shows the right number; 2 DPUs suffice for small jobs.
- The crawler runs hourly. A crawler every hour over a data set that changes daily pays 24 runs per DPU-hour. A schedule by change frequency or partition projection in Athena replaces it.
- Snapshots of deleted clusters remain. Manual snapshots run on after the cluster is deleted, without an allowance.
Redshift:PaidSnapshotswithout a cluster beside it is the clue. - Concurrency Scaling costs where queues would do. Load peaks that start additional clusters beyond the free credit pay the node price per node-second. Workload management with queues for non-urgent queries keeps them under the credit.
Example
List prices in USD for Frankfurt (eu-central-1), read on 2026-10-21 from the AWS price list: a Redshift node ra3.large costs USD 0.649 per hour, ra3.xlplus USD 1.298, rg.large USD 0.4543 and dc2.large USD 0.324; managed storage USD 0.0256 per GB-month, Serverless USD 0.451 per RPU-hour, Concurrency Scaling on ra3.large USD 0.00018 per node-second beyond the free credit, snapshots USD 0.0245 per GB-month above the allowance. Athena costs USD 5.00 per TB scanned, capacity reservations USD 0.33 per DPU-hour and Spark USD 0.50 per DPU-hour. Glue costs USD 0.44 per DPU-hour for ETL jobs, crawlers and interactive sessions, USD 0.308 for jobs on the newer Glue versions, USD 0.29 and USD 0.203 for Flex jobs, the Data Catalog USD 1.00 per 100,000 objects and month and USD 1.00 per million requests beyond one million each.
A Redshift cluster of two ra3.large with 2 TB of data costs 2 × 730 × 0.649 = USD 947.54 of nodes and 2,048 × 0.0256 = USD 52.43 of storage a month, USD 999.97 in all; running only 260 hours a month and paused otherwise, 337.48 plus 52.43 = USD 389.91. The same workload on Serverless with a base of 8 RPU that draws 200 hours of query time a month costs 200 × 8 × 0.451 = USD 721.60 plus USD 52.43 of storage, USD 774.03. The same 2 TB as Parquet in S3 with 300 Athena queries a month scanning 20 GB on average cost 300 × 20 / 1,024 × 5.00 = USD 29.30; as uncompressed CSV with 200 GB per query USD 292.97. A Glue job that runs 15 minutes a day with 10 DPUs costs 30 × 2.5 × 0.44 = USD 33.00 a month, with 2 DPUs USD 6.60. The figures show that pausing a cluster saves more than any node change, that Serverless at 200 query hours sits below a permanent cluster and above a paused one, that the file format moves the Athena price tenfold, and that the DPU allocation on Glue makes a factor of five.
Sources
Read on 2026-10-21. Prices: Amazon Redshift pricing, Amazon Athena pricing, AWS Glue pricing, AWS Price List, offer AmazonRedshift for eu-central-1, offer AmazonAthena, offer AWSGlue. Billing data: Cost and Usage Report columns: lineItem, FOCUS 1.0 with AWS columns.