S3 storage classes are fundamentally about trading off access speed and durability for cost, but the "durability" aspect is often misunderstood.

Let’s see it in action. Imagine you have a petabyte of data.

First, you’d likely put most of it into S3 Standard. This is your default, general-purpose storage. It’s designed for frequently accessed data, offering low latency and high throughput. Your web server’s assets, dynamic website content, or active application data would live here.

{
  "Bucket": "my-awesome-bucket",
  "Key": "images/logo.png",
  "StorageClass": "STANDARD",
  "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
  "LastModified": "2023-10-27T10:00:00.000Z",
  "ContentLength": 1024,
  "ContentType": "image/png"
}

For data you access less often but still need quick retrieval, you’d look at S3 Standard-Infrequent Access (S3 Standard-IA). Think of backup archives or disaster recovery files that you might need to pull quickly in an emergency. It’s cheaper than Standard because you’re paying a retrieval fee.

{
  "Bucket": "my-awesome-bucket",
  "Key": "backups/db_20231026.gz",
  "StorageClass": "STANDARD_IA",
  "ETag": "\"abcdef1234567890abcdef1234567890\"",
  "LastModified": "2023-10-27T09:00:00.000Z",
  "ContentLength": 536870912,
  "ContentType": "application/gzip"
}

Then there’s S3 One Zone-Infrequent Access (S3 One Zone-IA). This is even cheaper than Standard-IA, but with a crucial difference: your data is stored in only one Availability Zone (AZ). If that AZ experiences a catastrophic event, your data is gone. This is suitable for secondary backups or data that can be easily regenerated.

{
  "Bucket": "my-awesome-bucket",
  "Key": "logs/archive/app_2023-10-01.log",
  "StorageClass": "ONEZONE_IA",
  "ETag": "\"fedcba0987654321fedcba0987654321\"",
  "LastModified": "2023-10-26T08:00:00.000Z",
  "ContentLength": 1073741824,
  "ContentType": "text/plain"
}

For long-term archival where retrieval times can be hours, you have S3 Glacier Instant Retrieval. It’s cheaper than IA classes and offers millisecond retrieval, similar to Standard-IA, but at a lower cost per GB. This is good for regulatory archives or media assets you rarely need but must be accessible.

{
  "Bucket": "my-awesome-bucket",
  "Key": "medical-records/patient_xyz_2022.pdf",
  "StorageClass": "GLACIER_IR",
  "ETag": "\"1234567890abcdef1234567890abcdef\"",
  "LastModified": "2023-01-15T07:00:00.000Z",
  "ContentLength": 524288,
  "ContentType": "application/pdf"
}

Next, S3 Glacier Flexible Retrieval (formerly S3 Glacier) offers even lower costs for data you rarely access and can wait hours for. You can choose between expedited (1-5 minutes), standard (3-5 hours), or bulk (5-12 hours) retrieval. This is ideal for deep archival like historical records or scientific data.

{
  "Bucket": "my-awesome-bucket",
  "Key": "scientific-data/experiment_run_1001.csv",
  "StorageClass": "GLACIER",
  "ETag": "\"abcdef0123456789abcdef0123456789\"",
  "LastModified": "2021-05-20T06:00:00.000Z",
  "ContentLength": 10485760,
  "ContentType": "text/csv"
}

Finally, S3 Glacier Deep Archive is the absolute cheapest option, designed for data that is rarely, if ever, accessed and can take 12-48 hours for retrieval. Think of it as a digital tape library replacement for compliance or long-term preservation.

{
  "Bucket": "my-awesome-bucket",
  "Key": "legal-hold/case_456_2018_full.zip",
  "StorageClass": "DEEP_ARCHIVE",
  "ETag": "\"0987654321fedcba0987654321fedcba\"",
  "LastModified": "2018-11-11T05:00:00.000Z",
  "ContentLength": 2147483648,
  "ContentType": "application/zip"
}

The "durability" of S3, across all these classes, is consistently advertised as 99.999999999% (11 nines). This isn’t a guarantee against data loss from a single hardware failure; it’s a statistical measure over a year, accounting for failures across multiple devices, servers, and even entire Availability Zones. S3 achieves this by redundantly storing your data across at least three AZs for Standard, Standard-IA, Glacier Instant Retrieval, Glacier Flexible Retrieval, and Glacier Deep Archive. S3 One Zone-IA, by design, only stores data in one AZ, thus its durability is lower and it’s not recommended for critical data.

The primary lever you control is the StorageClass parameter when uploading an object or by using S3 Lifecycle rules to transition objects between classes over time. For example, a lifecycle rule might move objects from STANDARD to STANDARD_IA after 30 days, then to GLACIER after 180 days.

What most people don’t realize is that the retrieval fees for IA and Glacier classes can significantly outweigh the storage cost savings if you access the data more frequently than anticipated. For example, retrieving 1 GB from S3 Standard-IA costs $0.01 per GB, but storing it is only $0.0125 per GB per month. If you retrieve that 1 GB more than once a month, you’re already paying more than keeping it in S3 Standard.

Once you’ve mastered storage classes and lifecycle policies, your next challenge will be managing cross-region replication for disaster recovery.

Want structured learning?

Take the full S3 course →