Bedrock imported models with zero invocations in 30 days still paying storage
What does ZopNight detect here?
ZopNight flags Amazon Bedrock Custom Model Import models with no `Invocations` activity in the `AWS/Bedrock` namespace for 30 days. An imported model bills $1.95 a month of storage per Custom Model Unit in the Regions AWS lists, even when nobody calls it, and deleting the model recovers that whole storage charge.
Signal and threshold
| Field | Value |
|---|---|
| Rule IDs | RC-1605 |
| Category | idle |
| Severity | medium |
| Metric | Invocations |
| Threshold | zero invocations |
| Evaluation window | 30d |
| Source | ZopNight |
| Permissions used | bedrock:ListImportedModels · bedrock:GetImportedModel · cloudwatch:GetMetricStatistics |
Where it applies
Imported models pay rent even when silent
Bedrock pricing for Custom Model Import has two parts. Inference is billed per Custom Model Unit (CMU) per minute, metered in 5-minute windows that only count when at least one invocation lands in them. Storage is billed monthly: $1.95 per CMU in US East (N. Virginia), US West (Oregon) and Europe (Frankfurt). Importing is free.
So the inference side goes quiet on its own when traffic stops, but storage does not. AWS’s own example, a customized Llama 3.1 8B model with a 128K sequence length, needs 2 CMUs and costs $3.90 a month to store whether or not it serves a single request. Models that were imported for an experiment and forgotten accumulate that fee indefinitely.
Listing imported models and their traffic
aws bedrock list-imported-models \ --query 'modelSummaries[].[modelName,modelArn,creationTime]'
aws cloudwatch get-metric-statistics --namespace AWS/Bedrock \ --metric-name Invocations --dimensions Name=ModelId,Value=<imported-model-arn> \ --start-time 2026-08-26T00:00:00Z --end-time 2026-09-25T00:00:00Z \ --period 86400 --statistics Sumaws bedrock get-imported-model --model-identifier <arn> shows the model’s details, including its
Custom Model Unit settings, which set the storage bill.
What ZopNight checks
The rule reads the Invocations series for the model over the last 30 days. If that series shows
any activity, the model is in use and nothing happens. If the series has no activity, or there is
no series at all for the model, the model counts as idle. The model also needs a positive monthly
price in ZopNight before a finding can exist.
When it stays silent
If ZopNight has no metrics at all for the account in this run, it does not treat every model as idle; it waits for the next evaluation. A model with any invocation in the window is left alone. Findings worth less than $5 a month are not shown, and ZopNight currently prices each imported model’s storage as a single CMU ($1.95), so in practice an idle imported model does not appear on its own today. The manual check above finds it regardless.
The saving is the storage charge
saving = monthly storage cost of the imported modelcost after deletion = 0There is no inference cost to add, because an idle model has no active 5-minute windows.
Removing a model nobody calls
- Confirm no application, agent or evaluation job references the model ARN.
- Keep the source weights in S3 if you might import the model again; re-importing costs nothing.
- Delete it:
aws bedrock delete-imported-model --model-identifier <imported-model-arn> - Add a review date or owner tag to future imports so they do not linger.