본문 바로가기
지니와 매일 AI와 함께하기 지니와 매일 AI와 함께하기

Ollama Open WebUI 도커 설치: 사내 전용 AI 챗봇 구축 가이드

읽는 시간 약 10분

최근 몇 년 사이 업무에서 AI를 활용하는 사례가 크게 늘었습니다. 문서 작성과 번역부터 데이터 분석까지 AI가 쓰이지 않는 곳을 찾기 어려울 정도입니다. 하지만 기업이 상용 AI 서비스를 쓸 때는 보안 문제가 늘 발목을 잡습니다. 회사 기밀 문서나 고객 데이터가 외부 서버로 전송되는 것을 꺼리는 기업이 많기 때문입니다.

이 문제를 해결하는 현실적인 방법 중 하나가 사내 서버에 AI를 직접 구축하는 것입니다. 이 글에서는 오픈소스인 Ollama와 Open WebUI를 도커로 설치해, 사내에서만 쓰는 전용 AI 챗봇을 만드는 과정을 정리해 보겠습니다. Ollama Open WebUI 조합은 설치가 비교적 간단하고, 직원들이 익숙한 채팅 화면으로 바로 쓸 수 있다는 장점이 있습니다.

사내 서버에 AI를 구축하면 좋은 점

사내 서버에서 AI 모델을 돌리면 직원이 입력한 질문과 문서가 외부 AI 회사의 서버로 나가지 않습니다. 외부 전송에 따른 유출 위험을 크게 줄일 수 있다는 것이 가장 큰 장점입니다.

비용 구조도 달라집니다. 클라우드 AI 서비스는 사용량에 따라 비용이 계속 발생하지만, 사내 구축은 초기 하드웨어 투자가 크고 이후에는 전기료, 유지보수 인력, 장비 교체 비용이 주로 듭니다. 사용량이 많고 꾸준한 조직일수록 장기적으로 유리해질 수 있으니, 예상 사용량을 기준으로 비교해 보는 것이 좋습니다.

Ollama와 Open WebUI는 어떤 도구인가

Ollama는 내 컴퓨터나 사내 서버에서 대규모 언어 모델(LLM)을 쉽게 내려받고 실행할 수 있게 해 주는 오픈소스 프로그램입니다. 명령어 한 줄로 원하는 모델을 내려받아 바로 실행할 수 있고, 다른 프로그램이 호출할 수 있는 API도 함께 제공합니다.

Open WebUI는 이 Ollama에 연결해 쓰는 웹 화면입니다. ChatGPT와 비슷한 대화 화면을 브라우저에 띄워 주기 때문에, 직원들이 별도 교육 없이도 익숙한 방식으로 사내 AI를 쓸 수 있습니다. 사용자 계정 관리, 대화 기록, 문서 업로드 같은 기능도 기본으로 들어 있습니다.

Ollama Open WebUI를 도커로 설치하는 이유

서버에 새 프로그램을 설치하다 보면 운영체제나 라이브러리 버전이 달라 에러를 해결하는 데만 하루를 보내는 경우가 많습니다. 도커는 프로그램과 설정을 컨테이너라는 하나의 상자에 담아, 어느 서버에서든 같은 환경으로 실행할 수 있게 해 줍니다.

Ollama Open WebUI를 도커로 설치하면 업그레이드할 때 이미지만 새로 받으면 되고, 다른 서버로 옮길 때도 설정 파일과 데이터 볼륨만 옮기면 됩니다. 서버 관리자의 유지보수 부담을 크게 줄일 수 있습니다.

설치 전 준비물: 하드웨어와 GPU

AI 모델은 메모리를 많이 쓰기 때문에 서버 사양이 곧 응답 속도를 좌우합니다. 특히 NVIDIA 그래픽카드와 넉넉한 그래픽 메모리(VRAM)가 있으면 속도가 크게 빨라집니다. 7~8B 크기의 모델은 4비트 양자화 기준으로 대략 8GB 안팎의 VRAM을 갖춘 GPU에서도 실행할 수 있고, 그보다 큰 모델은 더 많은 VRAM이 필요합니다.

도커 컨테이너에서 NVIDIA GPU를 쓰려면 서버에 NVIDIA 드라이버와 NVIDIA Container Toolkit이 먼저 설치되어 있어야 합니다. 이 준비가 빠지면 컨테이너는 실행되더라도 GPU 대신 CPU로만 동작해 응답이 매우 느려집니다.

docker-compose로 Ollama Open WebUI 한 번에 띄우기

두 컨테이너를 따로 실행해도 되지만, docker-compose 파일 하나로 관리하면 실행과 재시작이 훨씬 편합니다. 아래 예시는 Ollama 포트를 서버 밖으로 열지 않고, Open WebUI만 3000번 포트로 접속하게 만든 구성입니다.

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    volumes:
      - ollama:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped  open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- open-webui:/app/backend/data
depends_on:
- ollama
restart: unless-stopped
volumes:
ollama:
open-webui:

파일을 저장한 폴더에서 아래 명령으로 실행하고, 사용할 모델을 내려받습니다. 모델 이름은 예시이며, 한국어 응답 품질은 모델마다 차이가 크므로 후보 모델 몇 개를 직접 비교해 보고 고르는 것이 좋습니다.

docker compose up -d
docker exec -it ollama ollama pull qwen2.5:7b

이제 브라우저에서 http://서버주소:3000 으로 접속하면 Open WebUI 화면이 나타납니다. 처음 만든 계정이 관리자 계정이 되므로, 설치 직후 관리자가 먼저 가입해 두어야 합니다.

설치 후 자주 겪는 문제와 해결 방법

응답 속도가 너무 느릴 때

답변이 한 글자씩 답답하게 나온다면 GPU가 제대로 연결되지 않았을 가능성이 큽니다. 아래 명령으로 실행 중인 모델이 GPU에서 돌고 있는지 확인할 수 있습니다. 결과의 PROCESSOR 항목이 GPU가 아니라 CPU로 표시된다면 NVIDIA Container Toolkit 설치와 compose 파일의 GPU 설정을 다시 확인해야 합니다.

docker exec -it ollama ollama ps

사내망에서 모델을 내려받을 수 없을 때

보안 때문에 외부 인터넷이 막힌 사내망에서는 모델을 바로 내려받을 수 없습니다. 이럴 때는 인터넷이 되는 다른 PC에서 같은 방식으로 Ollama를 실행해 모델을 먼저 내려받은 뒤, 모델이 저장된 폴더(컨테이너 기준 /root/.ollama)를 통째로 사내 서버의 ollama 볼륨으로 옮기는 방법을 쓸 수 있습니다. GGUF 형식의 모델 파일을 옮긴 뒤 Modelfile로 직접 등록하는 방법도 있습니다. 보안 규정이 엄격한 기업일수록 반입 절차를 미리 확인해 두어야 시행착오를 줄일 수 있습니다.

하드웨어 비용을 줄이는 모델 선택 요령

사내 구축에서 가장 부담되는 부분은 GPU 구매 비용입니다. 하지만 실제 용도에 맞춰 모델 크기를 고르면 비용을 크게 줄일 수 있습니다.

전 직원이 동시에 쓰는 것이 아니라 특정 부서에서 문서 초안이나 번역 용도로만 쓴다면, 가장 큰 모델을 고집할 필요가 없습니다. 작은 모델로 먼저 시작해 실제 사용량과 만족도를 지켜보면서 필요할 때 GPU를 늘리는 방식이 현명합니다.

Ollama Open WebUI 운영 시 꼭 챙길 보안

사내 서버에 AI를 띄웠다고 보안 관리가 끝나는 것은 아닙니다. 외부로 데이터가 나가지 않더라도, 사내에서 권한 없는 사람이 접근하거나 민감한 정보가 쌓이는 문제는 따로 관리해야 합니다.

Ollama 포트는 외부에 열지 않기

Ollama API에는 기본 인증 기능이 없습니다. 11434 포트를 사내망 전체에 열어 두면 누구나 모델을 호출할 수 있게 됩니다. 앞의 compose 예시처럼 Ollama 포트는 외부에 공개하지 않고 Open WebUI만 접속 창구로 두는 것이 안전합니다. 또 리눅스 서버에서는 도커로 공개한 포트가 UFW 같은 방화벽 규칙을 우회할 수 있으므로, 방화벽 설정만 믿지 말고 공개하는 포트 자체를 최소화해야 합니다.

계정 발급과 가입 승인 관리

Open WebUI의 사용자 인증 기능을 활용해 임직원별로 계정을 따로 쓰게 하고, 관리자 화면에서 신규 가입을 승인제로 운영하거나 가입 자체를 막아 두는 것이 좋습니다. 퇴사자나 부서 이동자의 계정도 주기적으로 정리해야 합니다.

대화 기록과 로그 관리

Open WebUI는 직원들의 대화 내용을 서버에 저장합니다. 직원이 개인정보나 재무 데이터를 입력하면 그대로 기록에 남을 수 있으므로, 보관 기간을 정해 주기적으로 정리하고 사내 보안 규정에 맞는 보관 정책을 세워야 합니다. 입력 단계에서 개인정보를 자동으로 가리는 방법은 Presidio 한국어 개인정보 탐지 글에서 다뤘습니다.

사내 AI 챗봇 활용 사례

사내 서버에 구축한 AI는 생각보다 다양한 업무에 쓸 수 있습니다. 만족도가 높은 분야는 사내 문서 검색과 요약입니다. 사내 규정집이나 과거 프로젝트 보고서를 AI가 참고하도록 연결해 두면, 직원이 필요한 내용을 훨씬 빨리 찾을 수 있습니다.

해외 거래처와 메일을 주고받을 때 번역과 문장 다듬기에도 유용합니다. 신입 사원에게 회사 시스템이나 업무 절차를 안내하는 사내 챗봇으로 쓰는 것도 좋은 방법입니다. 사람에게 묻기 애매한 질문도 부담 없이 물어볼 수 있어 조직 적응에 도움이 됩니다.

jinii
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.