AWS Product Fundamentals

Simple Storage Service - S3

  • S3 is a global object storage platform that can be used to store objects in the form of text files, photos, audio, movies, large binaries or other object types.
  • S3 is global.
  • We create buckets inside S3.
  • All bucket names must be unique globally. Minimum of 3 and maximum of 63 characters - no uppercase and underscores. Must start with a lower case letter or number and cannot be formatted as an IP address (1.1.1.1).
  • Default 100 buckets per account and hard 1000 - bucket limit via support request.
  • Buckets are region specific.
  • Buckets are merely containers to store Objects (data / files and folders). Note: Folders are also mere Objects.
  • Creating a bucket does not cost any money.
  • Any data inside a bucket is automatically replicated across all AZs in that region where the bucket resides.
  • Buckets can store unlimited amount of Objects (data).
  • Unlimited total capacity for a bucket.
  • An object has two parts. Key and Value.
  • Key represents an Object's name.
  • Value represents the data part of the object.
  • The maximum size of value is 5TB.
  • Each object in a bucket must have a unique name.
  • S3 is an object storage hence cannot be mounted on a server as a block storage.

Cloud Formation (CFN)

Cloud Formation is an Infrastructure as a Code (IaaS) product - we can create, manage, and remove infrastructure using JSON or YAML.

  1. Template: A CFN template is JSON or YAML.
    • It contains logical resources and configuration.
    • A template can create upto 200 resources.
  2. Stack: Stacks are created and modified based on templates, which can be changed and used to update a stack.
    • Stack contains physical resources.
    • All stacks need to have a unique name in that region.
    • Deleting a stack also deletes the physical and logical resources created under that stack.
    • A stack can be updated by uploading a new version of a template.
  3. Physical Resources: Stacks take logical resources from a template and create, update or delete the physical resources in AWS. In below example; catpics bucket (logical resource) in S3 (physical resource).
    • A new logical resource cause new physical resource
    • Removing logical resources cause the stack to delete physical resources
    • Changing logical resources will update with some disruption or replace physical resources.

Cloud formation is effective if we frequently deploy the same infrastructure or we require guaranteed consistent configuration.

Sample JSON CFN template to create S3 bucket

File name: s3bucket.json

{
   "Resources" : {
      "captpics" : {
         "Type" : "AWS::S3::Bucket"
      }
   }
}

The below template will add a new S3 bucket (physical resource) called dogpic (logical resource).

{
   "Resources" : {
      "catpics" : {
         "Type" : "AWS::S3::Bucket"
      },
      "dogpics" : {
         "Type" : "AWS::S3::Bucket"
      }
   }
}

Next: IAM Essentials