View a markdown version of this page

MCP 호스팅 전략 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

MCP 호스팅 전략

사용 가능한 도구를 MCP 서버로 추출하면 에이전트 개발이 사용 가능한 도구와 분리됩니다. 이렇게 하면 MCP 서버를 호스팅하는 위치와 해당 서버 내에서 도구가 구성되는 방식에 대한 문제가 발생합니다.

호스팅 접근 방식

MCP 서버를 호스팅하는 방법에는 최종 사용자 시스템에서 로컬로 실행하거나, 원격으로 호스팅하거나, MCP 게이트웨이를 통해 호스팅하는 세 가지 옵션이 있습니다. 각 옵션에는 장점과 장단점이 있습니다.

로컬 호스팅

로컬 호스팅은 표준 입력 및 출력 스트림을 통해 JSON-RPC를 사용하여 서버와 통신하는 에이전트와 함께 로컬 시스템에서 MCP 서버를 하위 프로세스로 실행합니다. 이 접근 방식은 클라이언트와 서버 간의 인증이 필요하지 않습니다. 도구는 로컬 애플리케이션 및 파일과 상호 작용하고, 로컬에 저장된 자격 증명을 사용하고, 사용자 로컬 시스템의 네트워크 액세스를 상속할 수 있습니다. 이는 가장 간단한 호스팅 패턴이며 몇 가지 이점이 있습니다.

많은 고객이 로컬 서버를 사용하여 MCP를 시작합니다. 이를 통해 엔지니어는 로컬 환경에서 다양한 문제를 신속하게 반복하고 해결할 수 있습니다. 엔지니어의 코딩이 사용하는 Git 리포지토리에 연결하는 MCP 서버를 생각해 보세요. MCP 서버를 로컬로 유지하는 것은 엔지니어의 고유한 자격 증명을 사용하여 리포지토리에 액세스할 수 있고 원격 MCP 서버에 네트워크 호출을 추가하지 않기 때문에 매우 유용합니다. 다음 이미지는 IDE에서 코딩 에이전트와 함께 사용 중인 로컬 호스팅 MCP 서버를 보여줍니다.

IDE에서 코딩 에이전트와 함께 사용되는 로컬 호스팅 MCP 서버입니다.

이러한 유형의 배포의 경우 MCP 서버를 개발하고 배포하는 방법을 고려해야 합니다. 대부분의 고객은 최종 사용자가 서버를 등록하고 다운로드할 수 있는 MCP 레지스트리를 개발합니다. 이는 사용자가 특정 기능을 검색하고 필요에 적합한 MCP 서버를 찾을 수 있는 컨테이너 레지스트리와 매우 유사합니다.

공식 MCP 레지스트리와 같은 퍼블릭 MCP 레지스트리가 있으며 비공개 호스팅 레지스트리가 있습니다. 조직은 일반적으로 오픈 소스 소프트웨어 배포, 컨테이너 레지스트리 및 내부 패키지 관리에 대한 기존 정책에 따라 MCP 레지스트리 전략을 조정합니다. 보안 스캔, 승인 워크플로 및 규정 준수 요구 사항과 같은 요소를 고려해야 합니다.

그러나 로컬 호스팅은 조직이 고려해야 할 운영 문제를 야기합니다. 먼저 최종 사용자는 MCP 서버를 독립적으로 검색, 다운로드 및 구성해야 합니다. 이렇게 하면 로컬에서 사용하는 각 개별 MCP 서버를 시작하는 데 복잡성이 가중될 수 있습니다. 둘째, MCP 서버 수명 주기를 제어할 수 없습니다. 즉, 사용자는 보안 취약성 또는 누락된 기능이 있는 오래된 버전을 로컬에서 계속 실행할 수 있습니다. 이로 인해 규정 준수 요구 사항이 복잡해질 수 있습니다. Kiro와 같은 일부 IDEs 및 CLI 도구를 사용하면 조직이 사용 가능한 MCP 도구를 관리하고 제어하여 팀 간 일관성과 보안을 보장할 수 있습니다.

원격 호스팅

두 번째 옵션은 HTTP 또는 HTTPS를 통해 액세스하는 원격 MCP 서버를 호스팅하는 것입니다. 이렇게 하면 모든 네트워크 연결 클라이언트에 액세스할 수 있습니다. 원격 호스팅을 사용하면 MCP 리소스 및 기능에 대한 액세스를 중앙에서 제어하고, 인증 및 권한 부여를 구현하고, MCP 서버 로직의 버전 관리 및 업데이트를 제어할 수 있습니다. 원격 호스팅을 사용하려면 최종 사용자가 에이전트와 함께 사용하려는 MCP 서버를 검색할 수 있도록 MCP 레지스트리를 사용해야 합니다. 다음 이미지는 원격 호스팅 접근 방식을 보여줍니다.

원격 호스팅 접근 방식.

에이전트 개발 관점에서 볼 때 MCP 서버가 로컬이든 원격이든 경험은 비슷합니다. 가장 중요한 변경 사항은 MCP 서버에 대한 에이전트의 액세스와 외부 리소스에 대한 서버의 액세스를 모두 포함하여 인증 및 권한 부여를 구현하는 것입니다. 다중 테넌트 액세스 및 권한 관리를 고려하려면 원격 MCP 서버 구현을 신중하게 계획해야 합니다. MCP 거버넌스 전략 장에는 인증 및 권한 부여 고려 사항에 대한 자세한 정보가 포함되어 있습니다.

MCP 게이트웨이

마지막 옵션은 MCP 게이트웨이를 사용하는 것입니다. MCP 게이트웨이는 MCP 클라이언트와 서버 간의 중앙 집중식 프록시 역할을 하며 등록된 MCP 서버에 대한 액세스를 오케스트레이션합니다. 게이트웨이가 없으면 각 에이전트는 사용하려는 모든 원격 MCP 서버를 등록해야 합니다. 게이트웨이를 사용하면 에이전트가 인증, 권한 부여, 라우팅 및 프로토콜 번역을 관리하는 단일 엔드포인트에 연결할 수 있습니다. 새로운 MCP 서버와 도구를 동적으로 추가하고 에이전트가 즉시 사용할 수 있습니다. 다음 이미지는 MCP 게이트웨이 접근 방식을 보여줍니다.

MCP 게이트웨이 접근 방식.

Docker MCP Gateway와 같은 일부 게이트웨이 솔루션은 MCP 서버의 수명 주기도 관리하여 필요에 따라 온디맨드로 서버를 시작합니다. Amazon Bedrock AgentCore Gateway와 같은 MCP 게이트웨이네이티브 의미 체계 검색 기능을 제공하여 도구 검색을 관리하는 데도 도움이 될 수 있습니다. 이렇게 하면 에이전트가 MCP 클라이언트와 연결할 수 있는 단일 엔드포인트를 제공하고 컨텍스트 창 사용을 최적화하는 데 도움이 됩니다. 그 결과 MCP 도구를 효과적으로 선택하고 사용할 수 있는 간단한 에이전트가 생성됩니다. 그러나 원격 MCP 서버 접근 방식과 유사한 자격 증명 관련 문제가 있습니다.

MCP 서버 호스팅 모범 사례

  • 호스팅 옵션의 스펙트럼은 모든 것에 맞는 한 가지 크기가 아닙니다. 오늘날 MCP 서버 사용의 대부분은 로컬입니다.

  • 원격 MCP 서버를 사용하기 시작할 때 주요 고려 사항은 MCP 서버에 대한 일관된 인증 및 권한 부여와 MCP 서버가 다운스트림 리소스에 대한 인증 및 권한 부여를 수행하는 방식입니다.

  • MCP 게이트웨이는 여러 원격 MCP 서버를 호스팅하기 위한 연결 및 인증과 권한 부여를 간소화합니다. 또한 적용 가능한 도구를 검색하여 컨텍스트 기간 관리를 개선하는 기능도 제공합니다.