What an idle dev environment costs: 168 vs 45
There are 168 hours in a week. A team working roughly nine to five uses a non-production environment for about 45 of them. Everything you pay for the other ~123 hours is waste. That is not a rounding error — it is 73% of the running cost. Here it is worked through with real prices.
The arithmetic
45 / 168 = 27%. A dev or staging environment that only needs to be up during working
hours is genuinely used about a quarter of the time it runs. The inverse — 73% —
is the fraction of its compute bill spent on an environment nobody is touching. Nothing about that
number depends on instance choice; it is pure calendar. What varies is how large a bill the 73%
is applied to.
A representative stack
Take a modest, realistic dev + staging footprint in us-east-1 (on-demand, Linux): a small app
tier, one database, one NAT Gateway for egress. The table shows the always-on monthly cost
(rate × 720 hours) against the same resources scheduled to run ~45 hours a week
(rate × ~193 hours over a 30-day month).
| Resource (us-east-1) | Rate/hr | Always-on / mo | Scheduled ~45 hr/wk |
|---|---|---|---|
| 2 × EC2 m5.large (app) | $0.192 | $138.24 | $37.06 |
| 1 × EC2 t3.medium (tooling) | $0.0416 | $29.95 | $8.03 |
| 1 × RDS db.t3.medium (PostgreSQL) | $0.082 | $59.04 | $15.83 |
| 1 × NAT Gateway | $0.045 | $32.40 | $8.69 |
| Total | $0.3606 | $259.63 | $69.61 |
Scheduling this stack recovers about $190/month — roughly 73% of the
compute-and-gateway bill — from a single environment. Two or three such environments per team,
and the number is what pays for the effort of setting scheduling up. The instance-hour rates are
current us-east-1 on-demand figures; NAT Gateway is $0.045/hour.
Stopping compute does not zero the bill. EBS volumes on stopped EC2 instances keep
billing (gp3 at $0.08/GB-month in us-east-1), and RDS provisioned
storage and backups keep billing while the instance is stopped. Scheduling recovers the
compute and NAT charges above; the storage under them is a floor that scheduling does not touch.
Count the saving on compute, not on the whole invoice.
Where the waste actually hides
Compute is the obvious part. The costs people miss when they estimate savings:
- NAT Gateways. Fixed
$0.045/hour per gateway, per AZ, traffic-independent — see the NAT Gateway cost guide. Frequently the biggest single recovery. - The RDS storage floor. A stopped database still bills storage and backups; only the instance-hours stop. Right-size storage separately.
- Orphaned EBS. Volumes on stopped instances — and volumes left behind by terminated ones — bill at the full gp3 rate regardless.
- Idle load balancers. An ALB in a dev VPC bills its hourly charge and LCUs whether or not anything hits it.
- Provisioned IOPS / throughput. Anything provisioned rather than consumed keeps billing while the workload sleeps.
Measure before you schedule
Do not estimate from list prices alone — measure what is actually idle. Two ways:
- Cost Explorer, grouped by usage type. Filter to the non-production account and group by usage type to separate instance-hours (schedulable) from storage (not). The
EC2-Otherbucket is where NAT hides. - upscan. Our free CLI reads Cost Explorer and reports idle EC2, RDS, ECS, and NAT resources with their cost, so you start from measured idle time rather than a guess.
Once you know which resources are genuinely idle overnight, the 73% stops being a slogan and becomes a specific dollar figure for your account.
FAQ
How many hours a week is a dev environment actually used?
A week is 168 hours; a nine-to-five team uses a non-production environment for about 45. The remaining ~123 hours — roughly 73% — are idle but paid for.
How much can scheduling a dev environment save?
For the ~$0.36/hour stack above, running ~45 hours a week instead of 24/7 saves
about $190/month (73%) on compute and NAT. Storage costs continue underneath.
Does stopping EC2 and RDS eliminate the whole bill?
No. EBS volumes on stopped EC2 and provisioned storage on stopped RDS keep billing. Scheduling recovers compute and NAT; the storage floor remains.
Turn the 73% into your number
upscan reads Cost Explorer and reports your idle EC2, RDS, ECS, and NAT resources — free CLI, no signup. Run it once and the slogan becomes a figure for your account.