피드로 돌아가기
Dev.toInfrastructure
원문 읽기
5달러 VPS 단일 서버 내 41개 서비스 배포 및 최적화
I shipped 41 tools on a $5 VPS in 4 days — here is everything I learned
AI 요약
Context
오버엔지니어링을 배제하고 최소 비용의 인프라에서 다수의 마이크로 서비스를 빠르게 배포하기 위한 실험적 구조 설계. 복잡한 컨테이너 오케스트레이션 없이 단일 리소스 내에서 서비스 밀도를 극대화하는 것이 핵심 과제.
Technical Solution
- Python 3.12와 Flask 기반의 경량 프레임워크 채택을 통한 서비스 런타임 오버헤드 최소화
- SQLite WAL(Write-Ahead Logging) 모드 적용으로 동시성 쓰기 성능 확보 및 Persistence 계층 단순화
- Docker를 배제하고 systemd 유닛 기반의 서비스 관리 체계를 구축하여 프로세스 격리와 자동 재시작 기능 구현
- Nginx Reverse Proxy와 Let's Encrypt 연동을 통한 단일 IP 기반의 다중 도메인 라우팅 및 HTTPS 보안 적용
- 서버 사이드 로직이 불필요한 유틸리티 도구의 Client-side JS 전환을 통한 서버 컴퓨팅 자원 낭비 제거
- 개별 서비스별 메모리 점유율을 20-40MB 수준으로 제한하여 리소스 고갈 방지 및 고밀도 배치 실현
실천 포인트
1. 초기 MVP 단계에서 Kubernetes/Docker 도입 전 systemd와 SQLite로 충분한지 검토
2. 서버 연산이 필요 없는 기능의 Client-side 이관을 통한 인프라 비용 절감
3. SQLite WAL 모드를 통한 가벼운 상태 관리 및 데이터 지속성 확보
4. 단일 VPS 내 다수 서비스 운영 시 Nginx를 활용한 효율적인 L7 라우팅 설계