S3 – Simple Storage Service

  • 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 (161.10.28.2)
  • 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

              

Leave A Reply

Your email address will not be published. Required fields are marked *