Bird
Raised Fist0
AWScloud~30 mins

S3 storage classes (Standard, IA, Glacier) in AWS - Mini Project: Build & Apply

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
S3 Storage Classes Setup
📖 Scenario: You work for a company that needs to store files in Amazon S3. Different files have different access needs. Some files are used often, some are accessed less, and some are archived for long-term storage.You will create an S3 bucket and configure three folders with different storage classes: Standard, Infrequent Access (IA), and Glacier.
🎯 Goal: Create an S3 bucket named company-files. Inside it, create three folders named standard/, infrequent-access/, and glacier/. Configure lifecycle rules so that files in infrequent-access/ move to the IA storage class after 30 days, and files in glacier/ move to Glacier storage class after 60 days.
📋 What You'll Learn
Create an S3 bucket named company-files
Create three folders: standard/, infrequent-access/, glacier/
Add a lifecycle rule to transition files in infrequent-access/ to IA after 30 days
Add a lifecycle rule to transition files in glacier/ to Glacier after 60 days
💡 Why This Matters
🌍 Real World
Companies use different S3 storage classes to save money by storing less-used files in cheaper storage and frequently accessed files in faster storage.
💼 Career
Cloud engineers and DevOps professionals often configure S3 lifecycle policies to optimize storage costs and data management.
Progress0 / 4 steps
1
Create the S3 bucket and folders
Create an S3 bucket named company-files. Inside the bucket, create three folders named standard/, infrequent-access/, and glacier/.
AWS
Hint

Use aws_s3_bucket to create the bucket. Use aws_s3_bucket_object with empty content to create folders by specifying keys ending with a slash.

2
Add lifecycle configuration variable
Create a variable called lifecycle_rules that will hold the lifecycle rules for the bucket. Initialize it as an empty list for now.
AWS
Hint

Use a Terraform variable block named lifecycle_rules with type list and default empty list.

3
Add lifecycle rules for IA and Glacier folders
Update the lifecycle_rules variable to include two rules: one that transitions objects with prefix infrequent-access/ to storage class STANDARD_IA after 30 days, and another that transitions objects with prefix glacier/ to storage class GLACIER after 60 days.
AWS
Hint

Use a list of maps with keys id, enabled, prefix, and transition containing days and storage_class.

4
Attach lifecycle rules to the S3 bucket
Add a lifecycle_rule block inside the aws_s3_bucket resource named company_files. Use a for_each to loop over the var.lifecycle_rules variable and create lifecycle rules accordingly.
AWS
Hint

Use for_each inside lifecycle_rule to loop over var.lifecycle_rules. Use each.value to access rule properties.

Practice

(1/5)
1. Which Amazon S3 storage class is best for data that you access frequently and need immediately?
easy
A. GLACIER
B. STANDARD_IA (Infrequent Access)
C. ONEZONE_IA
D. STANDARD

Solution

  1. Step 1: Understand S3 storage classes purpose

    STANDARD is designed for frequently accessed data with low latency.
  2. Step 2: Compare with other classes

    STANDARD_IA and GLACIER are for less frequent access and have retrieval delays.
  3. Final Answer:

    STANDARD -> Option D
  4. Quick Check:

    Frequent access = STANDARD [OK]
Hint: Frequent use? Pick STANDARD for fastest access [OK]
Common Mistakes:
  • Choosing GLACIER for frequent access
  • Confusing STANDARD_IA with STANDARD
  • Ignoring retrieval delays in GLACIER
2. Which of the following is the correct way to specify the STANDARD_IA storage class in an AWS CLI command to upload a file?
easy
A. aws s3 cp file.txt s3://bucket/ --storage-class=STANDARDIA
B. aws s3 cp file.txt s3://bucket/ --storageclass STANDARD_IA
C. aws s3 cp file.txt s3://bucket/ --storage-class STANDARD_IA
D. aws s3 cp file.txt s3://bucket/ --storage-class=STANDARD-IA

Solution

  1. Step 1: Recall AWS CLI syntax for storage class

    The correct option uses '--storage-class' with underscore and exact class name.
  2. Step 2: Check each option for syntax errors

    aws s3 cp file.txt s3://bucket/ --storage-class STANDARD_IA matches correct syntax; others have typos or wrong format.
  3. Final Answer:

    aws s3 cp file.txt s3://bucket/ --storage-class STANDARD_IA -> Option C
  4. Quick Check:

    Correct flag and class name = aws s3 cp file.txt s3://bucket/ --storage-class STANDARD_IA [OK]
Hint: Use '--storage-class' exactly with underscore [OK]
Common Mistakes:
  • Misspelling the flag as '--storageclass'
  • Using dashes instead of underscores
  • Omitting the space after the flag
3. You upload a 1 GB file to S3 using the GLACIER storage class. What happens when you try to access the file immediately after upload?
medium
A. The file is instantly available for download.
B. The file is available after a retrieval delay of several hours.
C. The file is deleted automatically after 24 hours.
D. The file is available only if you pay an extra fee upfront.

Solution

  1. Step 1: Understand GLACIER retrieval behavior

    GLACIER stores data for long-term archiving with retrieval delays of hours.
  2. Step 2: Check immediate access options

    Immediate access is not possible; retrieval requires a job that takes time.
  3. Final Answer:

    The file is available after a retrieval delay of several hours. -> Option B
  4. Quick Check:

    GLACIER retrieval delay = hours [OK]
Hint: GLACIER files need hours to retrieve, not instant [OK]
Common Mistakes:
  • Assuming instant access like STANDARD
  • Thinking files auto-delete after upload
  • Believing extra upfront fees enable instant access
4. A user tries to upload a file to S3 with the command: aws s3 cp data.csv s3://mybucket/ --storage-class GLACIER but gets an error. What is the likely cause?
medium
A. GLACIER is not a valid storage class for direct upload via this command.
B. The bucket name is invalid.
C. The file data.csv does not exist locally.
D. The AWS CLI version does not support storage classes.

Solution

  1. Step 1: Understand GLACIER upload restrictions

    GLACIER storage class cannot be used directly in 'aws s3 cp' uploads; use GLACIER via lifecycle or multipart upload.
  2. Step 2: Check other options

    Bucket name and file existence errors produce different messages; CLI supports storage classes.
  3. Final Answer:

    GLACIER is not a valid storage class for direct upload via this command. -> Option A
  4. Quick Check:

    Direct upload with GLACIER = error [OK]
Hint: GLACIER needs lifecycle or special upload, not direct CLI copy [OK]
Common Mistakes:
  • Assuming GLACIER can be set directly on upload
  • Ignoring file existence errors
  • Blaming bucket name without checking
5. You want to store 10 TB of backup data that you rarely access but must keep for years. You want to minimize cost but still be able to retrieve data within a few hours if needed. Which S3 storage class should you choose and why?
hard
A. STANDARD_IA, because it balances lower cost with quick access.
B. STANDARD, because it offers instant access despite higher cost.
C. GLACIER, because it is the cheapest but retrieval takes days.
D. GLACIER INSTANT RETRIEVAL, because it offers low cost and milliseconds access.

Solution

  1. Step 1: Analyze access frequency and retrieval time needs

    Data is rarely accessed but must be retrievable within hours, not instantly.
  2. Step 2: Compare storage classes for cost and retrieval speed

    STANDARD_IA offers lower cost than STANDARD and retrieval in milliseconds to seconds; GLACIER has longer retrieval times.
  3. Final Answer:

    STANDARD_IA, because it balances lower cost with quick access. -> Option A
  4. Quick Check:

    Rare access + quick retrieval = STANDARD_IA [OK]
Hint: Rare access + hours retrieval? Pick STANDARD_IA [OK]
Common Mistakes:
  • Choosing GLACIER despite slow retrieval
  • Picking STANDARD and paying too much
  • Confusing GLACIER INSTANT RETRIEVAL (not standard GLACIER)