Ollama를 설치해 Linux 서버에서 로컬 LLM을 직접 운영하는 구성을 나타난 대표 이미지

개요

Ollama는 개인 서버나 PC에서 LLM을 직접 실행할 수 있게 해주는 로컬 AI 실행 도구입니다.

필요한 모델을 내려받아 내 환경에서 실행하므로 외부 AI 서비스에 데이터를 보내지 않고도 챗봇, 문서 요약, 코드 보조 기능을 구성할 수 있습니다.

이 글에서는 Linux 서버에 Ollama를 설치하고 외부 접속을 허용하는 방법을 정리합니다.

Oracle Cloud A1 ARM 환경에서 사용할 만한 모델 선택 기준과 HTTP API 호출 예제도 함께 다룹니다.

주의할 점

Ollama는 주로 HTTP API 방식으로 사용됩니다.

외부 접속을 허용하면 같은 네트워크 밖에서도 모델 호출이 가능해질 수 있으므로 접근 제어가 필요합니다.

인터넷에 직접 노출할 때는 아래 보호 장치를 함께 구성하는 것을 권장합니다.

  1. 방화벽으로 11434 포트를 신뢰할 수 있는 IP 대역에만 허용한다.
  2. VPN으로 접속을 우회한다. 개인적으로 Tailscale을 추천한다.
  3. 리버스 프록시(nginx 등) 뒤에 두고 인증을 붙인다.
  4. 허용 IP를 명시적으로 제한한다.

설치

스크립트 설치

1curl -fsSL https://ollama.com/install.sh | sh

실행 확인

1ollama --version

서비스 확인

1systemctl status ollama

서비스 자동 시작

1sudo systemctl enable ollama

로그 확인

1journalctl -u ollama -f

외부 접속 허용

bind ip 확인

  • 아래 예시 기준으로 127.0.0.1 바인딩
  • 로컬에서만 접근된다는 뜻
1ss -tlnp | grep 11434
2
3# Result
4# LISTEN 0      4096                     127.0.0.1:11434      0.0.0.0:*

설정 디렉토리 생성

1sudo mkdir -p /etc/systemd/system/ollama.service.d

환경 설정 파일 편집

1sudo vim /etc/systemd/system/ollama.service.d/override.conf

내용 추가

1[Service]
2Environment="OLLAMA_HOST=0.0.0.0:11434"

서비스 적용

1sudo systemctl daemon-reload
2sudo systemctl restart ollama

바인딩 다시 확인

  • *:11434 로 모든 ip 연결 허용
1ubuntu@a1-free:~$ ss -tlnp | grep 11434
2
3# Result
4# LISTEN 0      4096                             *:11434            *:*

LLM Model 추천

Oracle Cloud A1 ARM 2OCPU / 12 RAM 기준

**용도모델추천도속도****Tool Calling한국어메모리비고**
🥇 채팅 + Tool 겸용Qwen3:4B⭐⭐⭐⭐⭐★★★★☆★★★★★★★★★★4~5GB가장 추천
채팅 전용Gemma3:4B⭐⭐⭐⭐☆★★★★★★★★☆☆★★★★☆4GB빠른 응답
경량Llama3.2:3B⭐⭐⭐⭐☆★★★★★★★★☆☆★★★★☆3GB가장 가벼움
고품질(느림)Qwen3:8B⭐⭐⭐☆☆★★☆☆☆★★★★★★★★★★8~10GBCPU에서는 느림
개발/코딩 특화Qwen3-Coder⭐⭐⭐⭐☆★★☆☆☆★★★★★★★★★★코딩 전용에 가까움
  • GPU 없음, 상시 무료 인스턴스
  • 위 사양에서는 Qwen3:4B 사용했는데 너무 느려서 못 쓰겠다…
    • GPU 없으면 한계가 확실함
    • 배치 스케쥴로만 사용해야할 정도

LLM Model 설치

1# chat + tool chain
2ollama pull qwen3:4b
3
4# fast chat
5ollama pull gemma3:4b

LLM 사용

Warm up

 1curl -s \
 2  -w "\n\nHTTP Status: %{http_code}\nTotal Time : %{time_total}s\n" \
 3  http://localhost:11434/api/generate \
 4  -d '{
 5    "model":"qwen3:4b",
 6    "prompt":"hi",
 7    "stream":false,
 8    "keep_alive":"5m",
 9    "options": {
10      "num_predict": 32
11    }
12  }'

프롬프트 실행

 1curl -s \
 2  -w "\n\nHTTP Status: %{http_code}\nTotal Time : %{time_total}s\n" \
 3  http://localhost:11434/api/chat \
 4  -d '{
 5    "model":"qwen3:4b",
 6    "messages":[
 7      {
 8        "role":"user",
 9        "content":"한국어로 대답해줘. 1+1?"
10      }
11    ],
12    "think": false,    
13    "stream":false
14  }'

추가 설정

환경 설정 편집

1sudo systemctl edit ollama

필요한 환경 변수 추가

1# 기본 keep alive 시간
2# -1: 무제한
3# example: 10m, 1h, ... 
4Environment="OLLAMA_KEEP_ALIVE=-1"

서비스 적용

1sudo systemctl daemon-reload && sudo systemctl restart ollama

관련 글