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 설치
- ollama.com/download 접속
- Windows 버전 다운로드 (OllamaSetup.exe)
- 설치 파일 실행 → 설치 완료
- 설치 확인: 명령 프롬프트(cmd)에서
ollama --version
1-2. AI 모델 다운로드
PC 사양에 맞는 모델을 선택하세요:
| 모델 | 크기 | 필요 RAM | 한국어 | 추천 대상 |
|---|---|---|---|---|
| qwen2.5:7b | 4.4GB | 8GB+ | 좋음 | RAM 16GB 이하 |
| qwen2.5:14b | 8.7GB | 16GB+ | 매우 좋음 | ⭐ RAM 32GB 추천 |
| gemma2:9b | 5.4GB | 16GB+ | 양호 | 구글 모델 선호 시 |
| llama3.1:8b | 4.7GB | 16GB+ | 보통 | Meta 모델 |
| mistral:7b | 4.1GB | 8GB+ | 보통 | 가벼운 모델 |
한국어 챗봇용이라면 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 환경변수 설정:
- Windows 키 + R →
sysdm.cpl입력 → 확인 - 고급 탭 → 환경 변수 클릭
- 시스템 변수에서 새로 만들기 클릭
- 변수 이름:
OLLAMA_HOST - 변수 값:
0.0.0.0 - 확인 → 확인 → 확인
- PC 재시작 (또는 Ollama 재시작)
확인 방법:
:: 브라우저에서 접속
http://localhost:11434
:: "Ollama is running" 메시지가 나오면 성공
Part 2: Cloudflare Tunnel 설정
2-1. cloudflared 설치
- Cloudflare Tunnel 다운로드 페이지 접속
- Windows 64-bit MSI 파일 다운로드 (
cloudflared-windows-amd64.msi) - MSI 파일 실행 → 설치 완료
- 확인:
cloudflared --version
⚠️ .exe 파일이 아닌 .msi 파일을 다운로드하세요. .exe는 더블클릭으로 실행되지 않고 cmd에서 사용해야 합니다.
2-2. Cloudflare 계정 연결
cmd를 관리자 권한으로 열고:
cloudflared tunnel login
- 브라우저가 자동으로 열림
- Cloudflare 계정 로그인
- 터널에 사용할 도메인 선택 (예: nalkkul.com)
- “Authorize” 클릭
- 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에서 메모한 터널 IDcredentials-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 (추천)
- Cloudflare Zero Trust 접속
- Access → Applications → Add an application
- Self-hosted 선택
- Application domain:
ollama.nalkkul.com - 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_alive | API에 "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 API | OpenAI 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의 비용이 부담된다면, 이 방법을 강력히 추천합니다!