man, lighting, technician, lights, lamps, work, job, silhouette, shadow
Photo by HeikoLange on Pixabay

Cost Control

Part of Cloud resource optimisation

Scheduling non-production resources around use

Set operating windows for development and test resources, check provider stop behaviour and observe a full start-stop cycle.

Schedule a non-production resource when its users and jobs have a dependable use window and it can be ready again before work starts. Agree the window with its owner, check dependencies and startup time, then choose supported start and stop actions.

Set the operating window

Review development, test, training and demonstration environments separately. Record users and their time zones, scheduled jobs, maintenance, integrations and the time each environment must be usable.

Check access and job history, then ask owners about infrequent work that those records may miss. Australian teams may also serve people in other time zones.

Allow time for boot, service checks and application warm-up. Set the stop time after the final approved job, with an owner-controlled extension and an expiry for each exception.

Shared services may need a different window from the VMs that depend on them.

Key considerations before scheduling

Time zone alignment
Australian teams may serve users across multiple time zones.
Startup delay allowance
Allow buffer time for boot, service checks and app warm-up.
Exception handling
Include owner-controlled extensions and expiry dates for exceptions.
Shared service timing
Shared services may require different operating windows than dependent VMs.

Choose the action and tool

Stopping compute does not necessarily remove every charge. On AWS, EC2 instance-usage billing ends when an ordinary stop reaches its stopping state, while retained EBS volumes can still cost money.

Azure distinguishes stopped but allocated VMs, which remain billed for compute, from deallocated VMs, which do not; disks and networking may remain charged.

Platform exampleSupported scheduling routeCheck before relying on it
AWS Instance SchedulerConfigured periods and matching tags for supported instancesTag match, permissions, EC2 shutdown behaviour and database stop limits
Azure VM auto-shutdownA configured VM shutdown timeBilling state and the required start process
Google Compute Engine instance scheduleStart and stop operations for eligible VMsZone capacity for restart and applicable restart limitations

Google notes that restarting an instance requires sufficient resources in its zone; TPU instances cannot be restarted.

AWS warns that a mismatched schedule tag can leave an instance running. The AWS Instance Scheduler also assumes EC2 shutdown behaviour is set to Stop; check this before assigning a schedule.

A configured Azure shutdown time alone does not prove the morning start will work.

Platform-specific VM shutdown and billing behaviour

  • AWS EC2Stop: Billing ends when in 'stopped' state. EBS volumes continue to incur charges.
  • Azure VMStopped but allocated: billed for compute. Deallocated: no compute charge. Disks and networking may still incur costs.
  • Google Cloud Compute EngineStart/stop scheduled only for eligible VMs. Restart requires zone capacity; TPU instances cannot be restarted.

Observe a full cycle

Record the affected resource IDs, local time zone, expected states, operator, alert route and manual override. Arrange a first cycle when an owner can check job completion, the resulting billing state, service readiness and a representative user action.

After a comparable period, compare removed compute hours with remaining resource and scheduler charges. If extensions are frequent or startup is unreliable, revise the window or leave the resource running until the use pattern supports a schedule.

More from Cost Control