aws s3 general info
AWS S3 (Simple Storage Service) is scalable object storage, durable, and highly-scalable.
Used for file storage (objects) in a scalable way from anywhere on the web. Extremely cost effective.
Management of objects
Any file can be uploaded to S3, these are stored as objects rather than in file systems or data blocks.
Features
- Unlimited storage - total volume and number of storage is unlimited
- Objects can be up to 5TB in size each, minimum being 0 bytes
- S3 buckets - store files (similar to folders)
- Universal namespace - shared by all AWS accounts in a global namespace. Each
bucket name in the world must be globally unique
- Successfully uploaded files return an HTTP 200 code (CLI/API return value)
- Tiered storage with different use cases
- Life cycle management for things like transitioning data to cheaper storage, or
expiring objects (deleting) after a certain time
- Versioning files to ensure they can be rolled back/recovered
Example S3 URL:
https://bucket-name.s3.Region.amazonaws.com/key-name
https://fayecloudguru.s3.us-east-1.amazonaws.com/Ralphie.jpg
Key value store
- key - name of the object (file name)
- value - the data itself
- version id - important for storing multiple versions of the same object
- metadata - data about the data you're storing, like content-type or last-modified
Reliability
S3 is safe across multiple devices, zones, and is disaster resistant. The service is built for between 99.95%-99.99% service availability depending on the S3 tier chosen to store the data.
Designed for 11 9's (99.999999999%) durability for data stored in S3. The loss for a single object at this tier would be 1x every ~10,000 years.
Data security
- Server-side encryption - default encryption on a bucket to encrypt all new objects
- Access control lists (ACLs) - to give fine grained access to individual objects
- Bucket policies - specifying which actions are allowed/denied (ex. allow a user to PUT but not DELETE)