AWS 청구서가 매출보다 먼저 도착합니다
스타트업을 시작하면 으레 이런 조합을 떠올립니다. AWS, 쿠버네티스, 마이크로서비스, RDS, Redis, CloudFront. 교과서에 나오는 "확장 가능한 아키텍처"입니다. 문제는 사용자가 100명일 때도 이 구조를 유지해야 한다는 것입니다.
"인프라를 유지하는 데 시간을 쓰고 있다면, 그건 고객의 요청을 처리하는 게 아닙니다."
최근 화제가 된 한 개발자의 사례가 있습니다. 월 $20(약 2만 7천 원)의 기술 스택으로 MRR $10,000 이상의 비즈니스를 복수 운영하고 있다는 이야기입니다.
월 $20 스택의 실체
그의 기술 스택은 놀라울 정도로 단순합니다.
| 구성 요소 | 선택 | 월 비용 |
|---|---|---|
| 서버 | Linode/DigitalOcean VPS | $5~10 |
| 언어 | Go (단일 바이너리 배포) | $0 |
| 데이터베이스 | SQLite (WAL 모드) | $0 |
| AI 추론 | 로컬 GPU + OpenRouter | ~$5 |
| 개발 도구 | GitHub Copilot | ~$0.04 |
| 합계 | ~$20 |
클라우드 매니지드 서비스가 하나도 없습니다. RDS 대신 SQLite, ECS 대신 단일 바이너리, CloudFront 대신 VPS 직접 서빙. 그런데 이 구조로 수천 명의 유료 사용자를 처리합니다.
왜 이게 가능한가
핵심은 세 가지입니다.
1. Go의 단일 바이너리 배포
Go로 빌드하면 의존성이 없는 하나의 실행 파일이 나옵니다. Docker 이미지를 빌드하고 레지스트리에 푸시하고 오케스트레이터가 풀링하는 과정이 사라집니다. scp 하나면 배포 끝입니다.
# 빌드부터 배포까지 30초
GOOS=linux go build -o app .
scp app server:/opt/myapp/
ssh server "systemctl restart myapp"2. SQLite의 재발견
"SQLite는 장난감 데이터베이스"라는 인식이 있습니다. 하지만 WAL(Write-Ahead Logging) 모드를 켜면 읽기 동시성이 보장됩니다. 네트워크 지연이 0입니다. 같은 서버의 디스크에서 직접 읽으니까요. PostgreSQL이 네트워크를 타고 왕복하는 동안 SQLite는 이미 결과를 반환합니다.
-- WAL 모드 활성화 한 줄이면 끝
PRAGMA journal_mode=WAL;
PRAGMA busy_timeout=5000;3. 복잡성의 비용을 계산한다
마이크로서비스를 도입하면 서비스 간 통신, 분산 트랜잭션, 서비스 디스커버리, 로그 집계라는 새로운 문제가 생깁니다. 이 문제를 해결하기 위해 또 다른 인프라를 올립니다. 모놀리스에서는 함수 호출 한 번이면 되는 일에 HTTP 왕복이 추가됩니다.
엔터프라이즈 스택 vs 미니멀 스택
| 항목 | 엔터프라이즈 스택 | 미니멀 스택 |
|---|---|---|
| 월 인프라 비용 | $300~1,000+ | $10~20 |
| 배포 시간 | 10~30분 (CI/CD 파이프라인) | 30초 (scp + restart) |
| 장애 포인트 | 서비스 간 통신, DB 연결, 캐시 등 | 서버 1대 |
| 스케일링 | 자동, 하지만 비용도 자동 증가 | 수동, 하지만 예측 가능 |
| 운영 복잡도 | DevOps 전담 필요 | 개발자 1인 가능 |
| 적합 규모 | DAU 10만+ | DAU 1만 이하 |
12개월 누적 비용 비교
같은 기능을 제공하는 시스템의 연간 비용 차이가 25~50배입니다. 절감된 비용은 제품 개발, 마케팅, 고객 지원에 투입할 수 있습니다. 초기 스타트업과 중소기업에게 이 차이는 생존의 문제입니다.
중소기업 자동화에 주는 시사점
이 이야기가 자동화 도입을 고민하는 중소기업에 시사하는 바가 있습니다.
첫째, 인프라 비용이 자동화를 가로막는 이유가 되어선 안 됩니다. 월 수십만 원의 클라우드 비용이 부담이라면, VPS 한 대로 시작할 수 있습니다. 자동화 시스템은 대부분 내부 사용자 수십 명이 쓰는 도구입니다. 수백만 트래픽을 감당할 인프라가 필요하지 않습니다.
둘째, 기술 선택은 문제에 맞춰야 합니다. 사내 발주 시스템에 쿠버네티스가 필요할까요? 일일 크롤링 파이프라인에 AWS Lambda + SQS + DynamoDB 조합이 필수일까요? 크론잡 하나와 SQLite면 충분한 경우가 대부분입니다.
셋째, 복잡성은 나중에 추가할 수 있지만, 처음부터 빼기는 어렵습니다. 단순한 구조로 시작해서 실제 병목이 발생할 때 확장하는 것이 훨씬 합리적입니다.
도입 판단 기준
미니멀 스택이 적합한 상황인지 아래 기준으로 판단하세요.
- 내부 사용자가 100명 미만이고, 동시 접속이 20명을 넘지 않는다
- 실시간 트래픽 대응보다 배치 처리(정기 실행)가 주된 패턴이다
- DevOps 전담 인력이 없고, 개발자가 인프라까지 겸한다
- 월 인프라 예산이 10만 원 이하다
- 빠르게 검증하고, 필요할 때 확장하고 싶다
반대로 실시간 대규모 트래픽, 멀티 리전 배포, 엄격한 컴플라이언스가 요구되는 상황이라면 매니지드 서비스가 맞습니다. 중요한 것은 현재 규모에 맞는 기술을 선택하는 것입니다.
"가장 좋은 인프라는 없는 인프라입니다. 유지할 것이 없으면 장애도 없습니다."


