온프레미스 LLM 인프라 구축 가이드 - GPU 서버부터 Kubernetes 배포까지
온프레미스 환경에서 LLM 인프라를 구축하는 방법을 정리합니다. GPU 서버 구성, 네트워크 설계, Kubernetes + vLLM 배포, 모니터링, 보안, 비용 분석을 다룹니다.
전기를 직접 생산하는 발전소를 짓는다고 생각해 보세요. 초기 투자는 크지만, 한번 가동되면 요금 걱정 없이 안정적으로 전력을 공급받을 수 있습니다. 온프레미스 LLM 인프라도 마찬가지입니다 — API 요금이나 외부 클라우드 의존 없이 기업 데이터를 내부에서 안전하게 처리하고, 대규모 추론 비용도 장기적으로 절감할 수 있습니다. 물론 처음 설계가 중요합니다.
이 글에서 배우는 것
- 온프레미스 LLM이 필요한 상황과 클라우드 API·GPU 대비 비용 분석
- 규모별 GPU 서버 구성과 GPU 선택 기준
- Kubernetes + vLLM으로 프로덕션 배포하는 실전 절차
- Prometheus + Grafana 기반 모니터링과 핵심 지표
- 보안 설계와 손익분기점 계산법
1. 온프레미스 LLM이 필요한 이유
"그냥 OpenAI API 쓰면 안 되나요?"라는 질문을 자주 받습니다. 많은 경우에는 그게 맞습니다. 하지만 아래 상황 중 하나라도 해당된다면, 온프레미스를 진지하게 고려해야 합니다.
| 이유 | 설명 | 해당 산업 |
|---|---|---|
| 데이터 보안 | 기업 데이터가 외부 API로 전송되지 않음 | 금융, 의료, 국방 |
| 규정 준수 | 데이터 주권, GDPR, 개인정보보호법 | 공공, 금융, 의료 |
| 비용 효율 | 대량 추론 시 API 대비 저렴 | 대규모 서비스 |
| 지연시간 | 로컬 네트워크로 낮은 지연 | 실시간 서비스 |
| 커스터마이징 | Fine-Tuned 모델 자유로운 배포 | 모든 산업 |
| 가용성 | 외부 서비스 장애와 무관 | 미션 크리티컬 |
2. GPU 서버 구성
GPU 서버 구성은 "어떤 모델을, 몇 명이 동시에, 얼마나 빠르게"라는 세 가지 질문에 대한 답에서 시작합니다. 예산과 목적에 맞는 GPU를 고르는 것이 인프라 설계의 첫 번째 단계입니다.
GPU 선택 가이드
모델 크기와 동시 사용자 수에 따라 필요한 VRAM과 성능이 크게 달라집니다. 아래 표를 출발점으로 삼아 보세요.
| GPU | VRAM | FP16 성능 | 가격 (대략) | 적합 모델 |
|---|---|---|---|---|
| RTX 4090 | 24 GB | 82.6 TFLOPS | ~$1,600 | 7~8B (Q4), 개발용 |
| A100 40GB | 40 GB | 77.97 TFLOPS | ~$10,000 | 7~13B (FP16) |
| A100 80GB | 80 GB | 77.97 TFLOPS | ~$15,000 | 70B (Q4), 13B (FP16) |
| H100 80GB | 80 GB | 267 TFLOPS | ~$30,000 | 70B (FP16), 최고 성능 |
| H200 141GB | 141 GB | 267 TFLOPS | ~$35,000 | 70B+ (FP16), 대용량 |
| L40S | 48 GB | 91.6 TFLOPS | ~$7,000 | 7~13B (FP16), 비용 효율 |
서버 구성 예시
[개발/테스트 서버]
CPU: AMD EPYC 7543 (32코어)
RAM: 256 GB DDR4
GPU: RTX 4090 × 2
Storage: NVMe 2TB
용도: 프로토타입, Fine-Tuning 실험, 소규모 서빙
[프로덕션 서버 (소규모)]
CPU: AMD EPYC 9354 (32코어) × 2
RAM: 512 GB DDR5
GPU: A100 80GB × 4
Storage: NVMe 4TB (RAID)
네트워크: 25GbE
용도: 70B 모델 서빙, 중규모 트래픽
[프로덕션 서버 (대규모)]
CPU: Intel Xeon w9-3595X × 2
RAM: 1 TB DDR5
GPU: H100 80GB × 8 (NVLink)
Storage: NVMe 8TB (RAID)
네트워크: 100GbE + InfiniBand
용도: 405B 모델, 대규모 트래픽, 학습
네트워크 설계
3. Kubernetes + vLLM 배포
Kubernetes 위에 vLLM을 올리면 오토스케일링, 로드밸런싱, 헬스체크가 모두 자동으로 작동합니다. Helm 차트를 이용하면 설정값 몇 가지만 채워 넣어도 반복 배포가 가능해집니다.
Helm 차트 배포
# values.yaml (vLLM Kubernetes 배포)
replicaCount: 2
image:
repository: vllm/vllm-openai
tag: latest
model:
name: meta-llama/Llama-3.1-8B-Instruct
maxModelLen: 4096
gpuMemoryUtilization: 0.9
resources:
limits:
nvidia.com/gpu: 1
requests:
nvidia.com/gpu: 1
memory: 32Gi
cpu: 8
service:
type: ClusterIP
port: 8000
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 8
targetGPUUtilization: 70
ingress:
enabled: true
host: llm.internal.company.com
tls: true# 배포
helm install vllm ./charts/vllm -f values.yaml -n llm-serving
# 상태 확인
kubectl get pods -n llm-serving
kubectl logs -f deployment/vllm -n llm-servingGPU 오퍼레이터 설치
# NVIDIA GPU Operator (Kubernetes에서 GPU 자동 감지)
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia
helm install gpu-operator nvidia/gpu-operator \
--namespace gpu-operator --create-namespace
# GPU 리소스 확인
kubectl describe nodes | grep nvidia.com/gpu4. 모니터링
Prometheus + Grafana
"잘 돌아가고 있나요?"라는 질문에 언제든 대답할 수 있어야 운영이라 할 수 있습니다. vLLM은 Prometheus 포맷 메트릭을 기본 노출하므로, ServiceMonitor 하나만 추가하면 Grafana 대시보드와 바로 연결됩니다.
# vLLM 메트릭 스크래핑 (ServiceMonitor)
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: vllm-metrics
spec:
selector:
matchLabels:
app: vllm
endpoints:
- port: metrics
interval: 15s핵심 모니터링 지표
| 카테고리 | 지표 | 알림 기준 |
|---|---|---|
| GPU | GPU 사용률 | > 95% (5분 지속) |
| GPU | GPU 메모리 사용률 | > 90% |
| GPU | GPU 온도 | > 85°C |
| 서빙 | 요청 지연시간 (P95) | > 3초 |
| 서빙 | QPS (초당 요청) | 트래픽 급증 감지 |
| 서빙 | 에러율 | > 1% |
| 시스템 | CPU 사용률 | > 80% |
| 시스템 | 메모리 사용률 | > 85% |
| 시스템 | 디스크 I/O | 병목 감지 |
5. 보안
온프레미스의 가장 큰 장점 중 하나가 보안 통제권입니다. 하지만 그 통제권은 스스로 구현해야 합니다. 네트워크 격리부터 API 인증, 감사 로깅까지 체계적으로 설계해야 데이터 보안이라는 온프레미스의 약속을 지킬 수 있습니다.
| 보안 영역 | 조치 | 구현 |
|---|---|---|
| 네트워크 격리 | GPU 서버를 별도 VLAN | 방화벽 규칙 |
| API 인증 | JWT/API Key 기반 인증 | API Gateway |
| TLS 암호화 | 모든 통신 암호화 | cert-manager |
| 접근 제어 | RBAC 기반 모델/도구 접근 | K8s RBAC |
| 감사 로깅 | 모든 요청/응답 기록 | ELK Stack |
| 모델 보안 | 모델 파일 접근 제한 | 파일 시스템 권한 |
| 입출력 필터링 | 가드레일 적용 | 프록시 서비스 |
6. 비용 분석
온프레미스 vs 클라우드 vs API 비교
"온프레미스가 더 싸다"고 단정하기 어렵습니다. 추론 건수가 충분히 많아야 초기 투자와 운영 비용이 API 비용을 앞지를 수 있습니다. 아래 수치를 참고해 여러분 상황의 손익분기점을 직접 계산해 보세요.
[월 100만 건 추론 (7B 모델) 비용 비교]
클라우드 API (GPT-4o-mini):
토큰 비용: ~$750/월
관리 비용: 없음
총 비용: ~$750/월
클라우드 GPU (A100 1대):
GPU 인스턴스: ~$2,000/월
스토리지: ~$100/월
관리 비용: ~$500/월 (인건비)
총 비용: ~$2,600/월
온프레미스 GPU (A100 1대):
서버 상각비: ~$500/월 (3년 상각)
전기료: ~$200/월
냉각/인프라: ~$100/월
관리 비용: ~$500/월 (인건비)
총 비용: ~$1,300/월
→ 100만 건/월 이상이면 온프레미스가 비용 효율적
→ 데이터 보안이 필수이면 온프레미스 선택
손익분기점
| 월 추론 건수 | API | 클라우드 GPU | 온프레미스 |
|---|---|---|---|
| 10만 건 | $75 | $2,600 | $1,300 |
| 50만 건 | $375 | $2,600 | $1,300 |
| 100만 건 | $750 | $2,600 | $1,300 |
| 500만 건 | $3,750 | $5,200 | $1,300 |
| 1,000만 건 | $7,500 | $10,400 | $2,600 |
참고: 월 300만 건 이상의 추론이 예상되면 온프레미스 투자를 검토하세요. 단, 초기 투자(서버 구매)와 운영 인력이 필요합니다.
마치며 — 핵심 요약
- 데이터 보안·규정 준수·대량 추론 비용 절감이 필요한 기업에게 온프레미스 LLM은 현실적인 선택지입니다.
- GPU 선택은 "어떤 모델 크기를, 몇 명이 동시에"라는 요구사항에서 시작하며, 비용 대비 성능으로는 L40S가 A100의 좋은 대안입니다.
- Kubernetes + vLLM + Helm을 결합하면 오토스케일링·로드밸런싱·헬스체크가 모두 자동화됩니다.
- Prometheus + Grafana로 GPU 사용률, 응답 지연, 에러율을 지속 모니터링해야 장애를 사전에 막을 수 있습니다.
- 보안은 네트워크 격리·API 인증·감사 로깅을 기본으로, 온프레미스를 선택한 이유(데이터 보안)를 실제로 구현해야 합니다.
- 월 300만 건 이상의 추론이 예상되면 온프레미스 투자를 적극 검토하세요. 그 아래라면 API나 클라우드 GPU가 더 합리적일 수 있습니다.
인프라 구축은 한 번에 완성되지 않습니다. 작은 서버 한 대로 시작해서 트래픽이 늘면 확장하면 됩니다 — 이 글이 그 첫 걸음의 지도가 되길 바랍니다.
References
- NVIDIA. "GPU-Optimized Software Hub" — https://ngc.nvidia.com/
- vLLM Documentation — https://docs.vllm.ai/
- NVIDIA GPU Operator — https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/
- Kubernetes Documentation — https://kubernetes.io/docs/
— Data Dynamics 엔지니어링 팀