GPU 스택
- NVIDIA Driver → CUDA Toolkit → cuDNN 순서로 설치
- Docker & Docker Compose, docker-compose up -d
CI/CD 파이프라인
- CI/CD: GitHub Actions(권장) / Jenkins
- 이미지 레지스트리: GHCR / Docker Hub
- 흐름: Dockerfile 빌드 → 이미지 push(GHCR) → SSH(22)로 서버 접속 → 최신 이미지 pull → docker compose 실행
리버스 프록시 — Nginx vs Caddy
| 구분 | Nginx | Caddy |
|---|---|---|
| 설정 난이도 | 복잡 (별도 문법) | 매우 쉬움 (몇 줄) |
| SSL/HTTPS | 수동 (Let's Encrypt + Certbot) | 완전 자동 발급/갱신 |
| 성능 | 대규모 트래픽 검증 | 대부분 동등 |
| 문서 | 방대 (오래된 자료 多) | 현대적·깔끔 |
Caddy의 SSL 자동 발급 흐름: 도메인 인증서 신청 → Let's Encrypt가 소유권 챌린지 부여 → Caddy가 자동 수행 → 인증서 발급/갱신. 도메인만 알려주면 끝난다.
모니터링 스택
| 도구 | 역할 |
|---|---|
| UptimeRobot / Uptime Kuma | 서비스 생존 확인 (외부 블랙박스) |
| Prometheus | 지표 수집·저장 (내부 화이트박스) |
| Grafana | 수집 데이터 시각화 |
| node_exporter | CPU·메모리 등 서버 기본 지표 |
| dcgm-exporter | NVIDIA GPU 상세 지표 |
DB 백업 자동화 (pg_dump + cron)
#!/bin/bash
# backup.sh — 날짜별 덤프 파일 생성
pg_dump -U <user> <db> > /home/<user>/backups/db_backup_$(date +%Y%m%d).sql# crontab -e — 매일 새벽 3시 자동 실행
0 3 * * * /home/<user>/backup.sh