Bird
Raised Fist0
AWScloud~5 mins

S3 storage classes (Standard, IA, Glacier) in AWS - Time & Space Complexity

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
Time Complexity: S3 storage classes (Standard, IA, Glacier)
O(n)
Understanding Time Complexity

When working with different S3 storage classes, it's important to understand how the time to access or retrieve data changes.

We want to know how the time to get data grows depending on the storage class used.

Scenario Under Consideration

Analyze the time complexity of retrieving objects from different S3 storage classes.


aws s3api get-object --bucket example-bucket --key file1.txt --output file1.txt
aws s3api get-object --bucket example-bucket --key file2.txt --output file2.txt
aws s3api get-object --bucket example-bucket --key file3.txt --output file3.txt
    

This sequence retrieves multiple files stored in different S3 storage classes like Standard, Infrequent Access (IA), and Glacier.

Identify Repeating Operations

Each retrieval involves:

  • Primary operation: S3 GetObject API call to fetch a file.
  • How many times: Once per file requested.

The dominant operation is the GetObject call, which varies in speed depending on the storage class.

How Execution Grows With Input

As you request more files, the number of GetObject calls grows linearly.

Input Size (n)Approx. API Calls/Operations
1010 GetObject calls
100100 GetObject calls
10001000 GetObject calls

Each file requires one call, so the total calls increase directly with the number of files.

Final Time Complexity

Time Complexity: O(n)

This means the time to retrieve files grows directly with the number of files you request.

Common Mistake

[X] Wrong: "Retrieving files from Glacier is as fast as Standard storage."

[OK] Correct: Glacier retrieval involves extra steps and delays, so it takes longer per file, affecting total time.

Interview Connect

Understanding how retrieval time changes with storage class helps you design efficient systems and explain trade-offs clearly.

Self-Check

"What if you batch multiple files in a single request using S3 Batch Operations? How would the time complexity change?"

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)