TL;DR: A provisioned Redshift cluster used only during business hours bills all 168 hours a week unless you pause it. Pause (2019) shuts down the compute nodes and stops the hourly compute meter — storage keeps billing (pennies by comparison), and resume brings everything back in 3–5 minutes with data, users, and config intact. The savings only compound when you automate it with EventBridge + a tiny Lambda so nobody has to remember.
The numbers
- Small dc2.large × 2 (~$0.50/hr) 24/7 ≈ $360/mo. Pause nights (6 PM–8 AM) + weekends ≈ 118 paused hours/week, ~50 active → ~$110/mo, saving
$250/mo ($3,000/yr) on a tiny cluster. - Scales linearly with nodes and class: a 4-node ra3.xlplus (~$1.40/hr/node) on the same schedule saves closer to ~$2,400/mo.
- Paused = storage only (single-digit % of a typical bill); compute stops cleanly.
- Field examples: a business-hours reporting cluster went $720 → ~$215/mo (
$505 saved); a dev/test$6,552/yr).ra3.xlplus × 2went ~$1,008 → ~$462/mo (
Do this
- Automate with EventBridge → Lambda → Redshift API — two cron rules and ~15 lines of
boto3callingpause_cluster/resume_cluster(AWS publishes a copy-paste sample):
Or once-a-week: pause Friday 6 PM (cron(0 18 ? * MON-FRI *) # pause weekdays 6 PM cron(0 8 ? * MON-FRI *) # resume weekdays 8 AMFRI), resume Monday 8 AM (MON). - Schedule resume 5–10 minutes early — it takes 3–5 min, so fire it before the earliest user query, not at the same moment.
- Start with non-prod — get the schedule and Lambda right on a dev cluster before touching anything customer-facing.
- Tell the humans — paused clusters refuse connections, so dashboards, ETL schedulers, and after-hours analysts need to know the window.
- Tag the cluster and watch Cost Explorer — pause savings show up cleanly in the Redshift service line within a billing cycle.
Gotchas
- Resume is 3–5 minutes, not instant — schedule the lead time; queries during the paused window get an error, not a slow response.
- Manual scheduling won't stick — calendar reminders work for two weeks, then someone forgets; the savings only compound if automated.
- Pause is not scale-to-zero — you still pick and manage cluster sizing.
- Reserved Instances bill whether paused or not — they pair only with the active hours of a schedule; don't expect pausing to save on RI-covered hours.
Skip this if
- The cluster genuinely runs 24/7 under load — there's no idle window to exploit; the right conversation is Redshift Reserved Nodes instead.
- Usage is bursty, customer-driven, or unpredictable — manual scheduling becomes a headache; Redshift Serverless scales to zero on its own without any schedule.