Skip to content
Cloud Efficiency Hub

Excess Periodic Backup Copies in Cosmos DB

The short version

Cosmos DB accounts in periodic backup mode take a full backup at a fixed interval (every 4 hours by default) and keep the latest two copies by default.

PointFive Research

Cloud cost research at PointFive

Azure service
Azure Cosmos DB
Category
Databases
Reference
CER-0442
Type
Excessive Data Retention

Explanation

Why the waste happens and who it affects.

Two copies are free; every copy beyond two is billed as backup storage for the full size of the data. When teams lengthen backup retention or shorten the interval, often to satisfy a generic policy such as 'keep 30 days of backups', the number of retained full copies grows quickly: keeping 30 days at the default 4-hour interval would mean 180 full copies of the account's data.

Because periodic backups are managed by the service and aren't visible as resources, this storage is easy to miss and rarely revisited. Microsoft's FinOps guidance includes a Resource Graph query that flags periodic-mode accounts with ten or more copies, or more than two copies with retention of a week or less. For many workloads, continuous backup is a better fit: the 7-day tier provides point-in-time restore with no backup storage charge (restores are billed per GB), while the 30-day and 35-day tiers bill backup storage per GB per region.

Billing model

The pricing dimensions that drive this cost.

Periodic backup copy
A full backup of the account's data taken every backup interval and kept for the retention period
Free copies
Two periodic backup copies are included; each extra copy is billed per GB at the region's backup storage rate
Copy count
Backup retention in hours divided by the backup interval in hours
Continuous backup
7-day tier has no backup storage charge; 30-day and 35-day tiers bill backup storage per GB per region; every restore is billed per GB

How to detect

4 checks to find it in your estate.

  • Run the FinOps toolkit Azure Resource Graph query 'Cosmos DB backup mode details', which selects accounts with properties.backupPolicy.type Periodic and computes copies as backupRetentionIntervalInHours divided by backupIntervalInMinutes/60, flagging accounts with 10 or more copies, or more than 2 copies with retention of 168 hours or less
  • In Cost analysis, filter to Azure Cosmos DB and look for periodic backup storage meters on each account, and compare them with the account's data size as shown in Azure Cosmos DB insights
  • Check whether the retention and interval settings trace to a documented recovery requirement or to a copied default policy
  • For accounts already on continuous backup, check which tier is configured; the default when migrating without specifying a tier is Continuous30Days, which bills backup storage in every region

How to fix

4 ways to remove the waste.

  • Reduce periodic backup retention or lengthen the interval so the copy count matches the actual recovery point and retention requirement, ideally back toward the two free copies
  • Where point-in-time restore within a week meets requirements, migrate to continuous backup at the Continuous7Days tier, which has no backup storage charge; migration from periodic to continuous is one-way and has API and feature prerequisites
  • If longer retention is needed for compliance, consider exporting data periodically with Azure Data Factory or the change feed to lower-cost storage instead of keeping many full periodic copies
  • When migrating, specify the tier explicitly, because omitting it defaults to the 30-day tier

Documentation

Vendor references for pricing and configuration.