블로그집 PC에서 무료 AI 서버 만들기 – Ollama + Cloudflare Tunnel 완전 가이드 (Windows)

집 PC에서 무료 AI 서버 만들기 – Ollama + Cloudflare Tunnel 완전 가이드 (Windows)

ChatGPT나 Claude 같은 AI를 내 PC에서 무료로 돌릴 수 있다면? Ollama를 사용하면 가능합니다. 여기에 Cloudflare Tunnel을 더하면 집 PC의 AI를 어디서든 접근할 수 있는 나만의 AI 서버가 됩니다. 이 글에서는 Windows PC에 Ollama를 설치하고, Cloudflare Tunnel로 외부에 안전하게 공개하는 전 과정을 안내합니다.

완성 후 구조

내 웹사이트/앱 (어디서든)
  → https://ollama.내도메인.com (HTTPS, 무료)
    → Cloudflare Tunnel (암호화)
      → 집 PC (Ollama AI 실행 중)
        → AI 모델 (qwen2.5:14b 등)
항목내용
AI 모델 비용0원 (오픈소스)
서버 비용0원 (내 PC 사용)
터널 비용0원 (Cloudflare 무료)
HTTPS자동 적용
포트포워딩불필요

사전 준비

  • Windows PC: RAM 16GB 이상 (32GB 권장)
  • Cloudflare 계정: cloudflare.com 무료 가입
  • Cloudflare에 등록된 도메인: 네임서버가 Cloudflare를 가리켜야 함
  • 인터넷 연결: 업로드 속도 10Mbps 이상 권장

Part 1: Ollama 설치 및 AI 모델 다운로드

1-1. Ollama 설치

  1. ollama.com/download 접속
  2. Windows 버전 다운로드 (OllamaSetup.exe)
  3. 설치 파일 실행 → 설치 완료
  4. 설치 확인: 명령 프롬프트(cmd)에서
    ollama --version

1-2. AI 모델 다운로드

PC 사양에 맞는 모델을 선택하세요:

모델크기필요 RAM한국어추천 대상
qwen2.5:7b4.4GB8GB+좋음RAM 16GB 이하
qwen2.5:14b8.7GB16GB+매우 좋음⭐ RAM 32GB 추천
gemma2:9b5.4GB16GB+양호구글 모델 선호 시
llama3.1:8b4.7GB16GB+보통Meta 모델
mistral:7b4.1GB8GB+보통가벼운 모델

한국어 챗봇용이라면 qwen2.5:14b를 강력 추천합니다.

:: cmd에서 실행
ollama pull qwen2.5:14b

다운로드에 약 10~20분 소요됩니다 (인터넷 속도에 따라 다름).

1-3. 모델 테스트

ollama run qwen2.5:14b "안녕하세요, 자기소개 해주세요"

한국어로 자연스럽게 답변이 오면 성공입니다! Ctrl+D 또는 /bye로 종료합니다.

1-4. 외부 접근 허용 설정

기본적으로 Ollama는 localhost에서만 접근 가능합니다. 외부(Cloudflare Tunnel)에서 접근하려면 환경변수를 설정해야 합니다.

Windows 환경변수 설정:

  1. Windows 키 + Rsysdm.cpl 입력 → 확인
  2. 고급 탭 → 환경 변수 클릭
  3. 시스템 변수에서 새로 만들기 클릭
  4. 변수 이름: OLLAMA_HOST
  5. 변수 값: 0.0.0.0
  6. 확인 → 확인 → 확인
  7. PC 재시작 (또는 Ollama 재시작)

확인 방법:

:: 브라우저에서 접속
http://localhost:11434

:: "Ollama is running" 메시지가 나오면 성공

Part 2: Cloudflare Tunnel 설정

2-1. cloudflared 설치

  1. Cloudflare Tunnel 다운로드 페이지 접속
  2. Windows 64-bit MSI 파일 다운로드 (cloudflared-windows-amd64.msi)
  3. MSI 파일 실행 → 설치 완료
  4. 확인:
    cloudflared --version

⚠️ .exe 파일이 아닌 .msi 파일을 다운로드하세요. .exe는 더블클릭으로 실행되지 않고 cmd에서 사용해야 합니다.

2-2. Cloudflare 계정 연결

cmd를 관리자 권한으로 열고:

cloudflared tunnel login
  1. 브라우저가 자동으로 열림
  2. Cloudflare 계정 로그인
  3. 터널에 사용할 도메인 선택 (예: nalkkul.com)
  4. “Authorize” 클릭
  5. cmd에 “You have successfully logged in” 확인

2-3. 터널 생성

cloudflared tunnel create ollama

결과 예시:

Created tunnel ollama with id a1b2c3d4-e5f6-7890-abcd-ef1234567890

⚠️ 터널 ID를 메모하세요!

2-4. DNS 등록

cloudflared tunnel route dns ollama ollama.내도메인.com

예시:

cloudflared tunnel route dns ollama ollama.nalkkul.com

Cloudflare DNS에 CNAME 레코드가 자동 추가됩니다.

2-5. 설정 파일 생성

메모장으로 C:\Users\사용자명\.cloudflared\config.yml 파일을 생성합니다:

tunnel: a1b2c3d4-e5f6-7890-abcd-ef1234567890
credentials-file: C:\Users\사용자명\.cloudflared\a1b2c3d4-e5f6-7890-abcd-ef1234567890.json

ingress:
  - hostname: ollama.nalkkul.com
    service: http://localhost:11434
    originRequest:
      connectTimeout: 60s
      noTLSVerify: true
  - service: http_status:404

수정 필수:

  • tunnel: → 2-3에서 메모한 터널 ID
  • credentials-file: → 실제 경로 (사용자명 변경)
  • hostname: → 2-4에서 등록한 도메인

connectTimeout을 60s로 설정한 이유: AI 모델은 응답 생성에 시간이 걸릴 수 있어서 타임아웃을 넉넉하게 잡습니다.

2-6. 터널 실행

cloudflared tunnel run ollama

아래 로그가 나오면 성공:

INF Connection established connIndex=0
INF Connection established connIndex=1
INF Connection established connIndex=2
INF Connection established connIndex=3

2-7. Windows 서비스 등록 (PC 재부팅 시 자동 시작)

cloudflared service install

이제 PC가 켜질 때마다 터널이 자동으로 실행됩니다.

Part 3: 연결 테스트

3-1. 기본 연결 확인

다른 기기(핸드폰, 다른 PC)에서 브라우저로:

https://ollama.nalkkul.com

“Ollama is running” 메시지가 나오면 터널 연결 성공!

3-2. 모델 목록 확인

curl https://ollama.nalkkul.com/api/tags

설치된 모델 목록이 JSON으로 반환됩니다.

3-3. AI 대화 테스트

curl -X POST https://ollama.nalkkul.com/api/chat \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen2.5:14b",
    "messages": [{"role": "user", "content": "안녕하세요! 한국어로 자기소개 해주세요."}],
    "stream": false
  }'

한국어로 AI 응답이 오면 모든 설정이 완료된 것입니다! 🎉

Part 4: 실전 활용 예시

활용 1: 웹사이트 AI 챗봇

내 웹사이트에 AI 챗봇을 추가할 수 있습니다. 서버에서 Ollama API를 호출하면 됩니다:

// PHP 예시
$response = wp_remote_post('https://ollama.nalkkul.com/api/chat', [
    'timeout' => 60,
    'headers' => ['Content-Type' => 'application/json'],
    'body' => json_encode([
        'model' => 'qwen2.5:14b',
        'messages' => [
            ['role' => 'system', 'content' => '당신은 친절한 고객지원 AI입니다.'],
            ['role' => 'user', 'content' => $user_message],
        ],
        'stream' => false,
    ]),
]);

$body = json_decode(wp_remote_retrieve_body($response), true);
$ai_reply = $body['message']['content'] ?? '응답을 생성하지 못했습니다.';

활용 2: Python에서 사용

import requests

response = requests.post('https://ollama.nalkkul.com/api/chat', json={
    'model': 'qwen2.5:14b',
    'messages': [
        {'role': 'user', 'content': '파이썬으로 피보나치 함수를 작성해줘'}
    ],
    'stream': False
})

print(response.json()['message']['content'])

활용 3: JavaScript에서 사용

const response = await fetch('https://ollama.nalkkul.com/api/chat', {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({
        model: 'qwen2.5:14b',
        messages: [{role: 'user', content: '오늘 날씨가 좋은데 어디 놀러가면 좋을까?'}],
        stream: false
    })
});

const data = await response.json();
console.log(data.message.content);

활용 4: 여러 모델 사용

Ollama는 여러 모델을 동시에 설치할 수 있습니다:

:: 여러 모델 다운로드
ollama pull qwen2.5:14b     :: 한국어 대화용
ollama pull codellama:13b   :: 코딩용
ollama pull llava:13b       :: 이미지 분석용

API 호출 시 model 파라미터만 바꾸면 다른 모델을 사용할 수 있습니다.

보안 강화: API 접근 제한

Ollama API가 누구나 사용할 수 있으면 내 PC 리소스가 남용될 수 있습니다. Cloudflare Access로 접근을 제한하세요.

방법 1: Cloudflare Access (추천)

  1. Cloudflare Zero Trust 접속
  2. Access → Applications → Add an application
  3. Self-hosted 선택
  4. Application domain: ollama.nalkkul.com
  5. Policy 설정:
    • 특정 이메일만 허용
    • 특정 IP만 허용
    • 서비스 토큰 인증

방법 2: 서비스 토큰으로 API 인증

Cloudflare Access에서 서비스 토큰을 생성하면, API 호출 시 헤더에 토큰을 포함해야만 접근할 수 있습니다:

curl -X POST https://ollama.nalkkul.com/api/chat \
  -H "CF-Access-Client-Id: YOUR_CLIENT_ID" \
  -H "CF-Access-Client-Secret: YOUR_CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen2.5:14b","messages":[{"role":"user","content":"안녕"}],"stream":false}'

성능 최적화 팁

설명
GPU 사용NVIDIA GPU가 있다면 CUDA를 설치하면 10배 이상 빨라집니다
모델 크기RAM이 부족하면 작은 모델(7b)을 사용하세요
keep_aliveAPI에 "keep_alive": "10m"을 추가하면 모델이 메모리에 유지되어 다음 응답이 빨라집니다
num_ctx컨텍스트 길이를 줄이면 (2048) 메모리 사용량이 줄어듭니다
PC 절전 끄기절전 모드에 들어가면 터널이 끊어집니다. 전원 설정에서 절전 모드를 “사용 안 함”으로

문제 해결

Q. “Ollama is running”이 안 나와요

  • Ollama가 실행 중인지 확인: 작업 관리자에서 ollama.exe 확인
  • 시스템 트레이(우측 하단)에 Ollama 아이콘이 있는지 확인
  • OLLAMA_HOST=0.0.0.0 환경변수가 설정되었는지 확인
  • 환경변수 설정 후 PC를 재시작했는지 확인

Q. 터널은 연결되는데 AI 응답이 안 와요

  • 모델이 다운로드되었는지 확인: ollama list
  • 로컬에서 먼저 테스트: ollama run qwen2.5:14b "테스트"
  • config.yml의 connectTimeout을 60s 이상으로 설정

Q. 응답이 너무 느려요

  • 더 작은 모델 사용: qwen2.5:7b (14b 대비 2배 빠름)
  • 다른 프로그램 종료 (특히 브라우저 탭 많이 열린 경우)
  • NVIDIA GPU가 있다면 CUDA 드라이버 설치 확인

Q. PC가 재부팅되면 터널이 안 켜져요

  • cloudflared service install 실행했는지 확인
  • services.msc에서 “Cloudflared agent” 서비스가 “실행 중”인지 확인

비용 비교: Ollama vs 클라우드 AI API

항목Ollama (이 방법)Claude APIOpenAI API
월 비용0원 (전기세만)사용량 종량제사용량 종량제
대화 1건0원약 $0.01~0.05약 $0.01~0.03
하루 100건0원약 $1~5약 $1~3
한국어 품질좋음 (qwen2.5)매우 좋음매우 좋음
응답 속도3~15초1~3초1~3초
개인정보내 PC에서만 처리외부 서버 전송외부 서버 전송
인터넷 필요터널만 필요필수필수

Ollama의 최대 장점: 비용 0원 + 개인정보가 내 PC를 벗어나지 않음!

자주 묻는 질문 (FAQ)

Q. 어떤 PC 사양이 필요한가요?

최소 RAM 8GB (7b 모델), 권장 RAM 16~32GB (14b 모델). CPU는 최신 4코어 이상이면 충분합니다. NVIDIA GPU가 있으면 훨씬 빠릅니다.

Q. 여러 사람이 동시에 사용할 수 있나요?

가능하지만, 동시 요청이 많으면 느려집니다. 일반적인 소규모 사이트(동시 2~3명)는 문제 없습니다.

Q. 전기세가 많이 나오나요?

AI 요청이 없을 때는 거의 전력을 소모하지 않습니다. 요청 시에만 CPU/GPU를 사용합니다. 일반 PC 유지 비용 수준입니다.

Q. ChatGPT만큼 똑똑한가요?

14b 모델 기준으로 GPT-3.5 수준입니다. GPT-4나 Claude 수준은 아니지만, 일반적인 고객 응대, 정보 제공에는 충분합니다.

마무리

Ollama + Cloudflare Tunnel 조합으로 비용 0원의 나만의 AI 서버를 만들 수 있습니다. 특히 AI 챗봇, 콘텐츠 생성, 번역, 코딩 도우미 등 다양한 용도로 활용할 수 있습니다. 클라우드 AI API의 비용이 부담된다면, 이 방법을 강력히 추천합니다!

이 글이 도움이 되셨다면 공유해주세요!

댓글 남기기

무엇이든 물어보세요! 💬