Bird
Raised Fist0
AWScloud~5 mins

Why S3 matters for object storage in AWS - Why It Works

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Storing files safely and making them easy to access is a common challenge. Amazon S3 solves this by providing a simple way to save and retrieve any amount of data from anywhere on the internet.
When you want to store photos or videos for a website without worrying about running out of space.
When you need to back up important files and want them safe even if your computer breaks.
When you want to share large files with friends or coworkers easily and securely.
When you run an app that needs to save user data like documents or logs without managing your own storage servers.
When you want to archive old data that you rarely use but must keep for future reference.
Config File - bucket-policy.json
bucket-policy.json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowPublicRead",
      "Effect": "Allow",
      "Principal": "*",
      "Action": ["s3:GetObject"],
      "Resource": ["arn:aws:s3:::example-bucket/*"]
    }
  ]
}

This JSON file defines a bucket policy that allows anyone on the internet to read objects inside the bucket named example-bucket. The Version is the policy language version. The Statement contains rules; here it allows public read access to all files inside the bucket.

Commands
This command creates a new S3 bucket named 'example-bucket' where you can store your files.
Terminal
aws s3 mb s3://example-bucket
Expected OutputExpected
make_bucket: example-bucket
This uploads the file 'photo.jpg' from your computer to the 'example-bucket' in S3.
Terminal
aws s3 cp photo.jpg s3://example-bucket/
Expected OutputExpected
upload: ./photo.jpg to s3://example-bucket/photo.jpg
This applies the public read policy to the bucket so anyone can view the files inside it.
Terminal
aws s3api put-bucket-policy --bucket example-bucket --policy file://bucket-policy.json
Expected OutputExpected
No output (command runs silently)
--bucket - Specifies the bucket name to apply the policy
--policy - Points to the JSON file containing the policy
This lists all files currently stored in the 'example-bucket' so you can verify your upload.
Terminal
aws s3 ls s3://example-bucket/
Expected OutputExpected
2024-06-01 12:00:00 12345 photo.jpg
Key Concept

If you remember nothing else from this pattern, remember: Amazon S3 lets you store and access files easily and safely from anywhere without managing your own storage hardware.

Common Mistakes
Trying to upload files before creating the bucket.
The upload fails because the bucket does not exist yet.
Always create the bucket first using 'aws s3 mb' before uploading files.
Not setting a bucket policy when you want public access.
Files remain private and cannot be accessed by others over the internet.
Apply a bucket policy that grants read permissions to the public if you want files accessible.
Using incorrect bucket names with uppercase letters or spaces.
S3 bucket names must be lowercase and follow naming rules; otherwise, commands fail.
Use only lowercase letters, numbers, and hyphens in bucket names.
Summary
Create an S3 bucket to hold your files using 'aws s3 mb'.
Upload files to the bucket with 'aws s3 cp'.
Set a bucket policy to control who can access your files.
List files in the bucket to confirm your uploads.

Practice

(1/5)
1. What is the main purpose of Amazon S3 in cloud computing?
easy
A. To run virtual servers
B. To store and retrieve files easily
C. To manage databases
D. To monitor network traffic

Solution

  1. Step 1: Understand S3's role

    Amazon S3 is designed to store objects like files and data in the cloud.
  2. Step 2: Compare with other services

    Unlike servers or databases, S3 focuses on file storage and retrieval.
  3. Final Answer:

    To store and retrieve files easily -> Option B
  4. Quick Check:

    S3 = File storage [OK]
Hint: S3 is about files, not servers or databases [OK]
Common Mistakes:
  • Confusing S3 with compute services
  • Thinking S3 manages databases
  • Assuming S3 monitors networks
2. Which of the following is the correct way to create a new S3 bucket using AWS CLI?
easy
A. aws s3 mb s3://my-bucket
B. aws s3 make-bucket --name my-bucket
C. aws s3 new-bucket my-bucket
D. aws s3 create-bucket --bucket my-bucket

Solution

  1. Step 1: Recall AWS CLI syntax for bucket creation

    The correct command uses 'mb' (make bucket) with the bucket URL.
  2. Step 2: Check each option

    aws s3 mb s3://my-bucket matches the correct syntax: 'aws s3 mb s3://my-bucket'. Others are invalid commands.
  3. Final Answer:

    aws s3 mb s3://my-bucket -> Option A
  4. Quick Check:

    Bucket creation CLI = aws s3 mb [OK]
Hint: 'mb' means make bucket in AWS CLI [OK]
Common Mistakes:
  • Using 'create-bucket' instead of 'mb'
  • Omitting 's3://' prefix
  • Using non-existent commands like 'new-bucket'
3. Given this AWS CLI command:
aws s3 cp file.txt s3://my-bucket/
What happens after running it?
medium
A. Deletes file.txt from the bucket named my-bucket
B. Downloads file.txt from the bucket named my-bucket
C. Uploads file.txt to the bucket named my-bucket
D. Lists contents of my-bucket

Solution

  1. Step 1: Understand the 'cp' command in AWS CLI

    'cp' means copy. Here it copies a local file to the S3 bucket.
  2. Step 2: Analyze source and destination

    Source is local file 'file.txt', destination is 's3://my-bucket/', so it uploads the file.
  3. Final Answer:

    Uploads file.txt to the bucket named my-bucket -> Option C
  4. Quick Check:

    aws s3 cp local to s3 = upload [OK]
Hint: 'cp' copies files; source to destination [OK]
Common Mistakes:
  • Confusing upload with download
  • Thinking 'cp' deletes files
  • Assuming it lists bucket contents
4. You tried to upload a file to S3 but got an error: AccessDenied. What is the most likely cause?
medium
A. The AWS CLI is not installed
B. The bucket does not exist
C. The file path is incorrect
D. You lack permission to write to the bucket

Solution

  1. Step 1: Understand the AccessDenied error

    This error means the user does not have permission to perform the action.
  2. Step 2: Check other options

    Bucket missing causes NotFound error, wrong file path causes file errors, CLI missing causes command errors.
  3. Final Answer:

    You lack permission to write to the bucket -> Option D
  4. Quick Check:

    AccessDenied = permission issue [OK]
Hint: AccessDenied means permission problem [OK]
Common Mistakes:
  • Assuming bucket absence causes AccessDenied
  • Blaming file path for permission errors
  • Ignoring user permissions
5. You want to store daily backups in S3 and ensure they are not lost accidentally. Which combination of S3 features should you use?
hard
A. Create a bucket with versioning enabled and lifecycle rules to archive old backups
B. Create a bucket without versioning and delete backups after 7 days
C. Use S3 without buckets and store backups locally
D. Create multiple buckets without any backup policies

Solution

  1. Step 1: Identify features for backup safety

    Versioning keeps multiple versions to prevent accidental loss. Lifecycle rules manage storage cost by archiving.
  2. Step 2: Evaluate options

    Create a bucket with versioning enabled and lifecycle rules to archive old backups uses versioning and lifecycle rules, best for backup safety and cost. Others lack protection or proper management.
  3. Final Answer:

    Create a bucket with versioning enabled and lifecycle rules to archive old backups -> Option A
  4. Quick Check:

    Versioning + lifecycle = safe backups [OK]
Hint: Enable versioning to protect backups [OK]
Common Mistakes:
  • Not enabling versioning risks data loss
  • Deleting backups too soon
  • Ignoring lifecycle management