Skip to main content
orphan · gcp

Vector Search indexes not deployed to any endpoint that still show billed cost

resource types
1
rule IDs covered
1
severity
low

What does ZopNight detect here?

Vector Search charges $3.00 per GiB of data processed when an index is built or updated, and bills serving only while the index is deployed. ZopNight flags indexes that are not deployed to any endpoint yet carry billed cost, usually from recent builds or streaming updates, and suggests deleting the index if it is unused.

Signal and threshold

How ZopNight evaluates Vector Search indexes not deployed to any endpoint that still show billed cost.
Field Value
Rule IDsRC-1215
Categoryorphan
Severitylow
Metricnone — pure configuration read
Thresholdnot deployed and billed cost above $0
SourceZopNight
Permissions usedaiplatform.indexes.list · aiplatform.indexes.get

What an index costs when nothing serves it

Vertex AI pricing lists Vector Search charges as per node hour pricing for each VM hosting a deployed index, plus a cost for building new indexes, updating existing ones and streaming updates. Building and batch updates cost $3.00 per GiB processed; streaming inserts cost $0.45 per GiB ingested, and compaction of streamed data is billed again at the batch rate.

An index that is not deployed has no serving nodes, so it has no standing serving charge. What it can keep generating is build and update cost: a scheduled pipeline that rebuilds an index every night, or a stream still writing to it, spends money on an index nobody queries.

Spotting indexes without a deployment

Terminal window
gcloud ai indexes list --region=us-central1
gcloud ai index-endpoints list --region=us-central1

Compare the two lists. An index that no endpoint references is undeployed. Then look for the jobs that update it: batch update pipelines, or clients calling streaming upserts.

How ZopNight knows an index is undeployed

The deployment state comes from a live read of the Vertex AI API, which reports each index’s deployed indexes. ZopNight fires when that list is empty and the billed cost attributed to the index in the billing data is above zero.

Limits of the signal

A billed figure here reflects recent build or update activity, not a guaranteed monthly charge. If the pipeline that rebuilt the index has already stopped, the cost will fall away without any action. There is no minimum age, since the index resource keeps no record of when it was last undeployed, so an index built minutes before its first deployment can appear. With no billed cost, there is no finding.

Sizing the saving on this card

Terminal window
saving = billed cost attributed to the index in the last month

Deleting the index prevents paying to rebuild and maintain it; it does not stop a storage charge, because Vector Search does not bill standing storage for an undeployed index.

Retiring an unused index

  1. Confirm no release process is about to deploy it, and that no endpoint or application expects it.
  2. Stop the batch or streaming jobs that update it; otherwise they may fail or recreate cost.
  3. Delete it with gcloud ai indexes delete INDEX_ID --region=us-central1. Google’s index management guide notes that an index cannot be deleted until all of its deployed indexes are undeployed.
  4. Keep the embeddings source data if you may rebuild later.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

472 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

472 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·