Simple Notification Service (SNS)
Kinesis + MQ
Databases & Analytics


  • Amazon S3 has a simple web services interface that you can use to store and retrieve any amount of data, at any time, from anywhere on the web.
  • It uses the same highly scalable, reliable, fast, inexpensive data storage infrastructure that Amazon uses to run its own global network of web sites.


  • A bucket is a container for objects stored in Amazon S3.
  • Every object is contained in a bucket.
  • They must have a globally unique name and the name must follow the naming convection.
  • You can configure buckets so that they are created in a specific AWS Region.
  • You can also configure a bucket so that every time an object is added to it, Amazon S3 generates a unique version ID and assigns it to the object.


  • Objects are the fundamental entities stored in Amazon S3.
  • Objects consist of object data and metadata.
  • Objects can range in size from a minimum of 0 bytes to a maximum of 5 terabytes.
  • The data portion is opaque to Amazon S3.
  • The metadata is a set of name-value pairs that describe the object.
    • These include some default metadata, such as the date last modified, and standard HTTP metadata.


  • A key is the unique identifier for an object within a bucket.
  • Every object in a bucket has exactly one key.
  • The combination of a bucket, key, and version ID uniquely identify each object.

Object Versioning

  • Use Amazon S3 Versioning to keep multiple versions of an object in one bucket.
  • It is defined at the bucket level; not at the object level.
  • For example, you could store my-image.jpg (version 111111) and my-image.jpg (version 222222) in a single bucket.
  • S3 Versioning protects you from the consequences of unintended overwrites and deletions.
  • You can also use it to archive objects so that you have access to previous versions.
  • You must explicitly enable S3 Versioning on your bucket.
    • By default, S3 Versioning is disabled.
  • If S3 Versioning is enabled, Amazon S3 assigns a version ID value for the object.

Uploading objects using multipart upload API

  • Multipart upload allows you to upload a single object as a set of parts.
  • Each part is a contiguous portion of the object's data.
    • You can upload these object parts independently and in any order.
  • If transmission of any part fails, you can retransmit that part without affecting other parts.