Amazon Redshift Serverless pricing has one number that decides most bills, and it is not the RPU-hour rate. It is the 60-second minimum charge. The Amazon Redshift pricing page puts it in a parenthesis: "You pay for the workloads you run in RPU-hours on a per-second basis (with a 60-second minimum charge), including queries that access data in open file formats in Amazon S3." Multiply that minute by your base capacity and a two-second dashboard query on the default 128-RPU workgroup costs 80 cents.
What does an RPU-hour cost on Amazon Redshift Serverless?
$0.375 per RPU-hour in US East (N. Virginia), the rate in both of AWS's own serverless worked examples: "$109.20 ((8190 x 128 RPU x $0.375 per RPU-hour) /3600)" and "$504 ((256+384+128+128+448) x $0.375 per RPU-hour)". Both retrace exactly. The pricing page's rate table renders in JavaScript, so check your own region there.
An RPU is a memory unit. The compute capacity page says "One RPU provides 16 GB of memory" and that "The default base capacity for Amazon Redshift Serverless is 128 RPUs." That default is the most expensive setting on the console, because base capacity multiplies every billed second, including every minimum charge.
| Base capacity | Memory | Cost per hour of activity | One query billed at the 60-second minimum |
|---|---|---|---|
| 4 RPUs | 64 GB | $1.50 | $0.03 |
| 8 RPUs | 128 GB | $3.00 | $0.05 |
| 128 RPUs (default) | 2,048 GB | $48.00 | $0.80 |
| 512 RPUs | 8,192 GB | $192.00 | $3.20 |
The first row is AWS's headline, "You can start using Amazon Redshift Serverless for as low as $1.50 per hour", which is 4 RPUs and not a discount. It is capped: "Configurations of 4 base RPUs support managed storage capacity of up to 32 TB."
What is the Redshift Serverless minimum charge per query?
Sixty seconds. The serverless billing page states it as "The minimum charge is for 60 seconds of resource usage, metered on a per-second basis", and the on-demand billing page and the provisioned comparison both repeat "with a 60-second minimum charge". Nothing says the minute is shared between queries, so plan as though it is not.
Three more billing notes decide who pays it. "If you run a query and cancel it before it finishes, you are still billed for the time the query ran." "When you query a system table, the query time is billed." And, catching every monitoring stack, "Amazon Redshift Serverless treats all incoming queries as billable user activity, including lightweight health-check queries sent by connection pools."
Do many short queries cost more than one long query on Redshift Serverless?
Yes, by exactly the ratio of 60 seconds to the query's real duration. What follows is hypothetical arithmetic on AWS's published rate at the default 128-RPU base. A thousand queries that each genuinely take five seconds do 5,000 seconds of work and are billed for 60,000: $800.00. One query doing the same 5,000 seconds of work costs $66.67. Twelve times the bill, which is 60 divided by 5.
| True query duration | Seconds billed | Overhead | Cost at base 128 RPUs |
|---|---|---|---|
| 1 second | 60 | 60x | $0.80 |
| 5 seconds | 60 | 12x | $0.80 |
| 60 seconds | 60 | 1x | $0.80 |
| 10 minutes 30 seconds | 630 | 1x | $8.40 |
AWS's own basic example sits in the last row and never touches the minimum: thirteen runs of 10 minutes 30 seconds, $109.20 for the day. Nothing warns what happens when that job is refactored into thousands of small statements. The fix is batching, not tuning: a query that already finishes in two seconds cannot be optimised into a smaller bill, because you are paying for the floor. Athena's equivalent floor is priced per scan instead, covered in how to control Athena query cost.
Does a Redshift Serverless workgroup cost anything when it is idle?
For compute, AWS says no: "When no queries are running, you aren't billed for compute capacity", and there is no pause button because "you pay only when queries run, so there is no need to pause or resume." Start-up is free too: "There is no charge for data warehouse start up time."
Three documented behaviours make idle harder to reach than that sounds. Scale-down lag: "In some cases, RPU capacity can remain at a higher setting for a period after query load falls." Open transactions: "If you don't end or roll back an open transaction, Amazon Redshift Serverless continues to use RPUs." The Redshift quotas page caps that at six hours. At 128 RPUs, six hours of nothing happening is $288.00.
Then the health checks: "maintaining open connection pools can generate costs even when no actual user workloads are running". Take a pool probing every five minutes, and assume each probe earns its own minute with no two in the same one. That upper bound bills 720 seconds of base capacity per idle hour, 20% of the clock: at 8 RPUs, $0.60 an idle hour and $438.00 across a 730-hour month for a workgroup nobody queried. Storage never idles at all: "Storage is billed separately, by GB / month."
How much does Redshift Managed Storage cost per GB-month?
$0.024 per GB-month in US East (N. Virginia), from the pricing page's own RMS example: "managed storage will be charged at $0.024/GB-Month". A snapshot example on the same page uses $0.023 for US East (Ohio), so the rate is regional. One terabyte is $24.58 a month at 1,024 GB per TB, billed whether or not a query runs. "Recovery points retained for less than 24 hours are not charged"; keep one longer and it becomes RMS, billed on unique blocks the way EBS snapshot charges are.
That example also exposes a convention split inside one page. Storage converts at "36,900,000 GB-hours / 720 hours per month in April = 51,250 GB-months". Every compute example on the same page uses 730: "Redshift RG instance cost = 4 instances x $3.04267 USD per hour x 730 hours in a month = $8,884.60". That is 1.39% more hours on the compute side. Pick one convention and state it, because AWS did not.
Should you run Redshift Serverless or a provisioned Redshift cluster?
AWS never publishes this crossover, but its own two examples contain everything needed to compute it. The four-node rg.4xlarge example costs $8,884.60 of compute for a 730-hour month, and at $0.375 per RPU-hour that buys 23,692 RPU-hours. Divide by base capacity for the hours of activity at which serverless stops being cheaper.
| Base capacity | Hours of activity per month that equal $8,884.60 | Per day, over 30 days |
|---|---|---|
| 32 RPUs | 740.4 | more than the month has, so serverless wins at any usage |
| 64 RPUs | 370.2 | 12.34 hours |
| 128 RPUs (default) | 185.1 | 6.17 hours |
| 256 RPUs | 92.5 | 3.08 hours |
| 512 RPUs | 46.3 | 1.54 hours |
That is a price comparison, not a capacity comparison: four rg.4xlarge nodes and 128 RPUs are not the same machine. It still sets the shape. On the default base capacity, a workgroup busy more than six hours a day costs more than AWS's own mid-size provisioned example running around the clock.
AWS's second serverless example makes the point without meaning to. Its dashboarding workload bills $504 for one day, so a 30-day month is $15,120.00, 70.2% more than the four-node cluster. Both are US East (N. Virginia), both are on the same page, and nothing connects them. The entry prices agree: "Redshift Provisioned starts at $0.543 per hour, while Redshift Serverless begins at $1.50 per hour." That node is $396.39 for a 730-hour month, which buys 264.3 hours of a 4-RPU workgroup, about 8.8 hours a day.
Serverless compute wins on intermittency and loses on steady load. Aurora's version of that trade is in Aurora Serverless v2 ACU pricing, and the cost of idle provisioned capacity in what a stopped EC2 instance still costs.
How do Max RPU-hours and Max capacity control Redshift Serverless cost?
Two settings, and only one is a spending cap. The usage limits page describes the max RPU-hours limit: Daily, Weekly or Monthly, a number of RPU-hours, and an action. "When a limit is reached, you can specify that a log entry is written to a system table, or you receive an alert, or user queries are turned off." Only the third does anything: "The first two actions are informational, but the last turns off query processing."
Max capacity is the other lever, and the two do not overlap: "Unlike Max capacity, this setting doesn't set a ceiling on capacity." Max capacity caps the RPUs a workgroup scales to, where "The top Max capacity setting is 5632 RPUs", and caps no hours. The usage limit caps no capacity: "Setting the maximum RPU hours for the workgroup doesn't limit the performance or compute resources for the workgroup." You need both, and neither is on by default.
| Control | What it bounds | Stops spend? | Finest period |
|---|---|---|---|
| Max RPU-hours, action "Log to system table" or "Alert" | nothing | No | Daily |
| Max RPU-hours, action "Turn off user queries" | RPU-hours consumed | Yes | Daily |
| Max capacity (MaxRPU) | peak RPUs | No | always on |
| Base capacity | floor RPUs per billed second | No | always on |
There is a documented gap in how fast any of it reacts. "A query or transaction is only metered and recorded after the transaction completes, is rolled back, or stopped", and the SYS_SERVERLESS_USAGE reference says the charged-seconds column "is computed after transactions end, and hence can be 0 while a transaction runs." One query may run for "86,399 seconds (24 hours)" first. A daily limit cannot see that spend until the transaction ends, so pair it with an anomaly monitor, as AWS itself suggests and as AWS Budgets versus Cost Anomaly Detection works through.
Are Concurrency Scaling and Redshift Spectrum charged separately on Redshift Serverless?
No. "You do not need to pay for concurrency scaling and Redshift Spectrum separately because they are both included with Amazon Redshift Serverless", and scaled capacity bills at the ordinary rate: "Your Amazon Redshift Serverless billing includes both base compute and scaled capacity at the same RPU rate."
Data lake queries change billing unit entirely. Spectrum on a provisioned cluster bills bytes: "You are charged for the number of bytes scanned by Redshift Spectrum, rounded up to the next megabyte, with a 10 MB minimum per query." On serverless they bill time: external-data queries "are included in the amount billed for Amazon Redshift Serverless in RPU-hr amounts."
Compare the floors. Spectrum's 10 MB minimum at $5.00 per TB is $0.00005 per query. The serverless 60-second minimum at the default 128-RPU base is $0.80: 16,000 times as much for a query that touches almost nothing, and 1,000 times as much even at 8 RPUs. If your data lake workload is thousands of tiny probes against Parquet in S3, the billing unit is against you, and the answer is fewer and larger scans that each read less, which partition projection arranges without a crawler.
One correction while you are in that section. AWS's Concurrency Scaling example says "A 10 rg.4xlarge node Redshift cluster in US-West-1 costs $33.66 per hour." and then computes "The per-second on-demand rate for Concurrency Scaling is $36.66 x 1/3600 = $0.00935 per second." $36.66 divided by 3600 is $0.01018. The published result is $33.66 divided by 3600, so the $36.66 is a typo.
Where do AWS's own Redshift Serverless pricing pages disagree?
In three places, each of which changes a plan. First, the base capacity ceiling. The capacity page says you can adjust the setting "from 4 RPUs to 512 RPUs", then says two paragraphs later that "The maximum base RPUs available, 1024, adds the highest level of computing resources to your workloads." The pricing page takes the higher figure with no qualification: "You can adjust this capacity from 4 to 1024 RPUs."
Second, where 1024 is available. The capacity page's region list ends with "Europe (Frankfurt)". The serverless considerations page, under "The maximum base RPU capacity of 1024 is only available in the following AWS Regions:", ends the same list with "Europe (London)". Four entries match, the fifth does not. Check your console before sizing a European workgroup that high.
Third, reservations. The pricing page offers "up to 45% for a 3-year term or up to 24% for a 1-year term", and the Redshift FAQ agrees. The serverless reservations page mentions no three-year term at all, describing a commitment "for a year at a discount from on-demand (OD) rates, with no upfront payment", and splits the one-year number differently: "These discounts can be up to 20 percent with the no-upfront option, or up to 24 percent when you pay all-upfront."
What it says without ambiguity is the part to weigh: "Serverless reservations are
billed hourly and metered per second, offering a consistent billing model, 24
hours a day, seven days a week". A reservation bills around the clock whether you
query or not, which is the opposite of what serverless was bought for. Measure
first, under the Redshift:ServerlessUsage usage type in Cost
Explorer, whose divergence from the Cost and Usage Report is covered in
Cost Explorer versus the CUR.
One last note the billing page buries under a zero-ETL heading: "Use the lower base RPU capacity of 8 RPU where available for workloads." AWS's own advice is to come down from the 128-RPU default, and changing your mind later is not free: "Editing your workgroup's base capacity might cancel some of the queries running on your workgroup." Set it low, measure, raise it.