Bird
Raised Fist0
HLDsystem_design~10 mins

Blob storage (S3, Azure Blob) in HLD - Scalability & System Analysis

Choose your learning style10 modes available
Scalability Analysis - Blob storage (S3, Azure Blob)
Growth Table: Blob Storage Scaling
Users / Scale100 Users10,000 Users1 Million Users100 Million Users
Data StoredFew GBsFew TBsPetabytesExabytes
Requests per Second (RPS)~100-500 RPS~5,000 RPS~100,000 RPSMillions RPS
LatencyLow (ms)Low to ModerateModerate (due to scale)Needs optimization (CDN, edge)
Storage ManagementSimple bucketsMultiple buckets, lifecycle policiesMulti-region replication, tiered storageGlobal distribution, archival tiers
CostLowModerateHighVery High
First Bottleneck

At small to medium scale, the first bottleneck is the request rate limit on the blob storage service. Each storage account or bucket has limits on requests per second. When requests exceed these limits, throttling occurs causing increased latency and errors.

At larger scale, network bandwidth and storage management (handling huge data volumes and replication) become bottlenecks.

Scaling Solutions
  • Horizontal scaling: Use multiple buckets or storage accounts to distribute load.
  • Caching: Use CDN (Content Delivery Network) to cache frequently accessed blobs closer to users, reducing direct storage requests.
  • Sharding: Partition data by user or region to spread load and storage.
  • Lifecycle policies: Move older data to cheaper, slower storage tiers (archive) to save cost and improve performance.
  • Multi-region replication: Replicate data across regions for availability and reduced latency.
  • Request batching: Combine multiple small requests into fewer larger requests to reduce overhead.
Back-of-Envelope Cost Analysis

Assuming 1 million users, each uploading 1 MB per day:

  • Data stored per day: 1 million MB = ~1 TB/day
  • Monthly storage: ~30 TB
  • Requests: If each user makes 10 requests/day, total 10 million requests/day (~115 requests/sec)
  • Bandwidth: 1 TB/day upload + downloads (depends on usage)
  • Costs scale with storage size, request count, and bandwidth used.
Interview Tip

When discussing blob storage scalability, start by estimating data size and request rates. Identify the first bottleneck (usually request limits or bandwidth). Then propose solutions like horizontal scaling, CDN caching, and lifecycle management. Always mention cost and availability trade-offs.

Self Check Question

Your blob storage service handles 1000 requests per second. Traffic grows 10x to 10,000 RPS. What do you do first?

Answer: Distribute load by creating multiple storage buckets/accounts and use a CDN to cache content, reducing direct requests. This avoids throttling and scales request handling.

Key Result
Blob storage scales well with data size but first breaks at request rate limits; horizontal scaling and CDN caching are key to handle high traffic.

Practice

(1/5)
1. What is the main purpose of blob storage services like Amazon S3 or Azure Blob Storage?
easy
A. To manage user identities and permissions
B. To run virtual machines in the cloud
C. To store large files safely and accessibly in the cloud
D. To host websites directly without any storage

Solution

  1. Step 1: Understand blob storage function

    Blob storage is designed to save large files like videos, images, and backups in the cloud.
  2. Step 2: Compare with other cloud services

    Other services like virtual machines or identity management serve different purposes, not file storage.
  3. Final Answer:

    To store large files safely and accessibly in the cloud -> Option C
  4. Quick Check:

    Blob storage = large file storage [OK]
Hint: Blob storage is for big files, not computing or identity [OK]
Common Mistakes:
  • Confusing blob storage with compute services
  • Thinking blob storage manages users
  • Assuming blob storage hosts websites directly
2. Which of the following is the correct way to specify a bucket name in Amazon S3?
easy
A. My.bucket.name
B. MyBucketName!
C. my_bucket_name
D. my-bucket-name

Solution

  1. Step 1: Review S3 bucket naming rules

    S3 bucket names must be lowercase, can include hyphens, but no underscores or special characters like '!'.
  2. Step 2: Check each option

    my-bucket-name uses lowercase letters and hyphens, which is valid. Options A, B, and C are invalid: A has uppercase letters and dots, B has uppercase and '!', C has underscores.
  3. Final Answer:

    my-bucket-name -> Option D
  4. Quick Check:

    Bucket names use lowercase and hyphens [OK]
Hint: Bucket names: lowercase letters and hyphens only [OK]
Common Mistakes:
  • Using uppercase letters in bucket names
  • Including underscores or special characters
  • Using dots in bucket names
3. Given this AWS CLI command:
aws s3 cp file.txt s3://my-bucket/ --storage-class STANDARD_IA
What does the --storage-class STANDARD_IA option do?
medium
A. Uploads the file to a cheaper, infrequently accessed storage tier
B. Encrypts the file automatically during upload
C. Makes the file publicly accessible
D. Uploads the file with maximum redundancy across regions

Solution

  1. Step 1: Understand storage classes in S3

    STANDARD_IA means Standard-Infrequent Access, a cheaper tier for files accessed less often.
  2. Step 2: Analyze command effect

    The command uploads file.txt to the bucket using this storage class, saving cost for infrequent access.
  3. Final Answer:

    Uploads the file to a cheaper, infrequently accessed storage tier -> Option A
  4. Quick Check:

    STANDARD_IA = cheaper, infrequent access [OK]
Hint: STANDARD_IA means cheaper storage for rare access [OK]
Common Mistakes:
  • Thinking it encrypts the file
  • Assuming it makes file public
  • Confusing with multi-region redundancy
4. You try to upload a file to Azure Blob Storage but get an error saying the container name is invalid. Which of these is the most likely cause?
medium
A. The container name contains uppercase letters
B. The file size is too large
C. The storage account is in the wrong region
D. The file name has spaces

Solution

  1. Step 1: Recall Azure container naming rules

    Container names must be lowercase letters and numbers only, no uppercase letters allowed.
  2. Step 2: Match error cause

    An invalid container name error usually means the name breaks these rules, such as having uppercase letters.
  3. Final Answer:

    The container name contains uppercase letters -> Option A
  4. Quick Check:

    Azure container names must be lowercase [OK]
Hint: Azure containers must be lowercase, no uppercase letters [OK]
Common Mistakes:
  • Blaming file size for container name errors
  • Confusing region with naming rules
  • Thinking file name affects container name
5. You want to store backup files in Amazon S3 with minimal cost but still need quick access sometimes. Which combination of settings is best?
hard
A. Use STANDARD storage class and enable public access for easy retrieval
B. Use STANDARD_IA storage class with lifecycle rule to move files to GLACIER after 30 days
C. Use GLACIER storage class for all files with no lifecycle rules
D. Use REDUCED_REDUNDANCY storage class and no lifecycle rules

Solution

  1. Step 1: Understand storage classes and lifecycle

    STANDARD_IA offers cheaper storage with quick access. GLACIER is very cheap but slow to retrieve.
  2. Step 2: Analyze cost and access needs

    Using STANDARD_IA first allows quick access. Moving to GLACIER after 30 days saves cost for older backups.
  3. Step 3: Evaluate other options

    GLACIER only delays access too much. STANDARD is costly. REDUCED_REDUNDANCY is deprecated and less reliable.
  4. Final Answer:

    Use STANDARD_IA storage class with lifecycle rule to move files to GLACIER after 30 days -> Option B
  5. Quick Check:

    STANDARD_IA + lifecycle to GLACIER = cost + access balance [OK]
Hint: Start with STANDARD_IA, then archive to GLACIER for cost savings [OK]
Common Mistakes:
  • Choosing GLACIER only and ignoring access speed
  • Enabling public access unnecessarily
  • Using deprecated REDUCED_REDUNDANCY class
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard