Overview
최근 AI 기술의 발전으로 ChatGPT, Claude 같은 상용 LLM 서비스가 대중화되었지만, 보안이 중요한 기업 환경에서는 민감한 데이터를 외부 API로 전송하기 어려운 경우가 많다. 이러한 상황에서 온프레미스 환경에 자체 LLM을 구축하면 데이터 보안을 유지하면서도 AI의 이점을 활용할 수 있다.
이번 글에서는 NVIDIA GPU가 장착된 물리 서버에 Ollama를 설치하고, Open WebUI를 통해 웹 인터페이스를 제공하는 사내 LLM 시스템을 구축하는 전체 과정을 다룬다.
NFS를 활용한 스토리지 관리와 Docker Compose를 이용한 컨테이너 오케스트레이션까지 포함하여 실무에 바로 적용 가능한 완전한 솔루션을 제시한다.

시스템 구성 및 사전 요구사항
하드웨어 환경
본 구성에서 사용한 시스템 스펙은 다음과 같다.
GPU 서버 (192.168.1.20)
- CPU: Intel Xeon 6코어
- RAM: 32GB
- GPU: NVIDIA GeForce RTX 3060 12GB
- OS: Ubuntu 24.04 LTS
- 용도: Ollama 서버
웹 서버 (192.168.1.21)
- CPU: 4코어
- RAM: 16GB
- OS: Ubuntu 24.04 LTS
- 용도: Open WebUI
스토리지 서버 (192.168.1.25)
- NFS 서버: /storage/ai-data 공유
GPU 호환성 확인
먼저 설치된 GPU의 스펙을 확인한다.
lspci | grep -iE "vga|display|3d"
# 01:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060]
RTX 3060의 주요 스펙
- 아키텍처: Ampere (GA106)
- CUDA 코어: 3,584개
- VRAM: 12GB GDDR6
- CUDA Compute Capability: 8.6
- 권장 드라이버: 525+ (535 안정적)
1단계: NVIDIA 드라이버 설치
Secure Boot 상태 확인
mokutil --sb-state
# SecureBoot disabled 또는 SecureBoot enabled 확인
- Secure Boot이 활성화되어 있으면 드라이버 설치 후 MOK(Machine Owner Key) 등록 과정이 필요하다.
사용 가능한 드라이버 버전 확인
# 저장소에서 사용 가능한 버전 확인
apt-cache search nvidia-driver
# 특정 버전의 상세 정보 확인
apt-cache show nvidia-driver-535 | grep Version
# Version: 535.288.01-0ubuntu0.24.04.1
또는 NVIDIA 공식 웹사이트에서 최신 버전 확인
- URL: https://www.nvidia.com/Download/index.aspx
- Product Type: GeForce
- Product Series: GeForce RTX 30 Series
- Product: GeForce RTX 3060
- Operating System: Linux 64-bit
드라이버 설치 및 확인
# 시스템 업데이트
sudo apt update
# NVIDIA 드라이버 설치
sudo apt install -y nvidia-driver-535
# 시스템 재부팅
sudo reboot
재부팅 후 Secure Boot이 활성화되어 있다면 파란색 MOK 관리 화면이 나타난다.
- "Enroll MOK" 선택
- "Continue" 선택
- 설치 시 설정한 비밀번호 입력
- "Reboot" 선택
설치 확인
nvidia-smi
# 정상 설치 시 GPU 정보와 드라이버 버전이 출력된다.
Wed Feb 5 10:15:23 2026
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.288.01 Driver Version: 535.288.01 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3060 Off | 00000000:01:00.0 Off | N/A |
| 0% 35C P8 15W / 170W | 0MiB / 12288MiB | 0% Default |
+-----------------------------------------+----------------------+----------------------+
2단계: Docker 및 NVIDIA Container Toolkit 설치
Docker 설치
# Docker 설치 확인
docker --version
# 없을 경우 설치
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
# 현재 사용자를 docker 그룹에 추가 (선택사항)
sudo usermod -aG docker $USER
NVIDIA Container Toolkit 설치
Docker 컨테이너에서 GPU를 사용하기 위해 NVIDIA Container Toolkit이 필요하다.
# GPG 키 추가
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
# 저장소 추가
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 패키지 설치
sudo apt update
sudo apt install -y nvidia-container-toolkit
Docker 런타임 설정
# Docker에 NVIDIA 런타임 설정
sudo nvidia-ctk runtime configure --runtime=docker
# Docker 서비스 재시작
sudo systemctl restart docker
GPU 접근 테스트
docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi
- 정상적으로 GPU 정보가 출력되면 설정 완료이다.
3단계: NFS 스토리지 구성
여러 서버에서 모델 파일과 데이터를 공유하기 위해 NFS를 구성한다.
클라이언트 설치 및 마운트
# NFS 클라이언트 설치
sudo apt install -y nfs-common
# 마운트 포인트 생성
sudo mkdir -p /data/llm-models
sudo mkdir -p /data/webui-storage
# NFS 마운트
sudo mount -t nfs4 192.168.1.25:/storage/ai-data/models /data/llm-models
sudo mount -t nfs4 192.168.1.25:/storage/ai-data/webui /data/webui-storage
# 확인
df -h | grep nfs
영구 마운트 설정
재부팅 후에도 자동으로 마운트되도록 `/etc/fstab` 을 설정한다.
sudo nano /etc/fstab
# 다음 줄 추가
192.168.1.25:/storage/ai-data/models /data/llm-models nfs4 defaults,_netdev,rw 0 0
192.168.1.25:/storage/ai-data/webui /data/webui-storage nfs4 defaults,_netdev,rw 0 0
설정 확인
sudo mount -a
df -h | grep nfs
권한 설정
# Ollama 데이터 디렉토리
sudo chown -R root:root /data/llm-models
sudo chmod 755 /data/llm-models
# Open WebUI 데이터 디렉토리
sudo chown -R root:root /data/webui-storage
sudo chmod 755 /data/webui-storage
4단계: Docker 네트워크 구성
Ollama와 Open WebUI가 통신할 수 있도록 공유 네트워크를 생성한다.
# Docker 브리지 네트워크 생성
docker network create ai_network
# 확인
docker network ls
# NETWORK ID NAME DRIVER SCOPE
# abc123def456 ai_network bridge local
5단계: Ollama 서버 구축 (GPU 서버)
Docker Compose 파일 생성
cat > /opt/ollama/docker-compose.yml << 'EOF'
version: '3.8'
services:
ollama:
image: ollama/ollama:0.15.4
container_name: ollama-server
restart: unless-stopped
runtime: nvidia
ports:
- "11434:11434"
volumes:
- /data/llm-models:/root/.ollama
environment:
# 모델 메모리 유지 시간 설정
# -1: 영구 유지 (언로드 안 함, 항상 메모리에 상주)
# 0: 즉시 언로드 (사용 후 바로 메모리 해제)
# 5m: 5분 후 언로드 (기본값)
# 30m: 30분 후 언로드
# 1h: 1시간 후 언로드
#
# -1 설정 시:
# 장점: 첫 응답 이후 매번 빠른 응답 (로딩 시간 없음)
# 단점: VRAM 계속 점유 (qwen2.5-coder:14b = ~8GB 상시 사용)
#
# 권장: 자주 사용하면 -1, 가끔 사용하면 30m
- OLLAMA_KEEP_ALIVE=-1
- NVIDIA_VISIBLE_DEVICES=all
- OLLAMA_ORIGINS=*
networks:
- ai_network
networks:
ai_network:
name: ai_network
external: true
EOF
환경변수 설명
- OLLAMA_KEEP_ALIVE: 모델 메모리 유지 시간
- -1: 영구 유지 (첫 로딩 후 항상 메모리에 상주)
- 5m: 5분 후 자동 언로드 (기본값)
- 30m: 30분 후 언로드 (권장)
- 0: 즉시 언로드
- NVIDIA_VISIBLE_DEVICES=all: 모든 GPU 사용
- OLLAMA_ORIGINS=*: CORS 허용 (선택사항)
KEEP_ALIVE 설정 가이드
- 자주 사용 (1일 10회 이상): -1 (영구 유지) → 빠른 응답
- 가끔 사용 (1일 3~10회): 30m 또는 1h → 균형
- 드물게 사용 (1일 1~2회): 5m (기본값) → 메모리 절약
컨테이너 실행
# 디렉토리 이동
cd /opt/ollama
# 컨테이너 실행
docker-compose up -d
# 로그 확인
docker-compose logs -f
# 상태 확인
docker-compose ps
GPU 사용 확인
# 컨테이너 내부에서 nvidia-smi 실행
docker exec -it ollama-server nvidia-smi
# NFS 마운트 확인
docker exec -it ollama-server df -h /root/.ollama
LLM 모델 다운로드
Ollama는 https://ollama.com/library 에서 다양한 모델을 제공한다.
RTX 3060 12GB 기준 권장 모델은 다음과 같다.
1) DeepSeek-Coder-V2 16B (코딩 특화, 10GB)
docker exec -it ollama-server ollama pull deepseek-coder-v2:16b
2) Qwen2.5-Coder 14B (코딩, 9.7GB)
docker exec -it ollama-server ollama pull qwen2.5-coder:14b
3) Qwen3 14B (범용, 11GB)
docker exec -it ollama-server ollama pull qwen3:14b
4) Qwen2.5-Coder 32B (고성능 코딩, 21GB - CPU 오프로딩)
docker exec -it ollama-server ollama pull qwen2.5-coder:32b
모델 다운로드 확인
ls -lh /data/llm-models/models/
모델 테스트
# DeepSeek 16B 테스트
docker exec -it ollama-server ollama run deepseek-coder-v2:16b
>>> Write a Python function to reverse a string
# 종료: Ctrl+D 또는 /bye
모델별 성능 비교 (RTX 3060 12GB 기준)
DeepSeek-Coder-V2 16B (10GB)
docker exec -it ollama-server ollama ps
NAME ID SIZE PROCESSOR CONTEXT
deepseek-coder-v2:16b 63fb193b3a9b 10 GB 100% GPU 4096
## 메모리 사용량
| 0 NVIDIA GeForce RTX 3060 Off | 00000000:01:00.0 Off | N/A |
| 0% 49C P2 26W / 170W | 9898MiB / 12288MiB | 0% Default |
Qwen2.5-Coder 14B (9.7GB)
NAME ID SIZE PROCESSOR CONTEXT
qwen2.5-coder:14b 9ec8897f747e 9.7 GB 100% GPU 4096
## 메모리 사용량:
| 0 NVIDIA GeForce RTX 3060 Off | 00000000:01:00.0 Off | N/A |
| 0% 50C P2 44W / 170W | 9482MiB / 12288MiB | 0% Default |
Qwen2.5-Coder 32B (21GB - CPU 오프로딩)
NAME ID SIZE PROCESSOR CONTEXT
qwen2.5-coder:32b b92d6a0bd47e 21 GB 45%/55% CPU/GPU 4096
## 메모리 사용량:
| 0 NVIDIA GeForce RTX 3060 Off | 00000000:01:00.0 Off | N/A |
| 0% 60C P2 60W / 170W | 11476MiB / 12288MiB | 17% Default |
성능 분석 및 권장사항
| 모델 | 크기 | VRAM | 처리 방식 | 속도추천 | 용도 |
| DeepSeek 16B | 10GB | 9.9GB | 100% GPU | ★★★★★ | 실시간 코딩 지원 (가장 빠름) |
| Qwen2.5 14B | 9.7GB | 9.5GB | 100% GPU | ★★★★☆ | 일반 코딩 작업 |
| Qwen3 14B | 11GB | 11GB | 100% GPU | ★★★★☆ | 복잡한 추론/논리 작업 |
| Qwen2.5 32B | 21GB | 11.5GB | 45% CPU 55% GPU |
★★☆☆☆ | 고품질 결과 필요 시 (속도 5배 이상 느림) |
핵심 포인트
- VRAM 12GB 이하 모델 → 100% GPU 처리 → 빠른 응답
- VRAM 12GB 초과 모델 → CPU 오프로딩 → 매우 느린 응답
- 실무 권장: DeepSeek 16B (속도와 성능의 균형)
모델 관리 명령어
# 실행 중인 모델 확인
docker exec -it ollama-server ollama ps
# 모델 언로드 (메모리 확보)
docker exec -it ollama-server ollama stop deepseek-coder-v2:16b
docker exec -it ollama-server ollama stop qwen2.5-coder:32b
# 모델 삭제
docker exec -it ollama-server ollama rm qwen2.5-coder:32b
# 설치된 모든 모델 목록
docker exec -it ollama-server ollama list
6단계: Open WebUI 구축 (웹 서버)
Open WebUI는 ChatGPT와 유사한 웹 인터페이스를 제공하는 오픈소스 프로젝트다.
Docker Compose 파일 생성
cat > /opt/open-webui/docker-compose.yml << 'EOF'
version: '3.8'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /data/webui-storage:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://192.168.1.20:11434
- WEBUI_SECRET_KEY=your-random-secret-key-change-this
- WEBUI_NAME=Company AI Assistant
- DEFAULT_MODELS=deepseek-coder-v2:16b,qwen2.5-coder:14b
networks:
- ai_network
networks:
ai_network:
name: ai_network
external: true
EOF
환경변수 설명
- OLLAMA_BASE_URL: Ollama 서버 주소 (컨테이너 간 통신 시 서비스명 또는 IP 사용)
- WEBUI_SECRET_KEY: 세션 암호화 키 (랜덤 문자열로 변경 필수)
- WEBUI_NAME: 웹 UI 타이틀
- DEFAULT_MODELS: 기본 표시 모델 목록
주의사항
- 같은 Docker 네트워크 내에서는 http://ollama-server:11434 형식으로 통신 가능
- 다른 물리 서버에 있다면 IP 주소 사용 (http://192.168.1.20:11434)
컨테이너 실행
# 디렉토리 이동
cd /opt/open-webui
# 실행
docker-compose up -d
# 로그 확인
docker-compose logs -f
# 상태 확인
docker-compose ps
웹 인터페이스 접속
브라우저에서 `http://192.168.1.21:8080` 접속한다.
초기 설정
- 회원가입 (첫 사용자는 자동으로 관리자)
- 설정 → 모델 → Ollama 연결 확인
- 대화 시작

7단계: API 연동 및 활용
Open WebUI는 OpenAI 호환 API를 제공하여 프로그래밍 방식으로 접근할 수 있다.
API 키 발급
- 웹 UI 로그인
- 설정 → Account → API Keys
- "Create new secret key" 클릭
- 생성된 키 복사 (예: sk-abc123def456...)
API 호출 예제
cURL 테스트
curl -X POST http://192.168.1.21:8080/api/chat/completions \
-H "Authorization: Bearer sk-abc123def456..." \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-coder-v2:16b",
"messages": [
{
"role": "user",
"content": "파이썬으로 피보나치 수열 함수를 작성해줘"
}
],
"stream": false
}'
Python 예제
import requests
import json
API_URL = "http://192.168.1.21:8080/api/chat/completions"
API_KEY = "sk-abc123def456..."
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
payload = {
"model": "deepseek-coder-v2:16b",
"messages": [
{
"role": "system",
"content": "당신은 파이썬 전문 코딩 어시스턴트다."
},
{
"role": "user",
"content": "이진 탐색 알고리즘을 구현해줘"
}
],
"temperature": 0.7,
"max_tokens": 2000
}
response = requests.post(API_URL, headers=headers, json=payload)
result = response.json()
print(result['choices'][0]['message']['content'])
스트리밍 응답 예제
import requests
import json
payload = {
"model": "qwen2.5-coder:14b",
"messages": [
{"role": "user", "content": "REST API란 무엇인지 설명해줘"}
],
"stream": True
}
response = requests.post(
API_URL,
headers=headers,
json=payload,
stream=True
)
for line in response.iter_lines():
if line:
decoded = line.decode('utf-8')
if decoded.startswith('data: '):
data = json.loads(decoded[6:])
if 'choices' in data:
content = data['choices'][0]['delta'].get('content', '')
print(content, end='', flush=True)
8단계: 모니터링 및 유지보수
GPU 모니터링
실시간 GPU 사용량 확인
watch -n 1 nvidia-smi
로그 기반 모니터링
# GPU 사용률 로그
nvidia-smi --query-gpu=timestamp,name,temperature.gpu,utilization.gpu,utilization.memory,memory.used,memory.total \
--format=csv -l 5 >> /var/log/gpu-usage.log
# 분석
tail -f /var/log/gpu-usage.log
Docker 컨테이너 관리
# Ollama 재시작
cd /opt/ollama
docker-compose restart
# Open WebUI 재시작
cd /opt/open-webui
docker-compose restart
# 로그 확인 (최근 100줄)
docker-compose logs --tail 100 ollama
docker-compose logs --tail 100 open-webui
# 리소스 사용량 확인
docker stats
백업 전략
모델 파일 백업
# NFS 디렉토리 백업
sudo rsync -avz /data/llm-models/ /backup/llm-models-$(date +%Y%m%d)/
Open WebUI 데이터 백업
# 사용자 설정 및 대화 내역
sudo rsync -avz /data/webui-storage/ /backup/webui-storage-$(date +%Y%m%d)/
자동 백업 스크립트
cat > /usr/local/bin/backup-ai-system.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/backup/ai-system"
DATE=$(date +%Y%m%d_%H%M%S)
# 백업 디렉토리 생성
mkdir -p ${BACKUP_DIR}/${DATE}
# 모델 백업 (심볼릭 링크 사용)
ln -sf /data/llm-models ${BACKUP_DIR}/${DATE}/models
# WebUI 데이터 백업
rsync -az /data/webui-storage/ ${BACKUP_DIR}/${DATE}/webui/
# 7일 이상 된 백업 삭제
find ${BACKUP_DIR} -type d -mtime +7 -exec rm -rf {} +
echo "Backup completed: ${BACKUP_DIR}/${DATE}"
EOF
chmod +x /usr/local/bin/backup-ai-system.sh
# Cron 등록 (매일 새벽 2시)
(crontab -l 2>/dev/null; echo "0 2 * * * /usr/local/bin/backup-ai-system.sh >> /var/log/ai-backup.log 2>&1") | crontab -
트러블슈팅
GPU 인식 안됨
증상: `docker exec -it ollama-server nvidia-smi` 실패
해결
# 드라이버 재설치
sudo apt purge -y nvidia-*
sudo apt install -y nvidia-driver-535
sudo reboot
# Container Toolkit 재설정
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
Ollama 응답 느림 (32B 모델)
증상: 응답이 매우 느림, GPU 메모리 부족
해결: 작은 모델 사용 또는 GPU 업그레이드
# 메모리 효율적인 모델로 전환
docker exec -it ollama-server ollama stop qwen2.5-coder:32b
docker exec -it ollama-server ollama run deepseek-coder-v2:16b
NFS 마운트 실패
증상: mount.nfs4: Connection timed out
해결
# NFS 서버 확인
showmount -e 192.168.1.25
# 방화벽 확인 (NFS 서버에서)
sudo ufw allow from 192.168.1.0/24 to any port nfs
# 재마운트
sudo umount /data/llm-models
sudo mount -a
Open WebUI 연결 오류
증상: "Failed to connect to Ollama"
해결
# Ollama API 테스트
curl http://192.168.1.20:11434/api/tags
# 네트워크 확인
docker network inspect ai_network
# 환경변수 수정
cd /opt/open-webui
docker-compose down
# docker-compose.yml에서 OLLAMA_BASE_URL 수정 후
docker-compose up -d
모델 로딩 시간 길어짐
증상: 첫 요청 시 응답까지 10~30초 소요
해결: OLLAMA_KEEP_ALIVE 설정 조정
# docker-compose.yml 수정
environment:
- OLLAMA_KEEP_ALIVE=-1 # 영구 유지로 변경
# 재시작
cd /opt/ollama
docker-compose down
docker-compose up -d
보안 고려사항
리버스 프록시 설정 (Nginx)
외부 접근 시 HTTPS 적용을 권장한다.
# /etc/nginx/sites-available/ai-assistant
server {
listen 443 ssl http2;
server_name ai.company.com;
ssl_certificate /etc/letsencrypt/live/ai.company.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ai.company.com/privkey.pem;
location / {
proxy_pass http://192.168.1.21:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
# WebSocket 지원
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
사용자 접근 제어
Open WebUI 관리자 페이지에서 다음을 설정한다:
- Settings → Users → User Permissions
- 사용자별 모델 접근 권한 설정
- 일일 요청 제한 설정
성능 최적화 팁
1. 모델 사전 로딩
자주 사용하는 모델을 미리 메모리에 로드한다.
# systemd 서비스 생성
cat > /etc/systemd/system/ollama-preload.service << 'EOF'
[Unit]
Description=Ollama Model Preloader
After=docker.service
Requires=docker.service
[Service]
Type=oneshot
ExecStart=/usr/bin/docker exec ollama-server ollama run deepseek-coder-v2:16b ""
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable ollama-preload
sudo systemctl start ollama-preload
2. Context Window 조정
긴 대화 시 성능 저하를 방지한다.
# API 호출 시 max_tokens 제한
payload = {
"model": "deepseek-coder-v2:16b",
"messages": messages,
"max_tokens": 1024, # 적절한 값으로 제한
"temperature": 0.7
}
3. 배치 처리
여러 요청을 동시에 처리해야 할 경우 설정을 조정한다.
# docker-compose.yml에 추가
environment:
- OLLAMA_NUM_PARALLEL=2
- OLLAMA_MAX_LOADED_MODELS=2
4. KEEP_ALIVE 최적화 전략
사용 패턴에 따른 권장 설정
시나리오 1: 개발팀 전용 (하루 종일 사용)
environment:
- OLLAMA_KEEP_ALIVE=-1 # 영구 유지
시나리오 2: 부서 공유 (업무 시간만 사용)
environment:
- OLLAMA_KEEP_ALIVE=1h # 1시간 유지
시나리오 3: 간헐적 사용 (가끔 필요)
environment:
- OLLAMA_KEEP_ALIVE=5m # 기본값
마무리
이번 글에서는 온프레미스 환경에서 Ollama와 Open WebUI를 활용한 사내 LLM 시스템을 구축하는 전체 과정을 다뤘다. NVIDIA GPU 드라이버 설치부터 Docker Compose를 이용한 컨테이너 오케스트레이션, NFS 스토리지 연동, 그리고 실제 운영에 필요한 모니터링과 백업 전략까지 실무에 바로 적용 가능한 내용으로 구성했다.
핵심 요약
- RTX 3060 12GB 기준: DeepSeek 16B 모델이 속도와 성능 면에서 최적
- Docker Compose 활용: 컨테이너 관리를 선언적으로 정의하여 유지보수 용이
- KEEP_ALIVE 설정: 사용 패턴에 맞춰 -1, 30m, 5m 중 선택
- NFS 활용: 여러 서버 간 모델 파일 공유로 스토리지 효율 극대화
- API 연동: OpenAI 호환 API로 기존 워크플로우 통합 가능
특히 보안이 중요한 금융, 헬스케어, 정부 기관 등에서는 데이터를 외부로 전송하지 않고도 AI의 이점을 활용할 수 있다는 점에서 온프레미스 LLM 구축이 큰 가치를 제공한다. 초기 구축 비용이 들지만 장기적으로는 API 사용료 절감과 데이터 주권 확보라는 두 마리 토끼를 잡을 수 있다.
향후에는 모델 파인튜닝, RAG(Retrieval-Augmented Generation) 시스템 통합, 그리고 Kubernetes 환경에서의 오케스트레이션 등 고급 주제로 시리즈를 이어가겠다.
Reference
- Ollama 공식 문서: https://github.com/ollama/ollama
- Open WebUI 공식 저장소: https://github.com/open-webui/open-webui
- NVIDIA Container Toolkit: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/
Somaz | DevOps Engineer | Kubernetes & Cloud Infrastructure Specialist
'AI > AI Tool' 카테고리의 다른 글
| Claude 4.5 Sonnet vs Gemini 3 Pro 비교: 2026년 최신 AI 모델 대결 (0) | 2026.01.17 |
|---|---|
| Claude Code 완벽 가이드: Mac에서 시작하기 (0) | 2026.01.15 |
| Claude와 Claude Code: AI 기반 개발 환경의 새로운 패러다임 (1) | 2026.01.10 |