Skip to main content
schedule · aws

Provisioned Redshift clusters with under one database connection on average and peak for 30 days

resource types
1
rule IDs covered
1
severity
medium

What does ZopNight detect here?

ZopNight flags provisioned Amazon Redshift clusters whose `DatabaseConnections` average and maximum both stayed below 1 across the 30-day window, with CPU averaging under 5% when that data exists. Pausing suspends on-demand compute billing while storage continues, and ZopNight counts 80% of the cluster cost as the saving.

Signal and threshold

How ZopNight evaluates Provisioned Redshift clusters with under one database connection on average and peak for 30 days.
Field Value
Rule IDsRC-099
Categoryschedule
Severitymedium
MetricDatabaseConnections, CPUUtilization (AWS/Redshift)
Thresholdconnections avg and max < 1, CPU avg < 5%
Evaluation window30d
SourceZopNight
Permissions usedredshift:DescribeClusters · cloudwatch:GetMetricStatistics

Paused clusters pay only for storage

Provisioned Redshift is billed by node type and node count for as long as the cluster runs. The pause and resume documentation says that while a cluster is paused, on-demand billing is suspended and only the cluster’s storage incurs charges. A cluster that no client has connected to in a month is paying full node rates for nothing.

Checking connections and CPU

Terminal window
aws redshift describe-clusters \
--query 'Clusters[].[ClusterIdentifier,NodeType,NumberOfNodes,ClusterStatus]' --output table
for m in DatabaseConnections CPUUtilization; do
aws cloudwatch get-metric-statistics --namespace AWS/Redshift --metric-name $m \
--dimensions Name=ClusterIdentifier,Value=analytics-dev \
--start-time 2026-08-26T00:00:00Z --end-time 2026-09-25T00:00:00Z \
--period 86400 --statistics Average Maximum
done

Conditions for an idle finding

  1. ZopNight has at least 7 days of DatabaseConnections data for the cluster.
  2. Both the average and the maximum are below 1. A floor of 1 rather than exactly 0 tolerates the odd monitoring or health-check connection.
  3. If CPU data is present and covers the window, average CPUUtilization is below 5%.
  4. The cluster has a known monthly cost.

Signals that clear a cluster

An average CPU of 5% or more overrides the empty connection count. That protects clusters that compute without sessions, such as datashare producers. The CPU maximum is deliberately ignored, because idle clusters still run vacuum, analyze and backup jobs that spike CPU briefly. Missing or short connection data means no finding, and the rule never shows a $0 placeholder.

Fixed compute share of the bill

Terminal window
saving = monthly cluster cost x 0.80

The 80% is a conservative estimate of the compute share, since paused clusters keep paying for storage. It is not measured per cluster. A fully idle cluster has no usage pattern to schedule around, so the lever is a manual pause rather than a cron.

Pausing an unused cluster

  1. Confirm that no scheduled queries, ETL jobs or dashboards depend on the cluster.
  2. Pause it: aws redshift pause-cluster --cluster-identifier analytics-dev. Redshift takes a snapshot as it pauses, and the pause typically completes within 15 minutes.
  3. Resume when needed with aws redshift resume-cluster --cluster-identifier analytics-dev.
  4. If it stays unused, take a final snapshot and delete it, or move occasional workloads to Redshift Serverless.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

472 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

472 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·