Standard-class Cloud Storage buckets read almost never that suit Nearline
What does ZopNight detect here?
Standard storage has the highest at-rest price of the main Cloud Storage classes and no minimum storage duration. ZopNight flags buckets whose default class is `STANDARD` and whose average access rate stays below 0.05 operations a day over the last 30 days of available data, and estimates the saving as half the bucket's monthly bill.
Signal and threshold
| Field | Value |
|---|---|
| Rule IDs | RC-1233 |
| Category | rightsizing |
| Severity | low |
| Metric | API operations per day |
| Threshold | under 0.05 operations/day |
| Evaluation window | 30d |
| Source | ZopNight |
| Permissions used | storage.buckets.list · storage.buckets.get · monitoring.timeSeries.list |
Where it applies
Paying hot-data rates for cold data
Cloud Storage prices at-rest data by class. Google’s storage class overview positions Nearline for data “you plan to read or modify on average once per month or less”, trading a 30-day minimum storage duration and retrieval fees for a lower storage rate. Standard has no minimum and no retrieval fee, which is right for busy data and expensive for a bucket nobody opens.
Low-access buckets are common: old exports, datasets from a finished project, archives someone created in the default class because they never picked one.
Checking class and access for a bucket
gcloud storage buckets describe gs://BUCKET_NAMEThe output includes the bucket’s default storage class. For access, chart storage.googleapis.com/api/request_count for the bucket in Metrics Explorer
over the last month. A flat line near zero is the pattern this rule looks for.
Three gates, all required
- The bucket’s default storage class is
STANDARD. Nearline, Coldline and Archive buckets are skipped. - The measured access rate averages below 0.05 operations per day over the last 30 days of available data, which is less than one request every 20 days. There is no minimum history, so a bucket with only a few days of data can qualify.
- A real monthly cost is known for the bucket.
Missing data is not read as idle
If Cloud Monitoring has no access series for the bucket, ZopNight does not assume it is cold; an uninstrumented bucket’s access pattern is unknown, so no finding is raised. A bucket with no priced cost is also skipped.
A half-the-bill estimate
saving = monthly bucket cost x 0.50The 0.50 is a fixed estimate of the storage rate gap between Standard and Nearline, applied to the bucket’s whole monthly cost rather than priced from live per-location rates. The real gap varies by location, and the figure assumes the data actually ends up in Nearline.
Moving the bucket’s data to Nearline
- Confirm objects are read rarely, and that no job reads the whole bucket on a schedule.
- Change the default class:
gcloud storage buckets update gs://BUCKET_NAME --default-storage-class=NEARLINE. - Move existing objects too. Google notes that changing the default class “does not affect any of the objects that already exist in the bucket”; use a lifecycle rule or a rewrite for those.
- Alternatively enable Autoclass, which moves any object not accessed for 30 days to Nearline. The Autoclass page says retrieval and early deletion fees are not charged, except as part of its enablement charges.