- Simple Storage Service(S3) is an object storage service that offers scalability, data availability, security, and performance.
- Use it to store any amount of data for a range of use cases, such as websites, mobile applications, backup and restore, archive, enterprise applications, IoT devices, and big data analytics.
Key Concepts –
- S3 Buckets – Storage container for S3, with a unique name across AWS.
- A strict naming convention is followed –
- Min of 3 characters and a max of 63 characters long
- Can contain only lowercase letters, numbers, periods and hyphens
- Must start with letter or number
- Must not be in IP address format (188.8.131.52)
- Holds unlimited # of objects in the bucket.
- Files uploaded via console, CLI or SDK
- Size – 0 to 5 TB
- All regions support read-after-write consistency for PUTS of new objects into S3
- For PUTS overwriting existing objects or Deletes, we get eventual consistency
S3 Object versioning –
A feature to manage and store old/new/deleted versions of an object.
- By default, versioning is not enabled
- Once enabled object versioning cannot be disabled but can only be suspended/resumed
- Versioning is set at the bucket level (applied to all objects)
- When you DELETE an object, all versions remain in the bucket and Amazon S3 inserts a delete marker
S3 Storage classes –
|Storage Class||Designed for||Durability (designed for)||Availability (designed for)||Availability Zones||Min storage duration|
|STANDARD||Frequently accessed data Most expensive||99.999999999%||99.99%||>= 3||None|
|STANDARD_IA||Long-lived, infrequently accessed data Less expensive than standard/RRS storage||99.999999999%||99.9%||>= 3||30 days|
|GLACIER||Long-term data archiving with retrieval times ranging from minutes to hours Cheapest of all the storage classes||99.999999999%||99.99% (after you restore objects)||>= 3||90 days|
|RRS||Frequently accessed, non-critical data, Less expensive than standard||99.99%||99.99%||>= 3||None|
|ONEZONE_IA||Long-lived, infrequently accessed, non-critical data||99.999999999%||99.5%||1||30 days|
Life cycle policies
An Object lifecycle policy is a set of rules that automate the migration of an object’s storage class to a different storage class
- By Default, Lifecycle policies are not enabled on a bucket/object
- Used for automating object storage management and cost-efficient
S3 Permissions –
Through IAM – Remember IAM policies are attached to Users, Groups, and Roles but not to S3 buckets or objects –
Bucket Policies –
- Policies attached to Bucket and not to Objects in the bucket.
- Policies applied to all objects in the S3 bucket.
- Policies specified what actions are allowed or denied for a particular user
- Written in JSON
S3 Access Control Lists (ACLs)
- ACLs can be used with S3 buckets and Objects
- Manage permissions at the Object level
- Manage access to objects not owned by the bucket owner
- Written in XML and usually used for sharing public read access for objects