Cloudflare 무료 티어에서 자체 호스팅 AI 에이전트 구축하기: 제로부터 프로덕션까지
요약
본 가이드는 Cloudflare Workers와 Ollama를 활용하여 저렴한 비용으로 프로덕션급 AI 에이전트를 구축하는 방법을 안내합니다. $5 VPS에서 구동되는 오픈 소스 모델을 Cloudflare Tunnel로 안전하게 노출하고, 엣지(edge) 환경의 Worker에 에이전트 로직을 구현함으로써 높은 접근성과 낮은 운영 비용을 달성할 수 있습니다.
핵심 포인트
- Cloudflare Workers 무료 티어로 AI 에이전트를 배포 가능
- $5 VPS와 Ollama 조합으로 저비용 추론 API 구축
- Cloudflare Tunnel로 안전하게 내부 서비스 노출 및 연결
- 엣지(edge) 환경에서 사용자 의도 분류 등 에이전트 로직 구현
2024년 4분기 LinkedIn 채용 공고에 따르면, AI 에이전트 엔지니어 역할은 전년 대비 340% 증가했지만, 대부분의 경우 비싼 클라우드 인프라에 배포해야 합니다. Cloudflare Workers는 일일 10만 건 요청을 제공하는 무료 티어를 제공하며, 이는 공급업체 종속성이나 월별 비용 없이 기능적인 AI 에이전트를 실행하기에 충분합니다. 이 가이드에서는 Ollama를 통해 오픈 소스 모델을 사용하고 추론 비용을 천 토큰당 $0.01 미만으로 처리하면서, Cloudflare의 무료 인프라에서 완전히 실행되는 프로덕션 준비가 된 에이전트를 구축하는 과정을 안내합니다.
월 $5 서버에 Ollama 배포 및 Cloudflare를 통해 연결하기
Ollama는 양자화된 LLM을 로컬에서 실행합니다. 4GB RAM을 갖춘 소형 VPS(Linode, Hetzner 또는 DigitalOcean에서 월 $5~$6)를 시작하고 Ollama를 설치합니다:
curl https://ollama.ai/install.sh | sh
ollama pull mistral:7b-instruct-q4_K_M
Mistral 7B는 Q4로 양자화되어 약 4GB VRAM을 사용하며, 초당 약 10 토큰으로 요청을 처리합니다. 모델은 한 번만 다운로드하면 이후 호출에서는 디스크에서 재사용됩니다. 포트 포워딩을 피하기 위해 Cloudflare Tunnel을 통해 Ollama를 노출합니다:
wget https://github.com/cloudflare/cloudflared/releases/download/2024.1.0/cloudflared-linux-amd64.deb
dpkg -i cloudflared-linux-amd64.deb
cloudflared tunnel login
...
그런 다음 ~/.cloudflared/config.yml을 생성합니다:
tunnel: ollama-prod
ingress:
- hostname: ollama.yourname.workers.dev
...
cloudflared tunnel run ollama-prod을 실행하면 SSH를 노출하거나 방화벽 포트를 열지 않고도 어디서든 Ollama 인스턴스에 접근할 수 있습니다. 따라서 터널은 Cloudflare의 플랜에서 종단 간 암호화되며 무료입니다. 핵심 요약: $5 VPS와 무료 Cloudflare Tunnel을 사용하면 월 $30~$50 상당의 관리형 추론 API를 대체할 수 있습니다. curl https://ollama.yourname.workers.dev/api/generate -d '{"model": "mistral:7b-instruct-q4_K_M", "prompt": "test"}'로 연결성을 테스트합니다.
작업을 라우팅하는 에이전트 워커 구축하기
Cloudflare Workers는 엣지(edge)에서 서브 50ms의 지연 시간으로 JavaScript를 실행합니다. 새 Worker 프로젝트를 만듭니다:
npm create cloudflare@latest my-ai-agent -- --type javascript
cd my-ai-agent
src/index.js를 사용자가 의도를 분류하고 Ollama에 호출하는 에이전트로 교체하세요:
export default {
async fetch(request, env) {
if (request.method !== 'POST') {
...
wrangler.toml에서 Ollama 엔드포인트를 설정하세요:
[env.production]
vars = { OLLAMA_ENDPOINT = "https://ollama.yourname.workers.dev" }
npm run deploy로 배포합니다. 요청당 비용은 Cloudflare compute에서 약 0.1센트가 발생하며, 무료 티어는 일일 10만 건의 요청을 지원합니다. 핵심 요약: 에이전트 로직을 엣지(edge)에 구축하여 30~50ms 만에 실행되도록 하세요. 워커(worker)는 상태 비저장형 라우터(stateless router) 역할을 하며, 비용이 많이 드는 추론(inference)은 사용자의 Ollama 서버에서 이루어집니다. curl -X POST https://my-ai-agent.workers.dev -H 'Content-Type: application/json' -d '{"message": "2+2는 무엇인가?"}'로 테스트하세요.
Durable Objects를 사용하여 메모리 추가하기
Cloudflare Durable Objects는 글로벌 지점(global points of presence)에서 영구적인 상태(persistent state)를 제공합니다. 이를 사용하여 대화 기록을 추적할 수 있습니다:
export class AgentMemory {
constructor(state) {
this.state = state;
...
워커에 바인딩하세요:
export default {
async fetch(request, env) {
const url = new URL(request.url);
...
Durable Objects 무료 티어는 월 3백만 건의 요청을 지원하므로, 외부 데이터베이스 없이 대화 상태를 유지할 수 있습니다. 핵심 요약: Durable Objects는 에이전트 메모리에서 Redis를 대체합니다. 각 사용자에게 격리된 상태가 제공되며, 읽기 및 쓰기는 원자적(atomic)입니다. 요청 간에 콜드 스타트(cold starts)가 없습니다.
프로덕션 환경에서 비용 및 성능 모니터링
Cloudflare Analytics를 사용하여 요청 볼륨을 추적하세요. 추론 지연 시간(inference latency)이 5초를 초과하면 경고하는 간단한 대시보드 스크립트를 만드세요:
watch -n 60 'curl -s https://api.cloudflare.com/client/v4/graphql -H
2개의 병렬 요청과 Mistral 7B를 사용하면 분당 약 50~100개의 요청을 처리할 수 있습니다. Cloudflare Cache에 일반적인 쿼리를 캐싱하여 백엔드 호출을 60~70% 줄이세요. **핵심 요약:** 매주 지연 시간을 모니터링하세요. Ollama가 병목 현상을 일으키면 월 $12 인스턴스로 확장하세요. 대부분의 에이전트는 총액 $15/월 미만(VPS + 스토리지)에서 수익을 창출하며, 관리형 대안보다 99% 저렴합니다. ## 오늘 간단한 HTTP 엔드포인트로 시작하기
오늘 Ollama 인스턴스를 호출하는 Worker를 배포하세요:
1. Cloudflare 계정을 생성합니다 (무료). 2. $5 VPS에 SSH로 접속하여 `curl https://ollama.ai/install.sh | sh && ollama pull mistral:7b-instruct-q4_K_M`을 실행합니다. 3. Cloudflare Tunnel을 통해 노출합니다: `cloudflared tunnel create my-agent && cloudflared tunnel route dns my-agent api.myname.workers.dev`. 4. `https://api.myname.workers.dev/api/generate`로 POST하는 Worker를 생성합니다. 5. 배포하고 실제 메시지로 테스트하세요. 초기 비용 $0/월로 30분 이내에 작동하는 AI 에이전트를 운영할 수 있습니다. 다중 턴 대화가 필요할 때 Durable Objects를 추가하여 메모리를 확보하세요. 분당 500개 이상의 요청을 초과할 때만 두 번째 VPS로 확장하세요.
_본 기사는 AI의 도움을 받아 작성되었습니다._
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기