Ref: https://learn.cantrill.io/courses/1820301/lectures/41301484 and https://learn.cantrill.io/courses/1820301/lectures/41301485
Overview of S3 Storage and Classes
- 🔧 S3 is quite cheap for the value it provides, but it additionally offers different tiers of storage classes that can save even more costs
- Different tradeoffs between costs and other features (retrievability speed and costs, data replication…)
- S3 storage characteristics:
- 11 nines of durability (99.9…9% durability)
- For 10million objects, expect 1 object loss every 10k years
- ‼️ When you use
S3 PUT
operation, if S3 responds with HTTP/1.1 200 OK
, then the object has been stored durably in S3!
- Content-MD5 Checksums & CRCs (Cyclic Redundant Checks) → detect and fix any data corruption
- Data replication across at least 3 AZs → regional resilience
- ‼️ Exception: One-Zone Infrequent Access storage class!
- First-byte latency of milliseconds EXCEPT for archival classes
- Objects can be made publicly available (e.g. via static website hosting or URLs)
- Billing (assuming no free tier):
- GB/month fee for data stored (different depending on storage class)
- $1/GB of data transferred OUT of S3 (data transfer IN is free)
- Fee per 1k requests
- Additional billing for different storage classes (see each class for details)
- Documentation: https://aws.amazon.com/s3/pricing/
- Storage Classes:
- Amazon S3 storage classes → “warm” storage
- Amazon S3 Glacier storage classes → “cold” storage → archival purposes
- Amazon S3 Intelligent Tiering (special class)
S3 Standard → Default
Diagram: https://github.com/acantril/aws-sa-associate-saac03/blob/main/0700-SIMPLE_STORAGE_SERVICE(S3)/00_LEARNINGAIDS/S3StorageClasses-1.png
- 🔧 Default storage class
- For frequently-accessed data which is important and NOT replaceable!
- No penalties, no discounts, most balanced class of storage when considering features & compromises
- No retrieval fee, no minimum storage duration, no minimum object size
- Normal S3 billing
S3 Standard-Infrequent Access (IA)
Diagram: https://github.com/acantril/aws-sa-associate-saac03/blob/main/0700-SIMPLE_STORAGE_SERVICE(S3)/00_LEARNINGAIDS/S3StorageClasses-2.png
- 🔧 Storage costs ~½ of S3 Standard
- In exchange: there's retrieval fee, minimum storage duration, and minimum object size
- For infrequently-accessed data (~1x/month) which is important and NOT replaceable!
- Save costs on storage… but have extra billing:
- ∃ retrieval fee per GB of data → overall costs increase with frequent data access!
- ❗ IN ADDITION to transfer fee
- ∃ minimum duration charge of 30 days
- Objects can be stored for less time, but charged as if they were stored for 30 days
- ∃ minimum capacity charge of 128kB per object
- If objects are smaller, you still pay like if they were 128kB
- 💡 Good choice if you don't access data frequently, you want to store objects long-term, and don't want to store lots of small objects