Missing Scheduled Shutdown for Non-Production Azure Virtual Machines
Yulia Perlis
Service Category
Compute
Cloud Provider
Azure
Service Name
Azure Virtual Machines
Inefficiency Type
Inefficient Configuration
Explanation

Non-production Azure VMs are frequently left running during off-hours despite being used only during business hours. When these instances remain active overnight or on weekends, they generate unnecessary compute spend. Azure offers built-in auto-shutdown features that allow teams to define daily stop times, retaining disk data and configurations without paying for VM runtime. Implementing scheduled shutdowns in dev/test environments is a simple, low-risk optimization that can reduce compute costs by 30–60%.

Relevant Billing Model

Azure VMs are billed per second, with a minimum of one minute, based on:

  • VM size and type
  • Operating system and licensing
  • Runtime duration

Note: Storage (managed disks) continues to incur charges even when the VM is stopped.

Detection
  • Identify VMs labeled or tagged as dev/test/staging
  • Use Azure Monitor or Cost Management to assess usage and uptime patterns
  • Detect VMs with consistent business-hours usage but 24/7 runtime
  • Review VM configuration to check whether auto-shutdown is enabled
Remediation
  • Enable Azure’s built-in auto-shutdown setting for applicable non-prod VMs
  • Alternatively, configure shutdown/start schedules using Azure Automation or Logic Apps
  • Preserve state using managed disks, snapshots, or generalized images
  • Review schedules periodically to align with changing team usage
Relevant Documentation