Amazon S3 storage classes: which one for which business file
S3 has eight storage classes and most buckets use one. Here is how to match the classes to the files a business actually keeps, from the contracts people open daily to the scanned archive nobody wants to see again, and how to set the class without paying for the move twice.
Decide by file, not by bucket: S3 Standard for what people open now, Intelligent-Tiering for shared folders with no clear pattern, Standard-IA or Glacier Instant Retrieval for closed-out files you still need on demand, and Deep Archive for records kept to satisfy a retention rule. Set the class at upload when you already know, use a lifecycle waterfall with an ObjectSizeGreaterThan filter when you do not, and respect the 128 KB and minimum-duration rules, because those are what turn a cheaper class into a more expensive one.
Every object in Amazon S3 has a storage class, and unless you chose one it is S3 Standard. That is the right default for files people open, and the wrong one for the five-year-old scans that make up most of a business archive by volume. The classes exist to let you pay less for files you touch less, in exchange for a minimum stay, a retrieval fee, or a wait.
The AWS documentation describes the classes by durability, availability and access pattern. This guide turns that around and starts from the files: what a business keeps, how often someone needs it, and which class that points to. It then covers how to set the class, by upload, by copy or by lifecycle rule, and the handful of constraints that decide whether the saving is real.
The classes in one list
The names below are what the console shows; the codes in parentheses are what the API, the CLI and lifecycle rules use.
- S3 Standard (STANDARD): the default. No minimum duration, no minimum billable size, no retrieval fee, millisecond access.
- S3 Intelligent-Tiering (INTELLIGENT_TIERING): moves each object between Frequent, Infrequent and Archive Instant Access tiers based on when it was last read. No retrieval fees, a small per-object monitoring fee, and objects under 128 KB are never monitored or moved.
- S3 Standard-IA (STANDARD_IA): millisecond access, 30-day minimum, 128 KB minimum billable size, per-GB retrieval fee. Stored across three or more Availability Zones.
- S3 One Zone-IA (ONEZONE_IA): the same terms as Standard-IA but in a single Availability Zone and cheaper. Not resilient to losing that zone.
- S3 Glacier Instant Retrieval (GLACIER_IR): millisecond access, 90-day minimum, 128 KB minimum billable size, retrieval fee. For archive data read about once a quarter.
- S3 Glacier Flexible Retrieval (GLACIER): 90-day minimum, retrieval takes minutes to hours and must be requested first, plus 40 KB of metadata per object.
- S3 Glacier Deep Archive (DEEP_ARCHIVE): 180-day minimum, retrieval takes hours and must be requested first, the same 40 KB per object, the lowest storage rate.
- S3 Express One Zone (EXPRESS_ONEZONE): single-digit millisecond access in one zone for latency-sensitive applications; it lives in directory buckets, not general purpose buckets, so it rarely applies to business documents.
The two questions that decide it
The first question is how soon someone needs the file after they ask for it. Standard, Intelligent-Tiering, both IA classes and Glacier Instant Retrieval all answer in milliseconds, which means a preview opens like any other file. Glacier Flexible Retrieval and Deep Archive do not: the object has to be restored into a temporary copy first, and the person waits minutes to hours, which in a file workspace shows up as a "restore and come back later" step.
The second question is whether you could recreate the file if AWS lost an Availability Zone. One Zone-IA is only for copies you can rebuild, such as a replication target, exported reports, or thumbnails. AWS's own guidance is to use Standard-IA for your primary or only copy of data that cannot be re-created, and nearly every business document is in that category.
Once those two are answered, the remaining choice is about how often the file is read and how big it is, and that is where the per-file map below comes in.
Amazon S3 pricing explained: what a business file archive really costs
Which class for which file
Active working documents, the contracts, proposals and spreadsheets people open this month, belong in S3 Standard. There is no fee for reading them and no minimum stay, so a draft that is replaced tomorrow costs nothing extra.
Files with an unknown or changing pattern, which is most shared folders, belong in S3 Intelligent-Tiering. A project folder is busy for three months and quiet for three years, and Intelligent-Tiering follows that on its own: after 30 days without a read an object moves to the Infrequent Access tier and after 90 to Archive Instant Access, still opening in milliseconds, with no retrieval fee when someone comes back to it. The monitoring fee is per object, so it suits folders of documents, images and media rather than millions of tiny files.
Closed-out files you still need on demand, such as last year's invoices, signed contracts and finished project deliverables, suit S3 Standard-IA if you want to manage the move yourself with a lifecycle rule, or S3 Glacier Instant Retrieval if they will be read less than once a quarter and you can accept a 90-day minimum. Both open instantly; the difference is the retrieval fee and the minimum stay.
Records kept because a regulation or a contract says so, such as scanned paper, old email exports and closed case files, belong in S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive. Nobody expects to open them, and when someone does, a few hours is acceptable. Deep Archive is the cheapest storage AWS sells and the right place for anything with a retention period measured in years; Flexible Retrieval is for archives where a faster, minutes-long retrieval is sometimes worth paying for.
Large originals, such as raw video, design files and database dumps, follow the same logic but the numbers are bigger, so get them right early: a terabyte of footage in Standard costs several times what it costs in Deep Archive, and a lifecycle rule set on the folder at the start avoids ever paying the difference.
- Daily and weekly use: S3 Standard.
- Shared folders with no clear pattern: S3 Intelligent-Tiering.
- Closed but needed on demand: S3 Standard-IA or S3 Glacier Instant Retrieval.
- Kept for compliance, rarely opened: S3 Glacier Deep Archive, or Flexible Retrieval if minutes matter.
- Rebuildable copies only: S3 One Zone-IA.
- Anything under 128 KB: S3 Standard, whatever the folder's rule says.
Setting the class at upload or by copy
You can choose the class when a file is uploaded, with the x-amz-storage-class header in the API or the --storage-class option in the CLI. That is the right move for files you already know are archival, such as a batch of scans going straight to Deep Archive. The console offers the same choice under the upload form's properties.
Changing the class of an object that is already in the bucket is a copy. Copying an object onto itself with a new storage class rewrites it in place, and for anything in the millisecond classes that is instant. Objects already in Glacier Flexible Retrieval or Deep Archive have to be restored first, and the console does not support that copy, so it has to be done from the CLI, an SDK or the API.
# Upload straight into Deep Archive
aws s3 cp ./scans/2019/ s3://amzn-s3-demo-bucket/records/2019/ \
--recursive --storage-class DEEP_ARCHIVE
# Move an existing folder to Intelligent-Tiering by copying it onto itself
aws s3 cp s3://amzn-s3-demo-bucket/projects/ s3://amzn-s3-demo-bucket/projects/ \
--recursive --storage-class INTELLIGENT_TIERING --metadata-directive COPY
# See which class a file is in
aws s3api head-object --bucket amzn-s3-demo-bucket --key projects/brief.pdf \
--query StorageClassaws s3 cp recursive examplesUpload files to Amazon S3: console, CLI and SDK
Setting the class by lifecycle rule
For files whose pattern only becomes clear with age, a lifecycle rule moves them down the classes on a schedule. Transitions only go one way, which AWS calls the waterfall: Standard can move to any colder class, Standard-IA can move to Intelligent-Tiering, One Zone-IA or the Glacier classes, and the Glacier classes can only move further down. Nothing moves back up by rule; that is a restore followed by a copy.
Two constraints decide whether a rule saves money. Since September 2024, objects smaller than 128 KB are not transitioned at all by default, because each transition is a billable request and for small files the request costs more than the storage saves; you can override that with an ObjectSizeGreaterThan filter if you really want to. And a single rule cannot transition an object out of a class before that class's minimum duration has passed: a rule that moves objects to Glacier Instant Retrieval at day 4 cannot send them to Deep Archive before day 94.
Billing changes on the date the rule is satisfied, not when the physical move completes, and so do the minimum-duration clock and the Glacier metadata overhead. The exception is a transition into Intelligent-Tiering, which bills from the moment the move completes.
{
"Rules": [{
"ID": "closed-projects-waterfall",
"Status": "Enabled",
"Filter": {
"And": {
"Prefix": "projects/",
"ObjectSizeGreaterThan": 131072
}
},
"Transitions": [
{ "Days": 90, "StorageClass": "STANDARD_IA" },
{ "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
]
}]
}S3 lifecycle rules examples for versioned bucketsWhen to use S3 Glacier Deep Archive
The mistakes that cost more than Standard
- Putting small files in an IA or Glacier Instant class: a 12 KB file is billed as 128 KB, and in the Glacier classes carries 40 KB of metadata on top.
- Deleting or moving before the minimum: 30, 90 or 180 days are charged whether the object stayed or not, so a rule that keeps shuffling objects restarts a minimum at each step.
- Archiving the working copy: a folder people still open should never reach Flexible Retrieval or Deep Archive, because every open becomes a restore request and a wait.
- One Zone-IA for the only copy: it is as durable as Standard-IA against disk failure but not against losing the zone, and AWS says so.
- Forgetting that reads count: in Intelligent-Tiering a preview or a download is an access, which resets the 30-day clock. That is good for files people use and a reason to keep a bulk scanning tool from touching an archive bucket.
What this looks like in a workspace
A file workspace over the bucket makes the class visible and the consequences manageable. BucketDesk shows the storage class on each file alongside its size and last modified date, so a folder that drifted into Deep Archive is obvious before someone tries to open it. Files in the millisecond classes preview as normal. For objects in Glacier Flexible Retrieval or Deep Archive, Ultra plan operators can request a restore from the file itself, choosing the retrieval tier and how long the temporary copy stays readable, instead of switching to the console or the CLI.
Because BucketDesk reads the bucket through a scoped IAM role in your account, the class decisions stay yours: lifecycle rules, Intelligent-Tiering configuration and the per-GB rates all live on your AWS bill, and the workspace follows whatever you set.
Restore files from S3 Glacier Flexible Retrieval and Deep ArchiveArchiving files in Amazon S3: the guideSee what the workspace does with a bucket
Minimum is free. Deploy a scoped role with CloudFormation, sign in, and browse, without handing anyone an access key.
Primary sources
Discussion
0 comments · open to guests · moderatedLiked this? Get the next article by email. No schedule, no filler, one click to leave.