Skip to main content

Command Palette

Search for a command to run...

Your dev environment doesn't need to run at 3am

Published
3 min read
Your dev environment doesn't need to run at 3am

Every AWS account has environments that run around the clock — dev, staging, test - but often nobody is using them outside of work hours and the meter is running regardless.

Most teams know this and do nothing about it — it becomes background noise on the bill. This post is about fixing that, permanently, in under 5 minutes.

The quiet cost of always-on infrastructure

Non-prod environments are typically active ~40 hours a week — but billed for 168. This represents roughly 75% of compute spend on idle time, per environment - a whole lot of cheddar. Multiply this across EC2 instances, RDS databases, ECS services — it compounds quickly. NAT Gateways are a hidden offender — data processing charges don't pause when your instances do.

The "fix" most teams reach for: manual stop/start, one-off Lambda scripts, cron jobs that nobody owns. These solutions drift, break silently, and have no visibility. There's no audit trail, no schedule policy, no way to know what's supposed to be running and when.

Introducing Uptime Scheduler

Uptime Scheduler is a scheduling layer for AWS resources — stop and start them on a schedule that matches your working hours, not your billing cycle.

It works by tagging your resources — EC2, RDS, ECS, NAT Gateways — with a schedule. The scheduling engine runs entirely inside your own AWS account via a CloudFormation stack we provide.

Nothing leaves your account — no credentials, no resource data, no IAM access handed to a third party.

The Dashboard is where Uptime Scheduler becomes a product rather than a script

  • Visualise all scheduled resources across regions

  • Publish stop/start commands and confirm schedules are firing correctly

  • Visualise savings analysis

  • Multi-account and multi-region support

Deploy once, tag your resources - done

Step 1: deploy the CloudFormation stack into your AWS account — takes under 5 minutes.

Step 2: tag the resources you want to schedule — e.g. uptime:schedule = 9-6 weekdays .

Step 3: EventBridge fires on schedule, Lambda reads the tags, resources stop and start accordingly.

That's it — no agents, no sidecars, no ongoing configuration.

Connect the Dashboard to get full visibility: what's scheduled, what ran, what saved.The Dashboard reads from your stack — it never executes actions directly in your account (optional stop/start commands based on uptime:env tags).

Your infrastructure, your account, your control — the Dashboard is the window, not the key.

Why is it built this way

Platform and security teams are rightly suspicious of SaaS tools that ask for AWS access. Uptime Scheduler doesn't — the CloudFormation stack is handed to you freely, runs in your account, and is yours to inspect

There is no Uptime Scheduler agent polling your account, no credentials stored on our side.

The stack is the engine; the Dashboard is the interface — separating them was a deliberate design decision, not a limitation.

Teams with strict security postures can run the stack standalone with no Dashboard connection at all.

Getting started

Head over to uptimescheduler.com to find out more, start a free trial and see if it's for you or your team.

Tag a few non-prod resources and watch them stop tonight.

First month's saving usually covers the cost many times over.

Personal note: if you try it, I'd love to hear what it saves you — this was built to solve a real problem and real feedback shapes what gets built next.

9 views