May 8, 2026 9 min read
Cold storage compared: S3 Glacier vs Azure Archive vs GCS Archive
All three clouds advertise sub-cent-per-GB archival storage. The actual bill depends on retrieval frequency, minimum-duration billing, and how often you accidentally rehydrate. Side-by-side math on real workload shapes.
On the price sheet, archival storage looks like a commodity. AWS, Azure, and Google all offer a tier under one cent per GB-month and market it as the right home for compliance archives, backup retention, and anything you keep "just in case". On the actual bill, the three clouds price archival data very differently once retrieval and minimum-duration billing get factored in.
Here is the side-by-side math, with the workload shapes where each cloud wins and the ones where the cheap headline number turns into a regret-purchase.
The three headline numbers
Storage price per GB-month, in the cheapest commonly-available single-region tier:
- S3 Glacier Deep Archive (us-east-1): $0.00099 per GB-month
- Azure Blob Archive (East US, LRS): $0.00099 per GB-month
- GCS Archive (us-central1): $0.0012 per GB-month
AWS and Azure tie. GCS is roughly 20% more expensive at rest. So far so simple. The complication starts with everything that is not the storage line.
Minimum duration billing, the part nobody quotes
Each cloud charges a minimum storage period regardless of when you delete. Delete early, you still pay to the floor.
- S3 Glacier Deep Archive: 180 days minimum
- Azure Blob Archive: 180 days minimum
- GCS Archive: 365 days minimum
The GCS difference is significant for some patterns. A 6-month compliance retention with a hard delete at month 6 hits the AWS and Azure minimums exactly, but on GCS pays double. For workloads where the retention is tight to a regulatory window, AWS and Azure are cheaper than the per-GB rate alone suggests, and GCS is more expensive than the per-GB rate alone suggests.
Retrieval is where the bills explode
This is the real differentiator and the place teams get hurt. All three clouds charge a per-GB retrieval fee on Archive. None of them make it big and bold on the marketing page.
- S3 Glacier Deep Archive: $0.02 per GB (Standard, 12 hour) or $0.10 per GB (Bulk, 48 hour)
- Azure Blob Archive: $0.022 per GB rehydration plus 1-15 hour wait
- GCS Archive: $0.05 per GB retrieval, available within seconds
Two things stand out. GCS is more than twice as expensive on retrieval as AWS or Azure, but you get the data back instantly. AWS and Azure are cheap on retrieval, but you wait hours and the operational complexity of "is the rehydration job done yet" is real.
For one-off retrievals (the audit-pulls-everything case), the AWS and Azure 12-hour wait is usually acceptable. For workloads where you might need data back during an incident, the wait is unworkable and GCS Archive is actually the cheaper option once you account for engineer time spent waiting.
Three workload shapes
Same dataset across all three clouds: 100 TB stored, kept 24 months, 200 GB retrieved per month on average. We run this for our customers; the answers are not what teams expect.
Compliance archive (write once, read almost never)
100 TB, 24-month retention, 1 GB retrieved per month for occasional legal review. Storage dominates the bill.
- S3 Glacier Deep Archive: ~$103/month storage + ~$0.02/month retrieval = $103/mo
- Azure Blob Archive: ~$103/month storage + ~$0.02/month retrieval = $103/mo
- GCS Archive: ~$125/month storage + ~$0.05/month retrieval = $125/mo
AWS and Azure tied, GCS roughly 21% more expensive. Pick on operational fit (already-on-this-cloud, IAM model) since the dollars are similar.
Backup retention with periodic restores
100 TB, 24-month retention, 5 TB retrieved per month for occasional restore tests and one-off recoveries.
- S3 Glacier Deep Archive: ~$103 storage + ~$100 retrieval = $203/mo (12-hour wait)
- Azure Blob Archive: ~$103 storage + ~$112 retrieval = $215/mo (1-15 hour wait)
- GCS Archive: ~$125 storage + ~$256 retrieval = $381/mo (instant)
AWS wins on cost. GCS is 88% more expensive. The argument for GCS only works if engineering time waiting on rehydration is worth more than the $178/month delta. For most teams, it is not.
Disaster recovery hot copy
100 TB, 24-month retention, 0 GB retrieved in normal operation but we want sub-second access in an actual DR scenario. The shape is wrong for Archive on AWS and Azure since the wait time fails the DR objective.
- S3 Glacier Instant Retrieval: $0.004/GB-mo storage = ~$420/mo + retrieval as needed
- Azure Cool tier: $0.01/GB-mo storage = ~$1,050/mo
- GCS Archive: $0.0012/GB-mo storage = ~$125/mo (sub-second access)
The DR case flips the answer. GCS Archive is by far the cheapest option that actually meets the recovery objective, since AWS Glacier Deep Archive cannot return data fast enough. AWS Glacier Instant Retrieval is the apples-to-apples comparison and it is 3x more expensive.
The mistake we see most often
A team writes a lifecycle policy on AWS that drops everything to Glacier Deep Archive after 30 days. Six months later, a security review pulls a year of access logs for a SOC 2 audit. The retrieval bill is $40,000 and the wait is 48 hours. The CFO asks why the bill spiked. The engineer explains. The retention policy gets revisited.
The variant on Azure is the same shape: Hot to Archive lifecycle with no-one tracking what gets pulled back. The variant on GCS is smaller because Archive retrieval is per-GB only (no wait-time gotcha), but it can still surprise on volume.
The fix in all three cases is the same: model the expected retrieval rate before configuring the lifecycle, set a budget alert on the retrieval line specifically, and pick a slightly warmer tier if the retrieval pattern is unpredictable.
Run the math for your data
Three calculators that cover the full price sheet for each cloud:
- S3 storage class cost calculator for AWS Standard through Deep Archive
- Azure Blob tier cost calculator for Hot through Archive
- GCS storage class cost calculator for Standard through Archive
Each one factors in storage, operations, retrieval, and the minimum-duration penalty. Plug in your bucket profile and compare.
The honest answer on cross-cloud migration
Moving cold data from AWS to Azure or GCS to save 20% on storage almost never pays back once you price the egress. AWS egress is $0.05 to $0.09 per GB. 100 TB out is somewhere between $5,000 and $9,000, one-time. Saving $20/month on storage means a 250-month payback. Cold data in particular is a bad migration target unless the data is going there for new compliance reasons or you need something the source cloud cannot provide.
The right move is almost always to pick the right tier on the cloud the data already lives in. Lifecycle policies, retention windows, and a quarterly review of the actual retrieval bill catch most of the savings without a migration project.
Want us to run this on your real data? The 14-day free audit covers all three clouds if you run on more than one. Read-only access, no card, one-page report at the end.