Description

Ensure that Compute Engine VM instances left in a Suspended state do not retain attached persistent disks unnecessarily, and that suspended instances are reviewed to confirm they are still required, since suspension preserves both the disks and the in-memory state at ongoing cost.

Rationale

A suspended VM instance continues to incur charges for its persistent disks (and, depending on configuration, reserved resources) while providing no active business value if it is not going to be resumed. Instances left in a suspended state indefinitely, with persistent disks still attached, represent both an unnecessary cost and an unmanaged asset that may be forgotten, potentially retaining stale data or unpatched software long after it was last actively used.

Impact

  • Reduces unnecessary ongoing storage cost from disks attached to indefinitely suspended instances

  • Reduces the risk of forgotten, unmanaged, and unpatched instances persisting in the environment

  • Requires a decision process to distinguish instances that are legitimately suspended for planned resumption from those that should be deleted

Default Value

There is no automatic cleanup of suspended VM instances or their attached disks; they persist, and their associated cost continues, until manually addressed.

Pre-Requisites

  • IAM permissions to view and manage Compute Engine instances and disks (e.g., Compute Instance Admin)

  • A documented review process for determining whether a suspended instance is still required

Test Plan

  1. Sign in to the Google Cloud Console at https://console.cloud.google.com.

  2. Select the relevant project.

  3. Navigate to Compute Engine > VM instances and filter or review instances with a Suspended status.

  4. For each suspended instance, review its attached persistent disks and how long it has been suspended.

  5. Confirm with the resource owner whether the suspended instance is still required.

  6. If a suspended instance is no longer required, follow the implementation steps.

Implementation Steps

  1. Sign in to the Google Cloud Console at https://console.cloud.google.com.

  2. Select the relevant project.

  3. Navigate to Compute Engine > VM instances and select the suspended instance no longer required.

  4. If the instance should be preserved for future resumption but its cost should be reduced, evaluate resuming it and shutting it down, or exporting a snapshot/image and deleting the instance.

  5. If the instance and its disks are no longer needed, select Delete, confirming which attached persistent disks should also be deleted.

  6. Confirm the instance and any unnecessary disks no longer appear in the project's resource list.

  7. Document the disposition (resumed, snapshotted, or deleted) for the instance's owner and records.

Backout Plan

  1. Sign in to the Google Cloud Console at https://console.cloud.google.com.

  2. Select the relevant project.

  3. If a snapshot or image was taken prior to deletion, navigate to Compute Engine > Snapshots or Images and create a new instance or disk from it to restore the workload.

  4. Reattach the restored disk to a new or existing instance as needed.

  5. Verify the restored workload functions as expected.

Reference