A storage class sets what an object costs to keep per gigabyte and month and what it costs to read back: the colder the class, the lower the storage price and the higher the retrieval fee, the request prices and the minimum storage duration. Lifecycle rules move objects between classes by age, version or last access, or delete them. A class that does not fit the access pattern takes back in retrieval, requests and early deletion what it saves on storage.
How it works
All three providers offer several classes for object storage that trade four price elements: the storage price per GB and month, a retrieval fee per GB read, the prices of read and write requests, and a minimum storage duration whose remainder is charged when an object is deleted, overwritten or moved early. Capacity and requests per storage type are covered on block, object and file storage.
AWS
Amazon S3 offers S3 Standard, S3 Express One Zone (one Availability Zone, dearer storage, cheaper requests), S3 Standard-IA and S3 One Zone-IA (30 days minimum, a 128 KB minimum billable object size), S3 Glacier Instant Retrieval (90 days, 128 KB), S3 Glacier Flexible Retrieval (90 days) and S3 Glacier Deep Archive (180 days). S3 Intelligent-Tiering moves objects of 128 KB and more to its Infrequent Access tier after 30 days without access and to Archive Instant Access after 90, for a monitoring fee per object, with no retrieval fee and no minimum duration.
Azure
Azure Blob Storage calls its classes access tiers: hot, cool (30 days minimum), cold (90 days) and archive (180 days). Archive is offline: a blob has to be rehydrated before it can be read, which can take up to 15 hours, and archive exists only with LRS, GRS and RA-GRS. Smart tier moves blobs to cool after 30 days without access, to cold after 90, and back to hot on the next access. It requires ZRS, GZRS or RA-GZRS, does not use archive, bills storage at the rates of the tier the data sits in, and charges a monitoring fee per 10,000 objects above 128 KiB instead of retrieval and early deletion fees.
Google Cloud
Cloud Storage offers Standard, Nearline (30 days), Coldline (90 days) and Archive (365 days). All four are readable in milliseconds, none has a minimum object size, and the three colder ones charge a retrieval fee. The Rapid storage class exists only for zonal buckets through Rapid Bucket, with no minimum duration and no retrieval fee. Autoclass starts objects in Standard and moves them to Nearline after 30 days without access; with Archive as the terminal class, on to Coldline after 90 days and Archive after 365. Objects that are read return to Standard. Autoclass charges a management fee per 1,000 objects and a one-off enablement charge instead of retrieval and early deletion fees.
Lifecycle rules
| AWS | Azure | Google Cloud | |
|---|---|---|---|
| Feature | S3 Lifecycle configuration | Lifecycle management policy | Object Lifecycle Management |
| Actions | Transition, expiration, also for noncurrent versions; AbortIncompleteMultipartUpload | Move cooler, cool back to hot on access, delete, also for versions and snapshots | SetStorageClass, Delete, AbortIncompleteMultipartUpload |
| Conditions | Age, prefix, tags, size, newer versions | Creation, modification, last access, prefix, tags | Age, date, class, prefix, size, versions |
| Cost of a move | Transition request per 1,000 objects | Set Blob Tier operation; the policy is free | Class A operation |
Rules move data almost only colder: S3 supports downward transitions only and skips objects under 128 KB by default; Azure can move a blob from cool back to hot when it is accessed, but cannot rehydrate archived blobs through a rule. One difference shows on the bill: when Google changes the class through a rule there is no retrieval or early deletion fee, and the time already spent counts towards the new minimum; on S3 and Azure the remainder of the minimum is charged when an object leaves its class early. On Azure each update of the last access time costs a transaction, at most once every 24 hours per object. Autoclass buckets refuse SetStorageClass, and Azure rules only delete smart tier objects, never retier them.
What it means for your cost
In billing data each class has its own usage types at AWS, meters at Azure and SKUs at Google; Autoclass bills through SKUs of its own, and Google charges early deletion through early delete SKUs. A cost report by usage type, meter or SKU shows storage shifting between classes, with retrieval, request and transition fees as separate line items in the month they occur. A month with many transitions looks dearer although it lowers the months that follow.
Whether a colder class is a savings opportunity depends on the access pattern: how often data is read, how long an object stays and how large it is. It pays when the lower storage price saves more over the object's lifetime than retrieval, transition and minimum duration cost; where the pattern is unknown, automatic tiering replaces the rule for a fee per object. Data transfer comes on top in every class (data transfer and egress), snapshots belong to backup and disaster recovery, and unused data to idle and orphaned resources.
Where it goes wrong
- Small objects moved to cold classes. Symptom: transition fees exceed the saving. Cause: transitions cost per object, Standard-IA, One Zone-IA and Glacier Instant Retrieval bill at least 128 KB per object, and archived objects add 40 KB of metadata each.
- Deleted before the minimum duration. Symptom: early deletion fees for data long gone. Cause: short-lived data such as logs kept for days sits in a class with a 30, 90, 180 or 365 day minimum.
- The archive used as a working store. Symptom: retrieval and request lines jump with every audit, and reads take hours. Cause: S3 Glacier Flexible Retrieval, Glacier Deep Archive and Azure archive must be restored before reading, and the restored copy is billed as warm storage.
- Old versions without a rule. Symptom: storage grows while the visible content hardly changes. Cause: versioning keeps every overwritten object, and the rule covers current objects only.
- Redundancy and tier do not match. Symptom: the planned tiering cannot be set up. Cause: Azure archive is not available with ZRS, GZRS and RA-GZRS, and smart tier only with them.
Example
List prices in USD per GB, read on 2026-10-16, first volume tier: AWS in Europe (Frankfurt), Azure in Germany West Central with LRS, Google in europe-west3 as a regional bucket. Azure bills binary GB (GiB) according to its pricing page, Google GiB.
| Class | Storage per month | Retrieval |
|---|---|---|
| S3 Standard | 0.0245 | none |
| S3 Standard-IA | 0.0135 | 0.01 |
| S3 Glacier Instant Retrieval | 0.005 | 0.03 |
| S3 Glacier Deep Archive | 0.0018 | 0.024 (Standard) |
| Azure hot | 0.0196 | none |
| Azure cool | 0.01 | 0.01 |
| Azure cold | 0.0045 | 0.03 |
| Azure archive | 0.0018 | 0.024 (standard priority) |
| Cloud Storage Standard | 0.023 | none |
| Cloud Storage Nearline | 0.013 | 0.01 |
| Cloud Storage Coldline | 0.006 | 0.02 |
| Cloud Storage Archive | 0.0025 | 0.05 |
Automatic tiering adds a fee per object: S3 Intelligent-Tiering USD 0.0025 per 1,000 objects and month (Frankfurt), smart tier USD 0.04 per 10,000 objects and month (Germany West Central, ZRS), Autoclass USD 0.0025 per 1,000 objects per 30 days.
Sources
Read on 2026-10-16. AWS: Understanding and managing Amazon S3 storage classes, Managing storage costs with Amazon S3 Intelligent-Tiering, Managing the lifecycle of objects, Transitioning objects using Amazon S3 Lifecycle, Lifecycle configuration elements, Amazon S3 pricing. Microsoft: Access tiers for blob data, Optimize Azure Blob Storage costs with smart tier, Azure Blob Storage lifecycle management overview, Azure Blob Storage pricing. Google: Storage classes, Object Lifecycle Management, Autoclass, Cloud Storage pricing.