cloud, letter tiles, word, text, data, internet, computer, storage, server, technology, web, digital, server, server, server, server, server
Photo by Shotkitimages on Pixabay

Cost Control

Part of Cloud resource optimisation

Finding idle cloud resources with ongoing charges

Trace billable idle cloud resources to their owners and purpose before stopping or deleting VMs, disks and addresses.

Match recurring bill items to resource IDs, then check provider state and recent use to find idle resources that still incur charges. A running AWS EC2 instance is billed even when idle, and stopped VMs can leave disks or networking resources that still cost money.

Trace the charge to a resource

Start with a recent billing period that covers normal work. List recurring charges by account, project or subscription, including resource details where available, and keep the billing unit and period beside each amount. Compare the charges with the resource inventory and owner register; this is a resource investigation, not a reconciliation of the whole invoice.

Look for running VMs with little useful work, stopped VMs with retained storage, detached disks, unused addresses and old images. Check the provider’s resource names: AWS EBS volumes and Elastic IP addresses, Azure disks and networking resources, and Google Cloud Persistent Disks, IP addresses and custom disk images.

For AWS, check EC2 instance state. A running instance is billed each second, with a one-minute minimum, even if idle; a stopped instance’s usage is not billed. EBS volumes and Elastic IP addresses can still incur charges regardless of instance state, and a hibernated instance is billed while stopping.

For Azure, use the Virtual Machines - Instance View API or Azure Resources Explorer to check power states. A VM in Stopped (Allocated) is billed for instance usage; Stopped (Deallocated) is not, though disks and networking resources can still incur charges.

In the Google Cloud console, open idle-resource recommendations from Recommender. They cover Persistent Disk volumes, IP addresses and custom disk images; recommendations for idle VM instances are separate.

Google Cloud classifies a resource not attached to a VM or other resource for 15 days as idle. A blank Persistent Disk created at least 15 days ago, never attached to a VM and not bound to GKE Pods can be recommended for deletion, with listed savings of 100% of that disk’s cost. For a disk detached for at least 15 days and not bound to GKE Pods, the recommended action is to create a snapshot and then delete it; listed maintenance-cost savings are 35% to 92%.

Cloud Provider Idle Resource Charging Rules

  • AWS EC2 Instance (Stopped)No instance usage charge, but EBS volumes and Elastic IPs still incur costs
  • Azure VM (Stopped - Allocated)Billed for compute usage; disks and networking may still cost
  • Azure VM (Stopped - Deallocated)No compute charge, but storage and network resources may continue to incur costs
  • Google Cloud Persistent Disk (Detached >15 days)Recommended for deletion or snapshot + delete; savings 35%–92%
  • Google Cloud IP Address (Unused)Idle recommendation applies after 15 days of inactivity

Potential Savings from Idle Resource Actions

Google Cloud: Deleted detached disk (15+ days)
100% cost savings
Google Cloud: Snapshot then delete detached disk
35%–92% maintenance-cost savings
AWS: Stopped instance with retained EBS volume
Save on compute; EBS still incurs cost
Azure: Stopped (Deallocated) VM
No compute charge, but storage/network may persist

Establish whether it is unneeded

For each candidate, record its resource ID, charge, owner, environment, last known use, dependencies and observation period. Ask what would fail if it became unavailable, including monthly jobs, recovery roles, maintenance access and planned launches. Unknown ownership calls for investigation, not deletion.

A detached disk might hold data needed for recovery, and a quiet VM might run outside the observation period. A provider’s idle recommendation applies its stated conditions; it cannot decide whether the business needs to retain a resource.

Finding / Next decision

Current purpose confirmed
Retain and set a review date
Needed but apparently oversized or over-scheduled
Assess sizing or operating hours
Owner confirms no continuing use
Plan retirement
Data, dependency or owner uncertain
Investigate before removal

Retire and verify

Before deletion, check what the provider will delete and what will remain, including data, snapshots and images. Record the owner, approved action and recovery requirement.

A staged stop or detach may allow observation through a relevant job cycle where the platform and workload support it. Treat this as a step to assess, not proof that deletion is safe.

After the action, confirm the resource state and compare the next suitable charge period on the same basis. Distinguish stopped compute from retained storage or networking charges, and record an actual billing result only when it is available.

More from Cost Control