내가 AI 모델 셀프 호스팅을 중단한 이유 (그리고 여러분도 아마 그래야 할 이유)
요약
AI 모델을 직접 호스팅할 때 발생하는 막대한 비용과 기술적 어려움을 분석하며, 대부분의 개발자에게 API 사용이 훨씬 효율적임을 설명합니다. 하드웨어 제약, 소프트웨어 스택 관리의 복잡성, 그리고 API 대비 현저히 낮은 가성비를 근거로 제시합니다.
핵심 포인트
- 셀프 호스팅은 GPU 대여 및 하드웨어 비용이 API 사용보다 압도적으로 높음
- 추론 서버의 안정성 확보 및 디버깅에 과도한 리소스가 소모됨
- API 사용이 처리량(Throughput)과 신뢰성 측면에서 훨씬 유리함
- 개인정보 보호가 극도로 중요한 특수 사례가 아니라면 API가 경제적임
제 신용카드 고지서가 도착했던 날을 기억합니다. 3개월간의 GPU 대여, 소비자용 하드웨어에서 70B 모델을 실행하려던 두 번의 실패, 그리고 500달러 이상의 컴퓨팅 비용을 지불한 끝에, 제가 얻은 것은 다이얼업 모뎀보다 느리게 응답하는 단 하나의 작동하는 챗봇 엔드포인트뿐이었습니다. 그것이 저에게는 경종을 울리는 계기가 되었습니다.
제가 왜 AI 모델 셀프 호스팅 (Self-hosting)을 포기했는지, 그리고 이 글을 읽고 있는 대부분의 개발자들이 왜 진지하게 같은 결정을 고려해야 하는지 말씀드리겠습니다.
자신만의 LLM을 실행한다는 낭만
셀프 호스팅에는 깊은 매력이 있습니다. 이는 마치 자신만의 메일 서버를 운영하거나 커널 (Kernel)을 처음부터 직접 컴파일하고 싶게 만드는 것과 같은 느낌입니다. 제어권. 개인정보 보호. 속도 제한 없음. 벤더 종속 (Vendor lock-in) 없음. 저는 그 비전에 완전히 매료되었습니다.
저는 겸손한 목표로 시작했습니다. 텍스트 요약이 필요한 사이드 프로젝트를 위해 7B 파라미터 모델을 로컬에서 실행하는 것이었습니다. "겨우 몇 백 달러면 되겠지,"라고 스스로에게 말했습니다. "오래된 게이밍 GPU를 사용하면 돼." 하지만 그 구렁텅이는 제가 예상했던 것보다 훨씬 깊었습니다.
첫째는 하드웨어였습니다. 10GB VRAM을 가진 저의 RTX 3080은 적절한 컨텍스트 길이 (Context length)를 가진 양자화된 (Quantized) 7B 모델을 담을 수 없었습니다. 그래서 A100이 탑재된 클라우드 인스턴스를 대여했습니다. 시간당 2.50달러였습니다. 24시간 내내 가동한다면 하루에 60달러입니다. 저는 "나중에 최적화하면 돼"라고 생각했습니다.
그다음은 소프트웨어 스택 (Software stack)이었습니다. vLLM, TGI, 또는 Ollama를 설정하는 것 자체가 어렵지는 않지만, 프로덕션급 신뢰성을 확보하는 것은 전혀 다른 차원의 문제입니다. 메모리 누수 (Memory leaks), OOM (Out of Memory) 에러, 커널 충돌. 저는 실제 애플리케이션을 구축하는 시간보다 추론 서버 (Inference server)를 디버깅하는 데 더 많은 시간을 보냈습니다.
3개월이 지났을 때, 저는 GPU 대여에 500달러, 테스트를 위한 다양한 API 호출에 50달러, 그리고 설정에 수많은 시간을 소비했습니다. 결과는 어땠을까요? 운이 좋은 날에도 초당 5개의 요청을 처리하며 3초의 지연 시간 (Latency)을 갖는 엔드포인트였습니다. 그리고 저의 요약 품질은요? 기껏해야 평범한 수준이었습니다.
제 마음을 돌린 계산법
저를 마침내 설득했던 수치들을 보여드리겠습니다.
7B 모델 셀프 호스팅 (4-bit 양자화):
- GPU 대여: 시간당 약 $1.50 (A10G 또는 유사 모델)
- 24/7 운영: 월 $1,080
- 처리량 (Throughput): 초당 약 10 토큰
- 신뢰성 (Reliability): 99% 가동 시간 (운이 좋다면)
API 사용 시 (예: GPT-3.5-turbo):
- 비용: 입력 토큰 1K당 $0.0015, 출력 토큰 1K당 $0.002
- 나의 사용량: 월 약 500K 토큰 (입력 및 출력 합계)
- 총액: 월 약 $2.00
- 처리량 (Throughput): 초당 100+ 토큰
- 신뢰성 (Reliability): 99.99%+ 가동 시간
이 차이는 단순히 자릿수 차이가 아니라, 두 자릿수 차이입니다. 저의 사용 사례에서 API는 500배 더 저렴했습니다.
"하지만 개인정보 보호(Privacy)는 어떻게 하나요?"라고 물으실 수 있습니다. 타당한 지적입니다. 민감한 데이터의 경우 셀프 호스팅 (Self-hosting)이 합리적입니다. 하지만 고객 지원 챗봇, 콘텐츠 생성, 코드 어시스턴트와 같은 프로젝트의 90%는 데이터가 그 정도로 민감하지 않습니다. 또한 대부분의 평판 좋은 API 제공업체들은 SOC 2 준수 및 데이터 처리 계약 (Data Processing Agreements)을 갖추고 있습니다.
아무도 말하지 않는 숨겨진 비용
명백한 GPU 비용 외에도, 셀프 호스팅에는 숨겨진 비용이 있습니다:
엔지니어링 시간. 배치 크기 (Batch sizes)와 KV 캐시 (kv-cache) 설정을 조정하며 보낸 모든 시간은 제 제품에 쏟지 못한 시간이었습니다. 시니어 개발자의 시간은 시간당 $100 이상의 가치가 있습니다. 저는 아마도 $2,000 정도의 기회비용을 허비했을 것입니다.
모델 선택 마비 (Model selection paralysis). 수백 개의 오픈 모델이 있습니다. Llama 3, Mistral, Qwen, Yi, Phi... 각각 강점이 다릅니다. 저는 다음 모델이 "충분히 괜찮기를" 바라며 계속해서 모델을 바꿨습니다. 하지만 복잡한 추론 (Reasoning) 작업에서 GPT-4나 Claude를 따라올 모델은 없었습니다.
유지보수 오버헤드 (Maintenance overhead). 모델 업데이트, 보안 패치, 모니터링, 알림 설정. 이것은 풀타임 업무나 다름없습니다. 한 번은 휴가 중이라 vLLM의 중요한 보안 업데이트를 놓친 적도 있습니다. 아무도 지켜보고 있지 않았습니다.
확장(Scaling)의 고통. 제 앱이 Hacker News에 언급되었을 때, 트래픽이 10배로 급증했습니다. 제가 셀프 호스팅하던 서버는 다운되었습니다. API를 사용한다면 오토스케일링 (Autoscaling)은 다른 사람의 문제입니다.
실제 코드 예시: 전환의 간편함
다음은 제가 Ollama로 셀프 호스팅을 할 때의 코드 모습입니다:
import requests
import json
...
나쁘지는 않았지만, 저는 Ollama 서버를 관리하고, 서버가 실행 중인지 확인하며, 장애를 처리하고, 5초에 달하는 응답 시간을 감수해야 했습니다.
API로 전환한 후, 제 코드는 다음과 같이 변했습니다:
from openai import OpenAI
client = OpenAI(api_key="sk-...") # From tai.shadie-oneapi.com
...
더 짧고, 더 신뢰할 수 있으며, 문자열 하나만 바꾸면 모델을 교체할 수 있었습니다. 서버 관리도, OOM (Out of Memory) 오류도, 충돌한 데몬 (daemon)을 고치기 위해 새벽 3시에 깨어날 일도 없었습니다.
셀프 호스팅이 여전히 유효한 경우
셀프 호스팅이 항상 틀렸다는 말은 아닙니다. 다음과 같은 정당한 사례들이 있습니다:
- 개인정보 보호가 매우 중요한 애플리케이션 (의료, 법률, 국방)
- 오프라인 환경 (인터넷 접속 불가)
- 독점 데이터에 대한 커스텀 미세 조정 (Custom fine-tuning)
- 저수준 제어 (low-level control)가 필요한 실험적 연구
- 대량의 예측 가능한 워크로드 (초당 수천 개의 요청)
하지만 SaaS 제품, 내부 도구, 또는 사이드 프로젝트를 만드는 대부분의 개발자에게는 어떨까요? API 방식이 압도적으로 유리합니다.
변곡점
저에게 있어 진정한 전환점은 제가 실행하던 오픈 소스 (open-source) 모델들은 점점 좋아지고 있지만, 상용 API와의 격차는 충분히 빠르게 좁혀지지 않고 있다는 사실을 깨달았을 때였습니다. GPT-4o-mini는 단돈 몇 푼의 비용으로 추론 (reasoning) 작업에서 대부분의 7B-13B 오픈 모델보다 뛰어난 성능을 보여줍니다. Claude Haiku 역시 비슷하게 저렴하고 빠릅니다.
또한 API 생태계는 셀프 호스팅이 쉽게 따라올 수 없는 것들을 제공합니다: 멀티모달 (multimodal) 지원 (이미지, 오디오), 함수 호출 (function calling), 구조화된 출력 (structured outputs), 적절한 백프레셔 (backpressure)를 갖춘 스트리밍 (streaming), 그리고 글로벌 엣지 배포 (global edge deployment) 등입니다.
현재 제가 사용하는 방식
저는 여전히 한 가지 용도로 셀프 호스팅을 합니다. 바로 개인 문서에 대한 로컬 RAG (Retrieval-Augmented Generation)를 위한 작은 임베딩 (embedding) 모델입니다. 이것은 Raspberry Pi에서 Ollama로 실행되며, 지연 시간 (latency)이 중요하지 않기 때문에 괜찮습니다.
그 외의 모든 것 — 고객 대응 챗봇 (customer-facing chatbots), 콘텐츠 생성 (content generation), 코드 리뷰 어시스턴트 (code review assistants) — 에 대해서는 저는 API를 사용합니다. 구체적으로, 저는 단일 API 키와 결제로 여러 제공업체에 접근할 수 있는 통합 게이트웨이 (unified gateway)를 통해 라우팅합니다. 이렇게 하면 특정 벤더 종속 (vendor lock-in) 없이 각 작업에 가장 적합한 모델을 선택할 수 있습니다.
궁금하시다면, 제가 정착한 서비스는 tai.shadie-oneapi.com입니다. 이것은 GPT-4, Claude, Gemini, 그리고 Llama 3와 같은 오픈 모델 (open models)을 하나의 엔드포인트 (endpoint)를 통해 사용할 수 있게 해주는 간단한 API 애그리게이터 (API aggregator)입니다. 저는 토큰 (token) 단위로 비용을 지불하며, 선불 비용이 없고, 인프라를 변경하지 않고도 코드 내에서 모델을 전환할 수 있습니다. 광고가 아닙니다. 단지 수개월간의 시행착오 끝에 저에게 효과적이었던 방식일 뿐입니다.
결론 (The bottom line)
AI 모델을 셀프 호스팅 (self-hosting) 하는 것은 훌륭한 학습 경험입니다. 저도 그렇게 하길 잘했다고 생각합니다. API만 사용했다면 결코 알 수 없었을 양자화 (quantization), 추론 최적화 (inference optimization), 그리고 오픈 모델의 실질적인 한계점들을 이해하게 되었습니다.
하지만 개발 프로젝트의 99%에 대한 프로덕션 전략 (production strategy)으로서의 셀프 호스팅은? 그것은 함정입니다. 비용 — 금전적 비용과 엔지니어링 시간 모두 — 측면에서 거의 그만한 가치가 없습니다. API 생태계는 훨씬 적은 비용으로 더 나은 성능, 신뢰성, 그리고 기능을 얻을 수 있는 수준까지 성숙했습니다.
커스텀 모델 (custom models)을 학습시키거나 대규모 규모로 추론 (inference)을 실행하는 데 GPU 예산을 아껴두세요. 그 외의 모든 것에는 그냥 API를 사용하세요. 미래의 당신과 당신의 지갑이 고마워할 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기