skip to content

After you delete a virtual machine, the bill barely moves - which charges outlive the machine, and how do you find them?

level: juniorimportance: must knowfreq 66%

answer

  1. one request, several separate rentals
  2. lifecycles are independent of each other
  3. the machine's record will not list them
  4. search by attachment state, not by name
  5. volumes, snapshots, images, reserved addresses

basics

~20 s

Storage and reservations outlive the machine. A block volume that was not marked to be deleted with it, the snapshots and images built from it, and a reserved public address all keep billing. Find them by listing resources attached to nothing, not by reading the machine's record.

solid answer

~40 s

A platform does not rent you "a server"; it rents you several things created together with separate lifecycles: compute time, one or more block volumes, snapshots and images built from them, and often a reserved public address. Deleting the machine ends only the runtime charge. A volume that was not marked to be deleted with the machine stays allocated and keeps billing per gigabyte; snapshots are stored objects in their own right and survive even their source volume; a reserved address is charged because you bought the reservation, not the use. You find them by querying the inventory for state rather than for names - volumes attached to nothing, addresses routed to nothing, images nothing has launched from - in every region and account, including the ones nobody remembers opening.

go deeper

for a junior

Recall that a machine is several rentals, not one: compute time, volumes, snapshots, an image, a reserved address. Deleting the machine ends the runtime charge and nothing else automatically.

for a middle

Explain which dimension each residue is metered on - runtime against gigabytes allocated against a flat reservation - and why an inventory query on attachment state finds them when a cost report grouped by service cannot.

for a senior

Show that you sweep on a schedule across every region and account, rank candidates by monthly charge, and carry last-use evidence per row so an owner can dispute the evidence rather than the deletion.

for a principal

Frame it as a production rate, not a backlog: ordinary work creates residue continuously and nothing fails when it exists, so the lasting fix is deletion at creation time plus a recurring sweep, not one heroic cleanup.

## Why a delete does not stop the bill When you ask a cloud platform for "a server", you do not create one thing. You create a small set of independent rentals that happen to be born together: a unit of **compute time** metered per second or per hour, one or more **block volumes** metered per gigabyte allocated per month, sometimes a **reserved public address**, any **snapshots** taken of those volumes, a **machine image** built from one of them, and often a log or metric stream with a retention of its own. Each has its own identifier, its own lifecycle and its own line on the bill. Deleting the compute unit ends exactly one of those rentals - the runtime one. The others keep running because nothing told them to stop. That is the first and most common shape of **idle and orphaned spend**: a resource still allocated, still charged, and no longer referenced by anything that runs. It is not a billing error and not a provider trick; the capacity genuinely is reserved for you. ## What normally survives | What survives | Why it survives | Evidence that it is orphaned | |---|---|---| | A block volume | Volumes are created and billed separately; only the ones marked to be deleted with the machine go with it | Attached to nothing, no read or write since the machine disappeared | | Snapshots of that volume | A snapshot is a stored object in its own right, not a pointer into a live volume | Its source volume no longer exists and nothing has restored from it | | A machine image | The image holds the blocks it was built from, stored separately | Nothing has launched from it since it was created | | A reserved public address | You bought a reservation, and the reservation is the billable thing | Reserved, routed to nothing | | A managed store left running "just in case" | Instance time is billed while the instance exists, whatever connects | No connections across a full business cycle | Providers differ in the details - some charge a reserved address only while it is attached to nothing and others charge it either way; some account for a snapshot chain by unique blocks and others more coarsely - but the direction is the same everywhere: the storage and the reservation outlive the compute. ## Stopping is not deleting Stopping a machine is a different operation with a different effect. The per-second or per-hour **runtime** charge normally ends, because you are no longer occupying compute capacity. Everything allocated by existence keeps billing: the volumes, the snapshots, the image, the reserved address, and any per-hour licence attached to the machine. A team that stops a fleet "to save money over the holidays" and sees the bill fall by less than half has usually met exactly this: they removed the one dimension metered by time-in-use and kept every dimension metered by allocation. ## Why the bill is the wrong place to start A cost report groups charges by service and by dimension. It will happily tell you that block storage is a large line - which is also true in a perfectly healthy estate. It does not tell you that a particular volume is attached to nothing, because "attached to nothing" is not a billing concept; it is an inventory concept. That is why this waste is found by **reconciliation** - matching what exists against what is used - and not by reading a bill or by intuition. ## How you actually find them Query the platform's own inventory by **state**, per region and per account: 1. Volumes whose attachment is empty, sorted by size, oldest first. 2. Reserved addresses with no target. 3. Snapshots and images whose source no longer exists, and snapshot lineages with no restore ever recorded. 4. Managed stores and clusters with no connection or request in a full business cycle. 5. The same four lists again in every region and account the organisation owns, not just the ones the team uses - residue collects exactly where nobody looks. Then attach two things to each row before anyone deletes anything: the **monthly charge**, so the list can be ranked, and the **last-use evidence** you relied on, so the owner can argue with the evidence rather than with you. A resource with neither is a guess. ## The size of it Individually these are unremarkable - one abandoned volume is a rounding error. They matter because they are produced continuously by ordinary work (every experiment, every rebuild, every migration leaves some) and because nothing ever fails when they exist. Nothing pages, nothing errors, no user complains. A cost that only ever grows and never announces itself is precisely the kind that has to be swept for on a schedule rather than noticed.

  • Does stopping the machine instead of deleting it remove the same charges?
    No. Stopping normally ends only the runtime charge metered per second or hour. The volumes, snapshots, image and reserved address are billed for being allocated, so they continue unchanged. Stopping is the right move for something you will start again; it is not a cleanup.
  • Which of these residues grows over time rather than staying flat?
    Snapshots and any image built from them. A volume charges for a fixed allocated size and an address is a flat reservation, but a snapshot schedule that is still running keeps adding stored bytes every night, so that line rises month after month while the others sit still.
  • Why does an inventory sweep have to cover regions the team never chose?
    Because resources can be created anywhere the account allows, and an experiment or a default in a forgotten place bills exactly like a deliberate one. Residue collects where nobody looks, so a sweep scoped to "our region" systematically misses the cases that survived longest.

Clearing your desk out of a rented office does not end the storage unit down the road: the unit keeps charging every month until you hand the key back, whether or not anything inside it is ever opened.

saying these in an interview costs you the question

  • Deleting a machine always deletes every volume attached to it.
  • An unattached address costs nothing because nothing uses it.
  • Snapshots disappear when their source volume is deleted.
  • A stopped machine costs nothing at all.
  • If it is not in the machine list, it is not being billed.