배포 및 보안 운영

MCP 서버를 실제 프로덕션 환경에서 안전하고 효율적으로 배포하고 관리하기 위한 가이드입니다.

1. 배포 전략

로컬 배포 (Local stdio)

  • 사용자의 로컬 환경에서 직접 실행되는 도구에 적합합니다.
  • 호스트(예: Claude Desktop)가 프로세스를 관리하므로 별도의 서버 유지가 필요 없습니다.

원격 배포 (Remote SSE)

  • 여러 사용자가 공유하거나, 클라우드 리소스가 필요한 경우에 사용합니다.
  • Docker를 사용하여 서버를 컨테이너화하고 AWS, GCP, Vercel 등에 배포합니다.
  • Streamable HTTP (2025 Update): 최신 표준은 서버리스 환경(AWS Lambda 등)에서도 효율적으로 MCP 메시지를 스트리밍할 수 있도록 지원합니다.

2. 보안 가이드라인

권한 최소화 (Least Privilege)

  • MCP 서버가 접근할 수 있는 데이터와 실행할 수 있는 명령의 범위를 최소화하십시오.
  • 가능하다면 읽기 전용(Resources)과 쓰기 가능(Tools) 권한을 분리하여 제공하십시오.

샌드박싱 (Sandboxing)

  • Docker 활용: 코드 실행 도구와 같이 위험할 수 있는 작업은 반드시 격리된 컨테이너 내부에서 실행하십시오.
  • Network Isolation: 서버가 외부 인터넷에 접근할 필요가 없다면 네트워크를 차단하십시오.

인증 및 인가 (Auth)

  • 원격 SSE 서버의 경우, API Key 또는 OAuth 2.0을 통해 인증된 클라이언트만 접근을 허용하십시오.
  • 호스트가 서버로 메시지를 보낼 때마다 토큰 유효성을 검증해야 합니다.

3. 엔터프라이즈 가버넌스

대규모 조직에서 MCP를 도입할 때의 고려 사항입니다.

  • Audit Logging: 에이전트가 어떤 도구를 언제 호출했는지, 어떤 결과가 반환되었는지 상세히 기록하십시오. (Langfuse, Arize Phoenix 등과 연동 권장)
  • Policy Enforcement: 특정 조건(예: 근무 시간 외, 민감 데이터 접근 등)에서 도구 사용을 제한하는 가드레일 레이어를 구축하십시오.

4. 모니터링

  • Health Checks: 원격 서버의 가용성을 지속적으로 모니터링하십시오.
  • Latent Error Tracking: 도구 호출 실패나 타임아웃 발생 빈도를 추적하여 사용자 경험을 개선하십시오.

This site uses Just the Docs, a documentation theme for Jekyll.