S3 is effectively a key/value store where the value is an object and an object is a file.
At a high-level:
- In our S3 account, you have your buckets.
- You can put objects (read: files) in your buckets.
- You can read from your buckets as well.
- You can host web pages out of your buckets.
A slightly lower, but still high level:
- Infinitely scalable.
- Files can be as small as zero bytes or as large as 5 terabytes.
- 99.9% availability (built for 99.99%).
- 99.999999999% durability.
S3 has a few different storage tiers:
- Standard—this is what we’ll be using today.
- Standard-Infrequent Access.
- One Zone-Infrequent Access.
- Glacier Instant Retrieval
- Glacier Flexible Retrieval
- Glacier Deep Archive
- S3 Intelligent-Tiering—I don't know, but I'll pay you to optimize this for me, AWS.
- Putting new objects in S3 is immediate. You’ll get back a 200 response.
- Updating and removing objects is eventually consistent. Users might get an old version. (This has literally never happened to me.)
- Uploading to S3 is free.
- You get charged for storage.
- You get charged for requests. (We’ll learn how to mitigate this later.)