From 57b99e526d55f640b1590b1306c372bbe5c73a5b Mon Sep 17 00:00:00 2001 From: Michele Cereda Date: Sat, 5 Jul 2025 22:06:03 +0200 Subject: [PATCH] chore(kb/aws/s3): expand on storage classes --- ... supported storage classes transitions.png | Bin 0 -> 37673 bytes knowledge base/cloud computing/aws/s3.md | 109 ++++++++++++++---- 2 files changed, 89 insertions(+), 20 deletions(-) create mode 100644 knowledge base/cloud computing/aws/s3 supported storage classes transitions.png diff --git a/knowledge base/cloud computing/aws/s3 supported storage classes transitions.png b/knowledge base/cloud computing/aws/s3 supported storage classes transitions.png new file mode 100644 index 0000000000000000000000000000000000000000..b77ae9590033204e778b771ddfb547e30671ee4d GIT binary patch literal 37673 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 GPyYx1uv&}& literal 0 HcmV?d00001 diff --git a/knowledge base/cloud computing/aws/s3.md b/knowledge base/cloud computing/aws/s3.md index b55dcff..05283c2 100644 --- a/knowledge base/cloud computing/aws/s3.md +++ b/knowledge base/cloud computing/aws/s3.md @@ -1,7 +1,7 @@ # Simple Storage Service 1. [TL;DR](#tldr) -1. [Storage tiers](#storage-tiers) +1. [Storage classes](#storage-classes) 1. [Lifecycle configuration](#lifecycle-configuration) 1. [Further readings](#further-readings) 1. [Sources](#sources) @@ -113,36 +113,105 @@ aws s3api list-objects-v2 \ -## Storage tiers +## Storage classes -| | Standard | Intelligent-Tiering | Express One Zone | Standard Infrequent Access | One Zone Infrequent Access | Glacier Instant Retrieval | Glacier Flexible Retrieval | Glacier Deep Archive | -| ---------------------- | ------------ | ------------------- | ------------------------- | -------------------------- | -------------------------- | ------------------------- | -------------------------- | -------------------- | -| Retrieval charge | ✗ | ✗ | ✗ | per GB retrieved | per GB retrieved | per GB retrieved | per GB retrieved | per GB retrieved | -| Latency | milliseconds | milliseconds | single-digit milliseconds | milliseconds | milliseconds | milliseconds | minutes to hours | hours | -| Minimum storage charge | ✗ | ✗ | 1 hour | 30 days | 30 days | 90 days | 90 days | 180 days | -| Availability Zones | 3+ | 3+ | 1 | 3+ | 1 | 3+ | 3+ | 3+ | +| Class name | Console name | Fees | Latency | Minimum storage charge | Minimum billed object size | # of AZs | +| -------------------------- | --------------------- | -------------------- | ---------------- | ---------------------- | -------------------------- | -------- | +| Standard | `STANDARD` | ✗ | milliseconds | ✗ | | 3+ | +| Express One Zone | `EXPRESS_ONEZONE` | ✗ | single-digit ms | 1 hour | | 1 | +| Intelligent Tiering | `INTELLIGENT_TIERING` | per monitored object | milliseconds | ✗ | | 3+ | +| Standard Infrequent Access | `STANDARD_IA` | per GB retrieved | milliseconds | 30 days | 128 KB | 3+ | +| One Zone Infrequent Access | `ONEZONE_IA` | per GB retrieved | milliseconds | 30 days | 128 KB | 1 | +| Glacier Instant Retrieval | `GLACIER_IR` | per GB retrieved | milliseconds | 90 days | 128 KB | 3+ | +| Glacier Flexible Retrieval | `GLACIER` | per GB retrieved | minutes to hours | 90 days | | 3+ | +| Glacier Deep Archive | `DEEP_ARCHIVE` | per GB retrieved | hours | 180 days | | 3+ | + +_Standard_ is the storage class used by default if none is specified when uploading objects. + +_Express One Zone_ is purpose-built for consistency and low latency. It has the highest performance, and lower request +costs than standard, but is only available within a single Availability Zone at a time. + +_Intelligent Tiering_ optimizes storage costs by automatically moving data between access tiers depending on its usage, +without performance impact or operational overhead.
+Ideal for data that has unknown or changing access patterns. + +Intelligent Tiering automatically moves objects that have not been accessed in some time to lower-cost access tiers that +still offer low-latency and high-throughput. + +
+ +Objects in Intelligent Tiering are stored automatically in the following tiers: + +- _Frequent Access_: contains objects that are uploaded, or transitioned, to the storage class. +- _Infrequent Access_: contains objects that have not been accessed for **30 consecutive days**. +- _Archive Instant Access_: contains objects that have not been accessed for **90 consecutive days**. + +> [!important] +> Object less than 128 KB in size are **not** eligible for auto-tiering. These objects are kept in the Frequent Access +> tier at all times. + +
+ +One can also enable automatic archiving capabilities within Intelligent Tiering for data that can be accessed +**asynchronously**. In this case, it will eventually move objects to access tiers with even lower costs, but that +require explicit retrieval processes. + +
+ +The optional archive access tiers are the following: + +- _Archive Access_: archives objects that have not been accessed for **at least 90 consecutive days**. +- _Deep Archive Access_: archives objects that have not been accessed for **at least 180 consecutive days**. + +Objects in the Archive Access or Deep Archive Access tiers **must first be restored** to higher tiers by using the +`RestoreObject` action. + +
+ +_Standard Infrequent Access_ and _One Zone Infrequent Access_ are designed for data that is both **long-lived** and +**infrequently accessed**, but still requires millisecond access.
+Suitable for objects larger than 128 KB that are needed for at least 30 days. + +> [!important] +> S3 charges for object smaller than 128 KB as if they were of 128 KB.
+> Objects deleted, overwritten, or transitioned to a different storage class before the end of the 30-day minimum +> storage duration period will still incur in charges for the full 30 days. + +_Glacier Instant Retrieval_, _Glacier Flexible Retrieval_, and _Glacier Deep Archive_ are designed for low-cost, +long-term data storage and data archiving.
+All these storage classes require minimum storage durations and charge retrieval fees. + +Glacier Instant Retrieval is the only one in the Glacier set that offers milliseconds retrieval and real-time +access.
+Glacier Flexible Retrieval and Glacier Deep Archive archive the data they receive, making it **not** available for +real-time access. ## Lifecycle configuration -> Adding, removing or changing lifecycle rules takes a while.
-> Wait a couple of minutes after the operation to make sure all the bucket's properties are synced. +S3 supports specific lifecycle transitions between storage classes using Lifecycle configurations: -When multiple rules are applied through S3 Lifecycle configurations, objects can become eligible for multiple S3 -Lifecycle actions. In such cases: +![supported storage classes transitions](s3%20supported%20storage%20classes%20transitions.png) + +Objects can be transitioned **down** the storage classes, but **not** up.
+Objects in need to be moved to a higher storage class need to be **_recreated_** in that storage class. This means that +they will take new metadata. + +Other constraints apply, e.g., objects smaller than 128KiB are not usually transitioned in tier.
+See [General considerations for transitions][lifecycle general considerations for transitions]. + +When multiple rules are applied through Lifecycle configurations, objects can become eligible for multiple Lifecycle +actions. In such cases: 1. Permanent deletion takes precedence over transitions. 1. Transitions takes precedence over creation of delete markers. 1. When objects are eligible for transition to both S3 Glacier Flexible Retrieval and S3 Standard-IA (or One Zone-IA), precedence is given to S3 Glacier Flexible Retrieval transition. -When adding S3 Lifecycle configurations to buckets, there is usually some lag before a new or updated Lifecycle -configuration is fully propagated to all the S3's systems.
-Expect a delay of a few minutes before any change in configuration fully takes effect. This includes configuration -deletions. - -Objects can only go down the tiers, not up.
-Other constraints apply, like no transition done for objects smaller than 128KiB.
-See [General considerations for transitions][lifecycle general considerations for transitions]. +> [!important] +> When adding Lifecycle configurations to buckets, there is usually some lag before a new, or updated, Lifecycle +> configuration is fully propagated to all S3's systems.
+> Expect a delay of a few minutes before any change in configuration starts taking effect. This includes configuration +> deletions. Examples: [1][lifecycle configuration examples], [2][s3 lifecycle rules examples]