Immutable Backup and Object Lock Planner
Work out the minimum lock period your backup chain needs, how much locked data you will store and pay for, what a mistaken lock period would cost, and who can still delete your backups on AWS S3, Azure Blob, Wasabi or Backblaze B2.
1. Your storage and backup schedule
Advanced: prices (US East, checked 28 Sep 2026)
One flat price per GB-month is applied to all locked data. Volume tiers (lower prices above 50 TB on AWS and Azure), and request charges are not included. The Wasabi 1 TB monthly minimum is not included. Official price pages: AWS S3, Azure Blob, Wasabi, Backblaze B2.
2. Minimum lock period and locked data
Locked TB is the average over a backup cycle; just before the oldest full expires the amount is higher.
Why the lock must be longer than your retention
How much data is locked
What if the lock period is set by mistake?
Who can delete a locked backup?
| Account | Can delete before the lock expires? | Why |
|---|
Provider notes
- S3 Object Lock works only in buckets with S3 Versioning enabled. It can be enabled on an existing versioned bucket. Once enabled, you can’t disable Object Lock or suspend versioning for that bucket.
- Governance mode: users can’t overwrite or delete a locked object version or change its lock settings unless they have the s3:BypassGovernanceRetention permission and send the x-amz-bypass-governance-retention:true header. The S3 console includes that header by default.
- Compliance mode: a locked object version can’t be overwritten or deleted by any user, including the root user. Its mode can’t be changed and its retention can’t be shortened. Retention can be extended. The only way to delete it before its retention date is to delete the AWS account.
- Legal hold: no fixed period; it stays until removed. Anyone with s3:PutObjectLegalHold can place or remove it.
Sources: S3 Object Lock, Object Lock overview, Configuring Object Lock (AWS documentation).
Checklist before you rely on it
Formulas used
Minimum lock L (days) = R + F – 1 + B
Written per day = full TB ÷ F + incremental TB × (F – 1) ÷ F
Locked TB (lock of D days) = D × written per day
Billed TB (lock of D days) = max(D, m) × written per day, where m = minimum storage duration
Retention-only TB (no lock) = full TB × (R + F – 1) ÷ F + incremental TB × (F – 1) × (2R + F – 2) ÷ (2F)
Retention-only billed TB = full TB × max(R + F – 1, m) ÷ F + (incremental TB ÷ F) × sum over k = 1..F-1 of max(R + F – 1 – k, m)
Extra TB = locked TB – retention-only TB; extra cost = (billed TB – retention-only billed TB) × 1024 × price
Monthly cost = billed TB × 1024 × price per GB-month
Mistake extra per month = max(0, max(A, m) × written per day × 1024 × price – monthly cost)
Assumptions: steady state (the schedule has run for at least one lock period); every backup, full or incremental, is locked for the same period; sizes are as stored after dedup and compression; one flat storage price. Real products may lock differently (for example per block or per restore point) – check your backup software’s documentation.
Estimates are a starting point. Review and test before relying on them in production. HNOrigin is not affiliated with or endorsed by Amazon Web Services, Microsoft, Wasabi or Backblaze. Product names are trademarks of their owners.