<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/30-60-days-system-design-questions--iglugecom" -->

---
title: 30/60 Days System Design Questions! | daily.dev
description: A system design scenario presents a file upload service growing from 10TB to 100TB on AWS, where four team members advocate for different storage solutions:...
canonical: https://daily.dev/posts/30-60-days-system-design-questions--iglugecom
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: 30/60 Days System Design Questions! | daily.dev
og:description: A system design scenario presents a file upload service growing from 10TB to 100TB on AWS, where four team members advocate for different storage solutions:...
og:url: https://daily.dev/posts/30-60-days-system-design-questions--iglugecom
og:image: https://api.daily.dev/og/posts/IglUGECOm.png
og:image:alt: 30/60 Days System Design Questions!
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 30/60 Days System Design Questions!

**[Joud Awad](https://daily.dev/sources/iac4jsbu0lv8wbsc85fsh)** · [@joudawad](https://daily.dev/joudawad) · 2 min read · 188 upvotes · 39 comments

## Summary

A system design scenario presents a file upload service growing from 10TB to 100TB on AWS, where four team members advocate for different storage solutions: S3, EBS, EFS, and self-hosted MinIO. Readers are challenged to pick the right option given requirements including multi-service read access (ML pipeline, audit service), mixed file sizes (5KB to 2GB), and cost considerations at scale.

## Content

You're building a file upload service. 10TB of user files today. 100TB in 12 months.

Your team is having a fight.

The backend lead says: "Just use S3. Done."

The DevOps engineer says: "Mount an EBS volume. Simpler, faster."

The platform architect says: "We need EFS — multiple services need to read the same files."

The startup CTO says: "We can't afford cloud storage at scale. Self-host with MinIO."

All four have shipped this in production. All four have opinions backed by scars.

Here's the setup:

— Upload service (NestJS) receives files from mobile + web clients

— ML pipeline needs to read uploaded images for processing

— Audit service needs read access to the same files

— Files range from 5KB profile pics to 2GB video exports

— You're on AWS

What do you pick?

**A)** S3 — object storage, infinite scale, pay per GB, no servers to manage.

**B)** EBS — block storage, SSD-backed, attach to your EC2, low latency reads.

**C)** EFS — managed NFS, shared across multiple EC2 instances simultaneously.

**D)** MinIO on EC2 — S3-compatible self-hosted object storage, you own the infra.

One of these is the obvious right answer for this scenario.

One of them will destroy your architecture quietly over 6 months.

One is great — but not for this problem.

One is a trap that looks like cost savings.

Pick one — A, B, C, or D — and tell me why. Full breakdown in the comments.

If your team has had this exact fight, share this. Someone needs to win it with data, not opinions.

Drop your answer 👇

_#30DaysOfSystemDesign #SystemDesign #AWS #CloudArchitecture_

## Community discussion

Top comments from developers on daily.dev.

**@joudawad** · 23 upvotes

> **Why A wins (S3):**
>
>
> One storage layer. Zero capacity planning. Every service reads from the same bucket using the S3 key stored in your DB.
>
>
> At 100TB → ~$2,300/month. Lifecycle policies move cold files to Glacier automatically. S3 events trigger your ML pipeline the moment a file lands. Versioning, encryption, audit logs — all built in, zero extra work.
>
>
> For greenfield cloud services, this is the default. You only deviate when you have a specific reason not to.
>
>
> ![ChatGPT Image Jun 5, 2026, 06_53_46...

**@joudawad** · 11 upvotes

> **Why C is great — but not here (EFS):**
>
>
> EFS is genuinely powerful. Shared NFS, multiple EC2 instances mount it simultaneously, full POSIX semantics.
>
>
> The problem: **$0.30/GB/month**. At 100TB that's **$30,000/month** vs S3's **$2,300/month**. A 13x cost difference.
>
>
> EFS is the right answer when your legacy app is hardcoded to open() / read() / write() filesystem calls and can't be refactored. For a greenfield NestJS service with an S3 SDK? You're paying 13x for filesystem semantics you don't need.

**@joudawad** · 10 upvotes

> **Why B destroys your architecture quietly (EBS):**
>
>
> EBS is a disk. A fast, reliable disk — attached to **one EC2 instance at a time**.
>
>
> The moment your ML pipeline runs on a different instance than your upload service, it can't read those files. Add auto-scaling? Each new instance gets a blank disk. Deploy across two AZs? Same problem.
>
>
> Works perfectly in dev. Silently breaks the moment you scale horizontally. The team that picks EBS here usually discovers this 6 months later when they're doing a painful migration under pressure.

**@joudawad** · 6 upvotes

> **Why D is a cost-savings trap (MinIO):**
>
>
> MinIO is a real product used at hyperscale. S3-compatible API, high throughput, runs on your own hardware.
>
>
> But self-hosted means **you own availability, disk failures, backups, capacity planning, and 3am incidents**. At 10–100TB, the engineering cost of running MinIO reliably exceeds S3 spend by a wide margin. You're not saving money — you're converting cloud spend into engineering hours, which cost more.
>
>
> MinIO makes sense at petabyte scale with dedicated infra teams and painful egress bills. Not here.

**@joudawad** · 4 upvotes

> Also, it would mean a lot to me if you could support my content and stay in touch 🙏
>
> - YouTube: [https://www.youtube.com/@system-design-lab](https://www.youtube.com/@system-design-lab)
> - LinkedIn: [https://www.linkedin.com/in/joud-awad/](https://www.linkedin.com/in/joud-awad/)
> - Medium Blog: [https://joudwawad.medium.com/](https://joudwawad.medium.com/)
> - Substack: [https://joudawad.substack.com/](https://joudawad.substack.com/)

---

Tags: [#aws](https://daily.dev/tags/aws), [#career](https://daily.dev/tags/career), [#nestjs](https://daily.dev/tags/nestjs)

[View this post on daily.dev](https://daily.dev/posts/30-60-days-system-design-questions--iglugecom)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/30-60-days-system-design-questions--iglugecom","headline":"30/60 Days System Design Questions!","text":"A system design scenario presents a file upload service growing from 10TB to 100TB on AWS, where four team members advocate for different storage solutions: S3, EBS, EFS, and self-hosted MinIO. Readers are challenged to pick the right option given requirements including multi-service read access (ML pipeline, audit service), mixed file sizes (5KB to 2GB), and cost considerations at scale.","url":"https://daily.dev/posts/30-60-days-system-design-questions--iglugecom","datePublished":"2026-06-05T15:57:31.523Z","dateModified":"2026-06-05T15:57:54.505Z","author":{"@type":"Person","name":"Joud Awad","url":"https://daily.dev/joudawad","image":"https://media.daily.dev/image/upload/s--dOB9RaXY--/f_auto/v1773320801/avatars/avatar_iaC4JsBU0lV8wBsc85fSh?_a=BAMAMiiu0","description":"Principal Solution Architecture ","worksFor":{"@type":"Organization","name":"Metalab","logo":"https://www.google.com/s2/favicons?domain=metalab.com&sz=128"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":81840}},"image":"https://media.daily.dev/image/upload/s--VxRAFM9B--/f_auto/v1780675055/posts/IglUGECOm?_a=BAMAMiWQ0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":188},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":39}],"comment":[{"@type":"Comment","text":"Why A wins (S3):\nOne storage layer. Zero capacity planning. Every service reads from the same bucket using the S3 key stored in your DB.\nAt 100TB → ~$2,300/month. Lifecycle policies move cold files to Glacier automatically. S3 events trigger your ML pipeline the moment a file lands. Versioning, encryption, audit logs — all built in, zero extra work.\nFor greenfield cloud services, this is the default. You only deviate when you have a specific reason not to.","datePublished":"2026-06-05T15:58:35.380Z","url":"https://daily.dev/posts/IglUGECOm#c-Itl9Xhdr9","author":{"@type":"Person","name":"Joud Awad","url":"https://daily.dev/joudawad","image":"https://media.daily.dev/image/upload/s--dOB9RaXY--/f_auto/v1773320801/avatars/avatar_iaC4JsBU0lV8wBsc85fSh?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":23}},{"@type":"Comment","text":"Why C is great — but not here (EFS):\nEFS is genuinely powerful. Shared NFS, multiple EC2 instances mount it simultaneously, full POSIX semantics.\nThe problem: $0.30/GB/month. At 100TB that’s $30,000/month vs S3’s $2,300/month. A 13x cost difference.\nEFS is the right answer when your legacy app is hardcoded to open() / read() / write() filesystem calls and can’t be refactored. For a greenfield NestJS service with an S3 SDK? You’re paying 13x for filesystem semantics you don’t need.","datePublished":"2026-06-05T15:59:06.872Z","url":"https://daily.dev/posts/IglUGECOm#c-GQn8DT4DF","author":{"@type":"Person","name":"Joud Awad","url":"https://daily.dev/joudawad","image":"https://media.daily.dev/image/upload/s--dOB9RaXY--/f_auto/v1773320801/avatars/avatar_iaC4JsBU0lV8wBsc85fSh?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":11}},{"@type":"Comment","text":"Why B destroys your architecture quietly (EBS):\nEBS is a disk. A fast, reliable disk — attached to one EC2 instance at a time.\nThe moment your ML pipeline runs on a different instance than your upload service, it can’t read those files. Add auto-scaling? Each new instance gets a blank disk. Deploy across two AZs? Same problem.\nWorks perfectly in dev. Silently breaks the moment you scale horizontally. The team that picks EBS here usually discovers this 6 months later when they’re doing a painful migration under pressure.","datePublished":"2026-06-05T15:58:42.695Z","url":"https://daily.dev/posts/IglUGECOm#c-aazkX3Yek","author":{"@type":"Person","name":"Joud Awad","url":"https://daily.dev/joudawad","image":"https://media.daily.dev/image/upload/s--dOB9RaXY--/f_auto/v1773320801/avatars/avatar_iaC4JsBU0lV8wBsc85fSh?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":10}},{"@type":"Comment","text":"Why D is a cost-savings trap (MinIO):\nMinIO is a real product used at hyperscale. S3-compatible API, high throughput, runs on your own hardware.\nBut self-hosted means you own availability, disk failures, backups, capacity planning, and 3am incidents. At 10–100TB, the engineering cost of running MinIO reliably exceeds S3 spend by a wide margin. You’re not saving money — you’re converting cloud spend into engineering hours, which cost more.\nMinIO makes sense at petabyte scale with dedicated infra teams and painful egress bills. Not here.","datePublished":"2026-06-05T15:59:10.644Z","url":"https://daily.dev/posts/IglUGECOm#c-0FsU9cAxz","author":{"@type":"Person","name":"Joud Awad","url":"https://daily.dev/joudawad","image":"https://media.daily.dev/image/upload/s--dOB9RaXY--/f_auto/v1773320801/avatars/avatar_iaC4JsBU0lV8wBsc85fSh?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":6}},{"@type":"Comment","text":"Also, it would mean a lot to me if you could support my content and stay in touch 🙏\n\nYouTube: https://www.youtube.com/@system-design-lab\nLinkedIn: https://www.linkedin.com/in/joud-awad/\nMedium Blog: https://joudwawad.medium.com/\nSubstack: https://joudawad.substack.com/","datePublished":"2026-06-05T15:59:18.415Z","url":"https://daily.dev/posts/IglUGECOm#c-BO0mRiZWp","author":{"@type":"Person","name":"Joud Awad","url":"https://daily.dev/joudawad","image":"https://media.daily.dev/image/upload/s--dOB9RaXY--/f_auto/v1773320801/avatars/avatar_iaC4JsBU0lV8wBsc85fSh?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4}}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/sources/iac4jsbu0lv8wbsc85fsh","name":"Joud Awad"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Joud Awad","item":"https://daily.dev/sources/iac4jsbu0lv8wbsc85fsh"},{"@type":"ListItem","position":3,"name":"30/60 Days System Design Questions!"}]}
```

