ACTIVE INCIDENT
00:00 elapsed
LABLAB-DOCKER-05-3TIER-ARCHITECTURESEV-1
Nginx + Node.js + PostgreSQL — 표준 3-Tier 아키텍처 직접 구성
ELAPSED
00:00
PHASE
0 / 6
SLA
60분
📦 Docker
← 목록
INCIDENT RESPONSE
0 / 7 단계 완료
📚 PREREQUISITES
Labdocker-compose-multi-service
Labdocker-network-debug
Labnginx-reverse-proxy
Labpostgresql-setup
TRACK
DOCKER
SLA
60분
SEV
SEV-1
PHASES
5단계
ENV
local
INCOMING TICKET
팀장 Slack DM: "이번 주 온보딩 과제예요. 우리 서비스 기본 스택인 Nginx + Node.js + PostgreSQL 3계층 구조를 직접 손으로 구성해보면서 익혀요. 금요일 오후 3시에 팀 전체 앞에서 리뷰 있습니다."
YOUR ROLE
주니어 인프라 엔지니어 (입사 첫 주)
IMPACT IF UNRESOLVED
3-Tier 스택 직접 구성 경험 없이는 운영 장애 시 원인 파악이 불가능. 이번 주 리뷰에서 통과 못 하면 다음 프로젝트 투입이 연기됨.
🚨INCIDENT BRIEF
신입 엔지니어로 입사 첫 주, 팀장이 태스크를 던졌습니다.
"우리 서비스 기본 스택이에요. 직접 구성해보면서 익혀요."
회사 레포에는 Nginx가 프론트 정적 파일을 서빙하고,
Node.js Express API가 비즈니스 로직을 처리하고,
PostgreSQL이 데이터를 저장하는 구조가 있습니다.
세 컨테이너는 단순히 같이 띄워놓는 게 아닙니다.
- Web Tier(Nginx): 외부 트래픽을 받아 정적 파일 또는 API로 라우팅
- App Tier(Node.js): DB와 통신하는 API 서버 — 외부에 직접 노출되면 안 됨
- Data Tier(PostgreSQL): App에서만 접근 — 절대 외부 노출 금지
이 Lab에서는 `docker/awesome-compose`의 nginx-flask-mysql 패턴을 Node.js + PostgreSQL로 재구성합니다.
5단계를 완료하면 실제 프로덕션에서 쓰는 3-Tier 구조가 손에 익을 것입니다.
⏱ 60분📊 고급🔧 5단계#docker#docker-compose#nginx#nodejs
MISSION
1
프로젝트 구조 설계 — 디렉토리와 파일 뼈대 만들기
3-Tier 프로젝트 디렉토리 구조를 만들고, 각 파일의 역할을 이해한다
2
Data Tier — PostgreSQL 초기화 스크립트 작성
db/init.sql을 작성해 컨테이너 첫 실행 시 스키마와 시드 데이터가 자동 적용되도록 설정한다
3
App Tier — Node.js Express API 서버 구성
Express API 서버(app/index.js)와 Dockerfile을 작성해 /health와 /api/items 엔드포인트를 제공한다
4
Web Tier — Nginx reverse proxy 설정
nginx/nginx.conf를 작성해 정적 파일 서빙과 API 요청을 App Tier로 프록시하도록 설정한다
5
docker-compose.yml — 3개 서비스를 배선하고 전체 스택 기동
docker-compose.yml로 3개 서비스를 네트워크 격리와 헬스체크로 연결하고, 전체 스택을 기동해 엔드투엔드 통신을 검증한다
📌 선수 지식
• [실습] docker-compose-multi-service
• [실습] docker-network-debug
• [실습] nginx-reverse-proxy
• [실습] postgresql-setup
ℹ️ 실습 환경
환경: local
필요 도구: docker, docker compose, curl, node
검증 스크립트: /labs/lab-docker-05-3tier-architecture/scripts/verify.sh
🔒
실습 실행은 Pro 플랜 전용입니다
인시던트 브리프와 학습 자료는 지금 바로 확인할 수 있습니다. 실제 실습 진행 및 터미널 사용은 Pro 플랜에서 가능합니다.
Pro로 업그레이드 →
>_ LAB TERMINAL↔ 너비 조절
NOTES