MCP 배포: 호스팅의 실제 비용

대부분의 튜토리얼은 MCP 서버를 로컬에서 구축하는 방법을 보여줍니다. 엔드포인트와 인증에 대해서는 가르쳐 주지만, 서버를 24시간 내내 실행 상태로 유지하는 방법은 가르쳐 주지 않습니다.

저는 개인 지식 베이스를 위한 MCP 서버를 구축하는 데 3개월을 보냈습니다. 배포 단계에서 진짜 고통이 시작된다는 것을 뼈저리게 배웠습니다.

AI 어시스턴트를 모바일, 웹 또는 클라우드 클라이언트에서 사용하고 싶다면 localhost에 의존할 수 없습니다. 반드시 퍼블릭 호스트에 배포해야 합니다.

실제 운영 테스트를 바탕으로 정리한 호스팅 옵션은 다음과 같습니다:

  • Heroku 장점: 쉬운 배포와 자동 HTTPS 지원. 단점: 무료 티어는 30분 후 휴면 상태로 전환됩니다. 이로 인해 10~30초의 지연이 발생하며, 이 기간 동안 MCP 클라이언트가 타임아웃되어 실패하는 경우가 많습니다. 평가: 3/10. 테스트용으로는 좋지만, 일상적인 사용에는 부적합합니다.

  • Fly.io 장점: 빠른 배포와 글로벌 네트워크. 파일 저장을 위한 지속성 볼륨(persistent volumes)을 지원합니다. 단점: 무료 티어 앱은 일주일 동안 활동이 없으면 중지됩니다. 앱을 계속 깨워두려면 cron 작업이 필요합니다. 평가: 6/10. 대부분의 사용자에게 탄탄한 선택지입니다.

  • Serverless (예: Tencent Cloud SCF) 장점: 트래픽이 적을 때 매우 저렴합니다. 중국과 같은 특정 지역에 있다면 지연 시간이 매우 낮습니다. 단점: 콜드 스타트(Cold starts)로 인해 몇 초의 시간이 소요됩니다. 상태가 없는(stateless) 아키텍처로 설계해야 합니다. 평가: 7.5/10. 사용량이 적은 개인 사이드 프로젝트에 완벽합니다.

  • VPS (Virtual Private Server) 장점: 완전한 제어 권한과 서버 휴면 없음. 예측 가능한 월 비용. 단점: 보안, 업데이트, SSL을 직접 관리해야 합니다. 평가: 다중 사용자 또는 높은 트래픽에 가장 적합합니다.

디버깅 시간을 몇 시간이나 줄여줄 세 가지 교훈:

  • 타임아웃 설정: MCP 클라이언트는 인내심이 없습니다. 검색에 10초 이상 걸리면 클라이언트 연결이 끊깁니다. 서버 설정에 엄격한 연결 타임아웃을 설정하세요.

  • 헬스 체크(Health check) 추가: 클라우드 제공업체는 앱이 살아있는지 확인할 방법이 필요합니다. 간단한 /health 엔드포인트를 만드세요.

  • CORS 문제 해결: 인증 과정에서 CORS 프리플라이트(preflight) 요청이 깨지는 경우가 많습니다. 설정에서 인증 없이도 OPTIONS 요청을 허용하도록 하세요.

저의 워크플로우:

  1. 로컬에서 구축.
  2. ngrok을 사용하여 원격 클라이언트로 테스트.
  3. 안정화되면 Fly.io 또는 VPS에 배포.

배포는 화려하지 않지만 필수적입니다. AI 클라이언트가 연결할 수 없다면 완벽한 서버도 무용지물입니다.

여러분은 MCP 서버 호스팅을 위해 무엇을 사용하고 계신가요? 댓글로 알려주세요.

Source: https://dev.to/kevinten10/mcp-deployment-what-they-dont-tell-you-about-hosting-your-mcp-server-from-3-months-of-production-nb8

Optional learning community: https://t.me/GyaanSetuAi