나는 $5/월에 프로덕션 RAG 시스템을 구축했다 (대부분의 대안은 $100-200+ 비용)
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가 수행:
- 임베딩 생성 – Workers AI (
bge-small-en-v1.5) - 벡터 검색 – Cloudflare Vectorize (HNSW 인덱싱)
- 결과 포맷팅 – 워커 내부
- 인증 – 내장
모든 코드는 전 세계 300개 이상의 도시에 있는 Cloudflare 엣지에서 실행됩니다.
기술 스택
| 항목 | 세부 정보 |
|---|---|
| 임베딩 모델 | @cf/baai/bge-small-en-v1.5 (384‑dim) |
| 벡터 DB | Cloudflare 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 s | 365 ms (6‑10배 빠름) |
| 성공률 | 94 % | ≈100 % (결정적) |
| 필요 도구 수 | 12 | 2 (최소) |
| 작업당 호출 수 | 1.8 | 1 (한 번에) |
엣지 배포와 적절한 추상화가 차이를 만든다.
작업 분담 (LLM vs 백엔드)
| 책임 | LLM (비결정적) | 백엔드 (결정적) |
|---|---|---|
| 사용자 의도 이해 | ✅ | |
semantic_search와 intelligent_search 선택 | ✅ | |
| 결과를 사용자에게 해석 | ✅ | |
| 임베딩 생성 | ✅ | |
| 벡터를 원자적으로 조회 | ✅ | |
| 오류를 우아하게 처리 | ✅ | |
| 일관된 성능 보장 | ✅ | |
| 인증 관리 | ✅ |
LLM은 의도를 처리하고, 백엔드는 실행을 담당합니다.
실제 성능 (포트 하코트, 나이지리아 – 2024년 12월 23일)
| 작업 | 시간 |
|---|---|
| 임베딩 생성 | 142 ms |
| 벡터 검색 | 223 ms |
| 응답 포맷팅 | 전체에 포함 |
| 총 응답 | ≈365 ms |
| 월 비용 | ~$5‑10 / 월 전통적인 $130‑190 / 월에 비해 |
요약
전체 RAG 파이프라인을 Cloudflare의 엣지로 이동하고, 원시 API 대신 고수준, 조합 가능한 스킬을 노출함으로써 우리는 다음을 달성합니다:
- 엄청난 비용 절감 (≈ 95 % 저렴)
- 서브초 지연 (≈ 365 ms)
- 결정론적, 단일 호출 워크플로
- 엔터프라이즈 급 MCP 설계
LLM이 의도에 집중하도록 하고, 엣지 백엔드가 실행을 담당하게 하세요.
월간 비용 개요
| 솔루션 | 월간 비용 | 비고 |
|---|---|---|
| 이 워커 | $8‑10 | Cloudflare의 공개 요금 |
| 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 /월 |
주요 요점
- Edge‑first 아키텍처는 혁신적이다 – 모든 것을 엣지에 배치하면 네트워크 홉이 사라지고, 성능 향상이 즉각적이며 측정 가능하다.
- Composable 툴 설계가 API 래퍼보다 우수하다 – 원시 API 대신 고수준 스킬을 노출하면 시스템이 더 빠르고 신뢰성이 높아진다; LLM은 오케스트레이션이 아니라 의도에 집중한다.
- 서버리스 가격 모델이 모든 것을 바꾼다 – 유휴 서버 비용이 없으므로 자유롭게 실험할 수 있다. 금요일에 출시하고 사용량이 급증해도 문제없다. 자동으로 확장된다.
- 단순 HTTP가 화려한 SDK보다 낫다 – 버전 충돌도 없고, 의존성 지옥도 없다.
curl이나fetch만 있으면 된다. Python, Node, Go 등 어디서든 동작한다.
Source:
현재 제한 사항 및 트레이드‑오프
-
로컬 개발이 불편함 –
Vectorize는wrangler dev에서 작동하지 않으며, 검색을 테스트하려면 배포해야 합니다.
트레이드‑오프: 다른 모든 부분은 빠르게 반복 가능하지만, 전체 테스트를 위해서는 배포가 필요합니다. -
지식 베이스 업데이트에 재배포 필요 – 현재 코드를 수정하고 재배포해야 합니다.
미래: 동적 업로드 API.
트레이드‑오프: 보안 vs. 편의성. -
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
참여하기
- 질문 / 의견? 아래에 남겨 주세요.
- 유용했나요? ⭐️ 저장소에 별표를 달아 주세요: https://github.com/dannwaneri/vectorize-mcp-worker
관련 읽을거리
- MCP 샘플링 on Cloudflare Workers – LLM을 관리하지 않고 지능형 MCP 도구를 만드는 방법
- 왜 엣지 컴퓨팅이 나에게 더 나은 코드를 쓰게 만들었는가 – 이 아키텍처 뒤에 있는 경제적 강제 요인
영감 출처: 기본 MCP를 넘어: 왜 엔터프라이즈 AI는 조합 가능한 아키텍처가 필요하고 엔터프라이즈 MCP를 위한 조합 가능한 도구를 설계해야 하는가