Overview

"Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance". At a high level S3 has the following characteristics:

  • Object based storage for static files that do not change. EG: JPEG, MOV, etc..
  • Objects are stored in "buckets"
  • Files from 0 Bytes - 5TB in size
  • S3 has a universal namespace across all tenants and must be unique
  • S3 buckets and objects have a HTTPS endpoint associated to them
  • Successful uploads to an S3 buckets return a HTTP 200 Ok message
Note
S3 is not suitable for databases or operating systems.

Features

S3 has the following features.

  • Globally resiliant service
  • Tiered storage classes
  • Lifecycle management
  • Object versioning
  • Encryption
  • Security Policies

Objects

Objects are just files stored as key / value pairs

json
{
  "Key": "Name",
  "Value": "FileData",
  "VersionID": "VersionNumber",
  "Subresources": [
    "ACLs",
    "Torrent"
  ]
}

Data Consistency

There are two methods to maintain data consistency.

Read After Write Consistency

  • For PUTs of a new object
  • Can immediately read object after PUTing it to S3

Eventual Consistency

  • For overwrite PUTs and DELETEs
  • Can take some time to propagate changes
  • May be reading the old file on GETs or still see the old file on DELETEs

Storage Classes

There are 6 storage classes for S3 services. See link for further details on each tier.

S3 - Standard

  • The original S3 service
  • 99.99% uptime
  • 11 x 9s durability

S3 - IA (Infrequently Accessed)

  • Infrequent accessed data but requires rapid access when needed

S3 - One Zone - IA

  • Lower cost IA in a single availability zone

S3 - Intelligent Tiering

  • Uses AI to automatically move data to the most cost effective storage tier

S3 - Glacier

  • Low cost storage with configuratable retreival times from minutes to hours

S3 - Glacier Deep Archive

  • Lowest cost storage with a minimum of 12 hours retrieval time

Cost

Cost of the service is calculated on a number of factors.

  • Storage volume
  • Number of requests
  • Storage management
  • Data transfer

Transfer acceleration

  • Uses AWS cloudfront to upload files to an AWS pop close to the user
  • The file is then transferred to the S3 bucket across the AWS backbone

Cross region replication

  • Users upload a file to a "primary" bucket the file is then replicated to a "secondary" bucket in another AWS region

Transfer acceleration

  • Uses AWS cloudfront to upload files to an AWS pop close to the user
  • The file is then transferred to the S3 bucket across the AWS backbone

Cross region replication

  • Users upload a file to a "primary" bucket the file is then replicated to a "secondary" bucket in another AWS region

Security

S3 buckets can be secured in the following ways.

Bucket Policies

  • Applies to the whole bucket

Object Policies

  • Applies to individual files

IAM Policies for Users and Groups

  • Applies to users and groups
# aws
# s3
# cloud