나는 $5/월에 프로덕션 RAG 시스템을 구축했다 (대부분의 대안은 $100-200+ 비용)

발행: (2025년 12월 24일 오후 10:55 GMT+9)
15 min read
원문: Dev.to

Source: Dev.to

TL;DR

저는 Cloudflare 엣지에 semantic‑search system을 배포했으며, 일반적인 $100‑200 + 대신 $5‑10 / month에 운영됩니다. 더 빠르고, 엔터프라이즈 MCP composable‑architecture 패턴을 따르며, 프로덕션 트래픽을 처리합니다. 방법은 다음과 같습니다.

문제: 전통적인 RAG 비용

구성 요소일반 비용 (≈10 k 검색 / 월)
Pinecone vector DB (Standard plan)$50‑70
OpenAI embeddings API (usage‑based)$30‑50
AWS EC2 (t3.medium)$35‑50
Monitoring / logging$15‑20
총합$130‑190 / month

부트스트랩된 스타트업에게는, 기능이 수익을 창출하기도 전에 $1,560‑2,280 / year이라는 비용이 듭니다.

아키텍처 재고

전통적인 흐름

User → App Server → OpenAI (embeddings) → Pinecone (search) → User

다중 홉 → 높은 지연 시간 및 비용.

엣지‑전용 흐름

User → Cloudflare Edge (embeddings + search + response) → User

모든 작업이 한 곳에서 이루어짐 – 왕복 요청 없이, 유휴 서버 없음.

내가 만든 것

Vectorize MCP Worker – 단일 Cloudflare Worker가 수행:

  1. 임베딩 생성 – Workers AI (bge-small-en-v1.5)
  2. 벡터 검색 – Cloudflare Vectorize (HNSW 인덱싱)
  3. 결과 포맷팅 – 워커 내부
  4. 인증 – 내장

모든 코드는 전 세계 300개 이상의 도시에 있는 Cloudflare 엣지에서 실행됩니다.

기술 스택

항목세부 정보
임베딩 모델@cf/baai/bge-small-en-v1.5 (384‑dim)
벡터 DBCloudflare Vectorize (관리형, HNSW)
언어TypeScript (완전한 타입 안전성)
API간단한 HTTP 엔드포인트, 어디서든 사용 가능

검색 엔드포인트 (TypeScript)

async function searchIndex(query: string, topK: number, env: Env) {
  const startTime = Date.now();

  // 1️⃣ Generate embedding (on‑edge)
  const embeddingStart = Date.now();
  const embedding = await env.AI.run("@cf/baai/bge-small-en-v1.5", {
    text: query,
  });
  const embeddingTime = Date.now() - embeddingStart;

  // 2️⃣ Search vectors (on‑edge)
  const searchStart = Date.now();
  const results = await env.VECTORIZE.query(embedding, {
    topK,
    returnMetadata: true,
  });
  const searchTime = Date.now() - searchStart;

  // 3️⃣ Return payload
  return {
    query,
    results: results.matches,
    performance: {
      embeddingTime: `${embeddingTime}ms`,
      searchTime: `${searchTime}ms`,
      totalTime: `${Date.now() - startTime}ms`,
    },
  };
}

오케스트레이션 레이어도, 서비스 메시도 없습니다 – Workers AI + Vectorize만 있으면 됩니다.

왜 이것이 MCP(머신‑센트릭 프로그래밍)에 중요한가

최근 기업 MCP 논의(예: Workato 시리즈)에서는 대부분의 구현이 원시 API를 노출하고 조합 가능한 스킬을 제공하지 않아 실패한다는 점이 드러났습니다.

전형적인 “툴‑중심” 접근

get_guest_by_email
get_booking_by_guest
create_payment_intent
charge_payment_method
send_receipt_email
... 총 47개의 툴

LLM이 작업당 6개 이상의 호출을 조정해야 하므로 UX가 느리고 오류가 발생하기 쉽다.

우리의 “스킬‑우선” 접근

도구목적
semantic_search관련 정보 찾기
intelligent_search검색 + AI 합성

한 번의 툴 호출만으로 완전한 결과를 얻는다. 백엔드가 모든 복잡성을 숨긴다.

Enterprise MCP 패턴과의 정렬

#패턴작업자가 이를 만족시키는 방법
1시스템 ID보다 비즈니스 식별자사용자는 자연어로 쿼리합니다 ({ "query": "How does edge computing work?" }).
2원자적 작업하나의 호출로 임베딩, 검색, 포맷팅을 수행하고 메트릭을 반환합니다.
3스마트 기본값topK가 생략되면 기본값은 5입니다.
4인증 내장프로덕션에서는 API 키가 필요하고, 개발 모드에서는 인증 없이 테스트할 수 있습니다.
5오류 문서화오류에는 실행 가능한 힌트가 포함됩니다(예: topK must be between 1 and 20).
6관측 가능한 성능각 응답에는 타이밍(embeddingTime, searchTime, totalTime)이 포함됩니다.
7자연어 정렬도구 이름이 사용자 표현과 일치합니다(semantic_search).
8방어적 구성\populate 엔드포인트는 멱등성(idempotent)이며, 반복 호출해도 안전합니다.
9버전 관리 계약안정적인 API 버전 관리를 통해 처리됩니다.

벤치마크

지표일반적인 엔터프라이즈 MCP (Workato)우리 엣지 워커
응답 시간2‑4 s365 ms (6‑10배 빠름)
성공률94 %≈100 % (결정적)
필요 도구 수122 (최소)
작업당 호출 수1.81 (한 번에)

엣지 배포와 적절한 추상화가 차이를 만든다.

작업 분담 (LLM vs 백엔드)

책임LLM (비결정적)백엔드 (결정적)
사용자 의도 이해
semantic_searchintelligent_search 선택
결과를 사용자에게 해석
임베딩 생성
벡터를 원자적으로 조회
오류를 우아하게 처리
일관된 성능 보장
인증 관리

LLM은 의도를 처리하고, 백엔드는 실행을 담당합니다.

실제 성능 (포트 하코트, 나이지리아 – 2024년 12월 23일)

작업시간
임베딩 생성142 ms
벡터 검색223 ms
응답 포맷팅전체에 포함
총 응답≈365 ms
월 비용~$5‑10 / 월 전통적인 $130‑190 / 월에 비해

요약

전체 RAG 파이프라인을 Cloudflare의 엣지로 이동하고, 원시 API 대신 고수준, 조합 가능한 스킬을 노출함으로써 우리는 다음을 달성합니다:

  • 엄청난 비용 절감 (≈ 95 % 저렴)
  • 서브초 지연 (≈ 365 ms)
  • 결정론적, 단일 호출 워크플로
  • 엔터프라이즈 급 MCP 설계

LLM이 의도에 집중하도록 하고, 엣지 백엔드가 실행을 담당하게 하세요.

월간 비용 개요

솔루션월간 비용비고
이 워커$8‑10Cloudflare의 공개 요금
Pinecone Standard$50‑70최소 $50 + 사용량
Weaviate Serverless$25‑40사용량 기반 요금
Self‑hosted + pgvector$40‑60서버 + 유지보수

가격은 2024년 12월 기준입니다. 실제 비용은 사용 패턴에 따라 달라질 수 있습니다.

전통적인 대안 (동일한 용량에 대한 추정)

  • Pinecone Standard: $50‑70 /월 (최소 요금 + 사용량)
  • Weaviate Cloud: $25‑40 /월 (스토리지에 따라 다름)
  • Self‑hosted pgvector: $40‑60 /월 (서버 + 유지보수)

절감액: 선택한 대안에 따라 85‑95 %​

Cloudflare 무료 티어 (대부분의 사이드 프로젝트 및 소규모 비즈니스 포함)

  • 100,000 Workers 요청 / 일
  • 10,000 AI 뉴런 / 일
  • 30 M Vectorize 쿼리 / 월

대부분의 사이드 프로젝트와 소규모 비즈니스는 무료 티어를 벗어나지 않습니다.

인증 (프로덕션에선 선택 사항)

// Optional API key for production
if (env.API_KEY && !isAuthorized(request)) {
  return new Response("Unauthorized", { status: 401 });
}

// Dev mode works without auth. Production requires it.

내장 성능 메트릭 (별도의 APM 필요 없음)

{
  "query": "edge computing",
  "results": [ /* … */ ],
  "performance": {
    "embeddingTime": "142ms",
    "searchTime": "223ms",
    "totalTime": "365ms"
  }
}

API 문서 (GET /)

{
  "name": "Vectorize MCP Worker",
  "endpoints": {
    "POST /search":   "Search the index",
    "POST /populate": "Add documents",
    "GET /stats":     "Index statistics"
  }
}

웹 앱에 사전 구성되어 있어 바로 작동합니다.

실제 사용 사례

시나리오이전이후비용
50인 스타트업 (Notion, Google Docs, Confluence에 문서)수동 검색; 직원들이 하루에 약 30 분을 낭비의미 검색이 몇 초 만에 올바른 문서를 찾음$5 /월 (vs. $70 for Algolia DocSearch)
500개 지원 문서를 가진 SaaS키워드 검색으로 관련 문서를 놓침AI 기반 검색이 완벽한 매치를 제안$10 /월 (vs. $200+ for enterprise solutions)
1,000개 PDF를 보유한 학계개별 파일을 Ctrl + F로 검색전체 라이브러리를 의미적으로 질의$8 /월

주요 요점

  1. Edge‑first 아키텍처는 혁신적이다 – 모든 것을 엣지에 배치하면 네트워크 홉이 사라지고, 성능 향상이 즉각적이며 측정 가능하다.
  2. Composable 툴 설계가 API 래퍼보다 우수하다 – 원시 API 대신 고수준 스킬을 노출하면 시스템이 더 빠르고 신뢰성이 높아진다; LLM은 오케스트레이션이 아니라 의도에 집중한다.
  3. 서버리스 가격 모델이 모든 것을 바꾼다 – 유휴 서버 비용이 없으므로 자유롭게 실험할 수 있다. 금요일에 출시하고 사용량이 급증해도 문제없다. 자동으로 확장된다.
  4. 단순 HTTP가 화려한 SDK보다 낫다 – 버전 충돌도 없고, 의존성 지옥도 없다. curl이나 fetch만 있으면 된다. Python, Node, Go 등 어디서든 동작한다.

Source:

현재 제한 사항 및 트레이드‑오프

  1. 로컬 개발이 불편함Vectorizewrangler dev에서 작동하지 않으며, 검색을 테스트하려면 배포해야 합니다.
    트레이드‑오프: 다른 모든 부분은 빠르게 반복 가능하지만, 전체 테스트를 위해서는 배포가 필요합니다.

  2. 지식 베이스 업데이트에 재배포 필요 – 현재 코드를 수정하고 재배포해야 합니다.
    미래: 동적 업로드 API.
    트레이드‑오프: 보안 vs. 편의성.

  3. 384 차원이 특수 도메인에 충분하지 않을 수 있음bge‑small‑en‑v1.5는 일반 텍스트에 적합하지만, 의료나 법률 분야와 같은 특수 도메인에서는 더 큰 모델이 필요할 수 있습니다.
    트레이드‑오프: 속도 vs. 정밀도.

방법론: 모든 비용은 10 000 검색/일 (≈300 K/월)384 차원10 000 저장된 벡터를 기준으로 추정되었습니다.

5분 빠른 설정

# 1️⃣ Clone the repo
git clone https://github.com/dannwaneri/vectorize-mcp-worker
cd vectorize-mcp-worker
npm install

# 2️⃣ Create a vector index
wrangler vectorize create mcp-knowledge-base --dimensions=384 --metric=cosine

# 3️⃣ Deploy
wrangler deploy

# 4️⃣ Set API key for production
openssl rand -base64 32 | wrangler secret put API_KEY

# 5️⃣ Populate with your data
curl -X POST https://your-worker.workers.dev/populate \
  -H "Authorization: Bearer YOUR_KEY"

# 6️⃣ Search
curl -X POST https://your-worker.workers.dev/search \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"your question","topK":3}'

실시간 데모: https://vectorize-mcp-worker.fpl-test.workers.dev

오픈 소스 저장소: https://github.com/dannwaneri/vectorize-mcp-worker

누가 사용해야 할까요?

  • 스타트업 창업자: AI 인프라에 과도하게 지출하는 것을 멈추세요. 월 $5 /월에 배포하고 차별화된 기능에 예산을 할당하세요.
  • 컨설턴트 / 에이전시: 고정‑가격 프로젝트에 AI 검색을 수익성 있게 포함하세요—지속적인 인프라 고민 없이.
  • 기업 팀: 연 $1 500+/년 이상의 예산 항목 없이 부서별 검색을 배포하세요.
  • MCP 서버 구축자: 엔터프라이즈 모범 사례를 따르는 컴포저블 툴 설계를 위한 레퍼런스 구현으로 사용하세요.

경제성이 맞습니다. 이전에 전용 예산 항목이 필요했던 것이 이제 팀의 일일 커피 예산보다 저렴합니다.

로드맵 (오픈 이슈)

  • Dynamic document upload API (no code changes needed) → 동적 문서 업로드 API (코드 변경 불필요)
  • Semantic chunking for long documents → 긴 문서를 위한 의미 기반 청크화
  • Multi‑modal support (images, tables) → 멀티모달 지원 (이미지, 표)
  • Comprehensive test suite → 포괄적인 테스트 스위트

저는 몇몇 회사가 이를 활용 사례에 배포하도록 돕고 있습니다. $100+/월 이상을 AI 검색에 사용하거나 MCP 서버를 구축하고 계시다면, 이야기해봅시다.

GitHub: @dannwaneri
Upwork: profile link
Twitter: @dannwaneri

참여하기

관련 읽을거리

  • MCP 샘플링 on Cloudflare Workers – LLM을 관리하지 않고 지능형 MCP 도구를 만드는 방법
  • 왜 엣지 컴퓨팅이 나에게 더 나은 코드를 쓰게 만들었는가 – 이 아키텍처 뒤에 있는 경제적 강제 요인

영감 출처: 기본 MCP를 넘어: 왜 엔터프라이즈 AI는 조합 가능한 아키텍처가 필요하고 엔터프라이즈 MCP를 위한 조합 가능한 도구를 설계해야 하는가

Back to Blog

관련 글

더 보기 »

왜 나는 스페인어를 배우고 있나요?

왜 나는 계속 스페인어를 배우고 있나요? 사람들은 자주 나에게 묻습니다: “왜 스페인어를 배우고 있나요?” 조금 이상하게도 나는 실제로 무엇을 ...

Arduino UNO Q MCU에서 Zephyr

개요 Arduino UNO Q는 STM32U585 MCU를 사용하여 모든 Arduino 기능을 처리합니다. 이 MCU는 메인 프로세서 및 보드의 GPIO 핀과 통신합니다. ...

사이드 프로젝트와 AI

Side Projects와 AI를 위한 커버 이미지 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s...