View a markdown version of this page

MCP 서버 통합 - AWS의 분산 로드 테스트

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

MCP 서버 통합

솔루션 배포 중에 선택적 MCP 서버 구성 요소를 배포한 경우 Distributed Load Testing 솔루션을 모델 컨텍스트 프로토콜을 지원하는 AI 개발 도구와 통합할 수 있습니다. MCP 서버는 AI 어시스턴트를 통해 로드 테스트를 검색, 관리 및 분석할 수 있는 프로그래밍 방식의 액세스를 제공합니다.

선택한 클라이언트(Kiro CLI, Claude 등)를 사용하여 DLT MCP 서버에 연결할 수 있으며, 각 클라이언트에는 약간 다른 구성 지침이 있습니다. 이 섹션에서는 MCP Inspector, Kiro CLI, Cline 및 Amazon Quick에 대한 설정 지침을 제공합니다.

1단계: MCP 엔드포인트 및 액세스 토큰 가져오기

MCP 클라이언트를 구성하기 전에 DLT 웹 콘솔에서 MCP 서버 엔드포인트와 액세스 토큰을 검색해야 합니다.

  1. 분산 로드 테스트 웹 콘솔에서 MCP 서버 페이지로 이동합니다.

  2. MCP 서버 엔드포인트 섹션을 찾습니다.

  3. 엔드포인트 URL 복사 버튼을 사용하여 엔드포인트 URL을 복사합니다. 엔드포인트 URL은 형식을 따릅니다. https://{gateway-id}.gateway.bedrock-agentcore.{region}.amazonaws.com/mcp

  4. 액세스 토큰 섹션을 찾습니다.

  5. 액세스 토큰 복사 버튼을 사용하여 액세스 토큰을 복사합니다.

중요

액세스 토큰을 안전하게 유지합니다. 공개적으로 공유하지 마세요. 기본적으로 토큰은 MCP 인터페이스를 통해 분산 로드 테스트 솔루션에 대한 읽기 전용 액세스를 제공합니다. MCP 서버가 ReadWrite 액세스 모드로 배포된 경우 토큰은 생성, 업데이트 및 삭제 작업도 허용합니다. 자세한 내용은 개발자 안내서의 MCP 도구 사양을 참조하세요.

엔드포인트 및 액세스 토큰을 보여주는 MCP 서버 자격 증명 페이지

2단계: MCP Inspector로 테스트

모델 컨텍스트 프로토콜은 MCP 서버에 직접 연결하고 도구를 호출하는 도구인 MCP Inspector를 제공합니다. 이를 통해 AI 클라이언트를 구성하기 전에 MCP 서버 연결을 테스트하기 위한 편리한 UI 및 샘플 네트워크 요청이 제공됩니다.

참고

MCP Inspector에는 버전 0.17 이상이 필요합니다. 모든 요청은 JSON RPC로 직접 수행할 수도 있지만 MCP Inspector는 보다 사용자 친화적인 인터페이스를 제공합니다.

MCP Inspector 설치 및 시작

  1. 필요한 경우 npm을 설치합니다.

  2. 다음 명령을 실행하여 MCP Inspector를 시작합니다.

    npx @modelcontextprotocol/inspector

연결 구성

  1. MCP Inspector 인터페이스에서 MCP 서버 엔드포인트 URL을 입력합니다.

  2. 액세스 토큰과 함께 권한 부여 헤더를 추가합니다.

  3. 연결을 선택하여 연결을 설정합니다.

MCP Inspector 구성 화면

도구 호출

연결되면 사용 가능한 MCP 도구를 테스트할 수 있습니다.

  1. 왼쪽 패널에서 사용 가능한 도구 목록을 찾습니다.

  2. 도구를 선택합니다(예: list_scenarios).

  3. 필요한 파라미터를 제공합니다.

  4. 호출을 선택하여 도구를 실행하고 응답을 봅니다.

사용 가능한 도구 및 호출을 보여주는 MCP Inspector

3단계: AI 개발 클라이언트 구성

MCP Inspector와의 MCP 서버 연결을 확인한 후 원하는 AI 개발 클라이언트를 구성할 수 있습니다.

Kiro CLI

Kiro CLI(이전 Amazon Q Developer CLI)는 MCP Server 통합을 통해 AI 지원 개발에 대한 명령줄 액세스를 제공합니다.

구성 단계

  1. mcp.json 구성 파일을 편집합니다. 구성 파일 위치에 대한 자세한 내용은 Kiro CLI 설명서의 모델 컨텍스트 프로토콜(MCP)을 참조하세요.

  2. DLT MCP 서버 구성을 추가합니다.

    { "mcpServers": { "dlt-mcp": { "type": "http", "url": "https://<gateway-id>.gateway.bedrock-agentcore.<region>.amazonaws.com/mcp", "headers": { "Authorization": "Bearer <access-token>" } } } }

<gateway-id> 및 <region>를 MCP 서버 엔드포인트 URL의 값으로 바꾸고 <access-token>를 1단계에서 복사한 값으로 바꿉니다.

구성 확인

  1. 터미널에서 kiro-cli를 입력하여 Kiro CLI를 시작합니다.

  2. 사용 가능한 모든 MCP 서버를 보려면 /mcp를 입력합니다.

  3. dlt-mcp 및 기타 구성된 MCP 서버에서 제공하는 사용 가능한 도구를 보려면 /tools를 입력합니다.

  4. 가 dlt-mcp 성공적으로 초기화되는지 확인합니다.

클라인

Cline은 MCP Server 통합을 지원하는 AI 코딩 도우미입니다.

구성 단계

  1. Cline에서 MCP 서버 관리 > 구성 > MCP 서버 구성으로 이동합니다.

  2. cline_mcp_settings.json 파일을 다음과 같이 업데이트 합니다.

    { "mcpServers": { "dlt-mcp": { "type": "streamableHttp", "url": "https://<gateway-id>.gateway.bedrock-agentcore.<region>.amazonaws.com/mcp", "headers": { "Authorization": "Bearer <access-token>" } } } }

    <gateway-id> 및 <region>를 MCP 서버 엔드포인트 URL의 값으로 바꾸고 <access-token>를 1단계에서 복사한 값으로 바꿉니다.

  3. 구성 파일을 저장합니다.

  4. Cline을 다시 시작하여 변경 사항을 적용합니다.

Amazon Quick

Amazon Quick(이전 Amazon Quick Suite)은 MCP Server 작업을 지원하는 포괄적인 AI 어시스턴트 플랫폼을 제공합니다.

사전 조건

Amazon Quick에서 MCP 서버를 구성하기 전에 DLT 배포의 Cognito 사용자 풀에서 OAuth 자격 증명을 검색해야 합니다.

  1. AWS CloudFormation 콘솔로 이동합니다.

  2. 분산 로드 테스트 스택을 선택합니다.

  3. 출력 탭에서 DLT 배포와 연결된 Cognito 사용자 풀 ID를 찾아 복사합니다.

  4. Amazon Cognito 콘솔로 이동합니다.

  5. CloudFormation 출력에서 사용자 풀 ID를 사용하여 사용자 풀을 선택합니다.

  6. 왼쪽 탐색 창에서 앱 통합 > 앱 클라이언트를 선택합니다.

  7. 이름이 m2m (machine-to-machine)로 끝나는 앱 클라이언트를 찾아 선택합니다.

  8. 앱 클라이언트 세부 정보 페이지에서 클라이언트 ID를 복사합니다. 클라이언트 보안 암호를 표시하려면 클라이언트 보안 암호 표시를 선택한 다음 값을 복사합니다.

  9. 사용자 풀로 돌아가서 도메인 탭에서 사용자 풀 도메인을 가져옵니다.

  10. 도메인 /oauth2/token 끝에를 추가하여 토큰 엔드포인트 URL을 구성합니다.

구성 단계

  1. Amazon Quick에서 새 에이전트를 생성하거나 기존 에이전트를 선택합니다.

  2. DLT MCP 서버와 상호 작용하는 방법을 설명하는 에이전트 프롬프트를 추가합니다.

  3. 새 작업을 추가하고 MCP Server 작업을 선택합니다.

  4. MCP 서버 세부 정보를 구성합니다.

    • MCP 서버 URL: DLT MCP 엔드포인트

    • 인증 유형: 서비스 기반 인증

    • 토큰 엔드포인트: Cognito 토큰 엔드포인트 URL

    • 클라이언트 ID: m2m 앱 클라이언트의 클라이언트 ID

    • 클라이언트 보안 암호: m2m 앱 클라이언트의 클라이언트 보안 암호

  5. MCP Server 작업 구성을 저장합니다.

  6. 에이전트에 새 MCP 서버 작업을 추가합니다.

에이전트 시작 및 테스트

  1. Amazon Quick에서 에이전트를 시작합니다.

  2. 자연어 프롬프트를 사용하여 에이전트와 대화를 시작합니다.

  3. 에이전트는 MCP 도구를 사용하여 로드 테스트 데이터를 검색하고 분석합니다.

MCP Server 클라이언트 보안 암호 교체

서비스 기반(machine-to-machine) 인증을 사용하여 MCP 클라이언트를 솔루션에 연결하는 경우 클라이언트가 사용하는 클라이언트 보안 암호를 교체할 책임은 사용자에게 있습니다.

적용되는 자격 증명

이 솔루션은 서로 다른 두 가지 MCP 자격 증명을 발급합니다. 이 중 하나만 수동으로 교체해야 합니다.

자격 증명 사용처 Rotation(회전)

사용자 액세스 토큰 - 웹 콘솔의 MCP 서버 페이지에서 복사됩니다.

MCP Inspector, Kiro CLI, Cline 및 Authorization: Bearer 헤더를 보내는 기타 클라이언트

필요하지 않습니다. 이는 발급 후 약 1시간 후에 만료되는 수명이 짧은 Amazon Cognito 액세스 토큰입니다. 새 토큰을 가져오려면 MCP 서버 페이지로 돌아가서 다시 복사합니다.

Machine-to-machine 클라이언트 ID 및 클라이언트 보안 암호 - Amazon Cognito 사용자 풀에서 검색됨

Amazon Quick 및 서비스 기반 인증을 위해 구성된 기타 클라이언트

수동 교체가 필요합니다. 클라이언트 보안 암호는 수명이 길며 자체적으로 만료되지 않습니다.

이 섹션의 나머지 부분은 machine-to-machine 클라이언트 보안 암호에 적용됩니다. 이 솔루션은 Deploy Optional MCP Server를 로 설정하여 배포할 <stack-name>-userpool-client-m2m 때이 자격 증명을 라는 Amazon Cognito 앱 클라이언트로 생성합니다Yes. 검색 지침은 Amazon Quick의 사전 조건을 참조하세요.

중요

클라이언트 보안 암호를 다른 장기 자격 증명과 마찬가지로 취급합니다.

  • 소스 제어에 커밋하거나 애플리케이션 코드에 임베드하거나 문제 트래커, 채팅 또는 설명서에 붙여넣지 마십시오.

  • 로그, 빌드 출력 또는 CI/CD 작업 출력에 기록하지 마십시오.

  • AWS Secrets Manager Manager와 같은 보안 암호 관리자 또는 이를 사용하는 MCP 클라이언트의 암호화된 보안 인증 저장소에 저장합니다. 일반 텍스트 파일에 보관하지 마십시오.

  • 사용자 및 보안 암호를 사용하는 서비스와 같이 보안 암호가 필요한 사용자에게만 보안 암호에 대한 액세스 권한을 부여합니다.

권장 교체 주기

최소 90일마다 machine-to-machine 클라이언트 보안 암호를 교체합니다. 다음 중 하나가 발생할 때마다 정규 일정을 벗어나 즉시 교체합니다.

  • 보안 암호가 노출되었다고 의심하거나 확인합니다.

  • 보안 암호에 액세스할 수 있는 운영자는 팀을 떠나거나 역할을 변경합니다.

  • 보안 암호로 구성된 MCP 클라이언트를 사용 중지합니다.

보안 암호 교체

Amazon Cognito 앱 클라이언트는 동시에 최대 2개의 활성 클라이언트 보안 암호를 지원합니다. 두 번째 보안 암호를 추가하고 MCP 클라이언트를 마이그레이션한 다음 MCP 액세스를 중단하지 않고 원본을 삭제하여 교체합니다.

클라이언트 ID는 교체 중에 변경되지 않으므로 솔루션의 AWS CloudFormation 스택, MCP 서버 엔드포인트 또는 토큰 엔드포인트를 업데이트할 필요가 없습니다. MCP 클라이언트에 저장된 보안 암호 값만 변경됩니다.

  1. 두 번째 클라이언트 보안 암호를 추가합니다. Amazon Cognito는 값을 생성하여 응답에 반환합니다.

    aws cognito-idp add-user-pool-client-secret \ --user-pool-id <user-pool-id> \ --client-id <m2m-client-id> \ --region <region>
    중요

    계속하기 전에 응답ClientSecretValue에서를 복사하고 안전하게 저장합니다. Amazon Cognito는이 응답에서만 생성된 보안 암호 값을 반환하고 다시는 공개하지 않습니다. list-user-pool-client-secrets 또는 Amazon Cognito 콘솔은 이를 표시하지 않습니다. 값을 잃어버린 경우 보안 암호를 삭제하고 새 보안 암호를 추가합니다.

    원래 보안 암호는 현재 유효한 상태로 유지되므로이 보안 암호로 구성된 모든 MCP 클라이언트는 계속 작동합니다.

  2. 새 보안 암호를 사용하도록 각 MCP 클라이언트를 업데이트합니다. Amazon Quick의 경우 MCP 서버 작업을 편집하고 클라이언트 보안 암호 값을 바꿉니다. 이때 MCP 서버 URL, 토큰 엔드포인트 및 클라이언트 ID는 변경되지 않습니다. 작업을 저장합니다.

  3. 새 보안 암호가 토큰을 발급하는지 확인합니다. 사용자 풀의 토큰 엔드포인트에서 클라이언트 자격 증명 부여를 요청합니다.

    curl -X POST https://<user-pool-domain>/oauth2/token \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'grant_type=client_credentials' \ -d 'client_id=<m2m-client-id>' \ -d 'client_secret=<new-client-secret>' \ -d 'scope=dlt-mcp-gateway/read'

    성공적인 응답에는 access_token 필드가 포함됩니다. 그런 다음 재구성한 클라이언트에서 MCP 도구를 호출하여 end-to-end 액세스를 확인합니다. 예를 들어 에이전트에게 테스트 시나리오를 나열하도록 요청합니다.

  4. 클라이언트의 보안 암호를 나열하여 원본 보안 암호를 식별합니다. 각 보안 암호는 형식으로 로 식별ClientSecretId됩니다 <client-id>--<epoch-create-time> . ClientSecretCreateDate 필드를 사용하여 원본 보안 암호를 방금 추가한 보안 암호와 구분합니다.

    aws cognito-idp list-user-pool-client-secrets \ --user-pool-id <user-pool-id> \ --client-id <m2m-client-id> \ --region <region>
  5. 원래 보안 암호를 무효화합니다. 이 호출 후 Amazon Cognito는 더 이상 이전 보안 암호를 제공하는 클라이언트에 토큰을 발행하지 않습니다.

    aws cognito-idp delete-user-pool-client-secret \ --user-pool-id <user-pool-id> \ --client-id <m2m-client-id> \ --client-secret-id <old-client-secret-id> \ --region <region>
참고

교체 시 두 가지 제약 조건이 적용됩니다.

  • 앱 클라이언트는 최대 2개의 보안 암호를 가질 수 있습니다. 두 개가 이미 있는 경우 다른를 추가하기 전에 더 이상 필요하지 않은를 삭제합니다.

  • 앱 클라이언트에서 마지막으로 남은 보안 암호는 삭제할 수 없습니다.

add-user-pool-client-secret 명령은 자체 값을 제공하기 위한 선택적 --client-secret 파라미터도 허용합니다. 값을 제공하는 경우 Amazon Cognito는 응답에 값을 반환하지 않으므로 호출하기 전에 값을 저장해야 합니다. Amazon Cognito가 보안 암호를 생성하도록 하는 것이 좋습니다.

보안 암호가 노출된 경우

이전 단계를 사용하여 교체하고 유지 관리 기간을 기다리지 않고 가능한 한 빨리 5단계(이전 보안 암호 삭제)를 완료합니다. 그런 다음 다음과 같은 추가 작업을 수행합니다.

  • 이미 발급된 토큰의 계정입니다. 보안 암호를 삭제하면 Amazon Cognito가 새 토큰을 발급하지 못하지만 노출된 보안 암호로 얻은 액세스 토큰은 만료될 때까지 최대 약 1시간 동안 유효합니다. 보안 암호를 삭제해도 보안 암호는 무효화되지 않습니다.

  • 이러한 토큰이 수행할 수 있는 작업을 제한합니다. 배포에서 ReadWrite 액세스 모드를 사용하는 경우 MCP 서버 액세스 모드를 로 설정하여 AWS CloudFormation 스택 업데이트를 수행합니다ReadOnly. 이렇게 하면 쓰기 도구가 제거되고 MCP Server Lambda 함수의 IAM 권한이 GET 요청으로 제한되므로 미해결 토큰이 테스트 시나리오를 생성, 수정, 삭제 또는 시작할 수 없습니다. 각 액세스 모드의 동작은 개발자 안내서의 MCP 도구 사양을 참조하세요.

  • 자격 증명이 사용된 대상을 검토합니다. 솔루션의 테스트 실행 기록과 MCP Server Lambda 함수에 대한 Amazon CloudWatch Logs에서 예상치 못한 활동을 확인합니다. 배포에서 ReadWrite 액세스 모드를 사용한 경우 테스트 시나리오와 시나리오 버킷의 public/test-scenarios/ 접두사 내용도 검토하여 무단 변경 사항이 있는지 확인합니다.

참고

토큰 유효성에 관계없이 모든 MCP 요청을 즉시 거부하려면 선택적 MCP 서버 배포를 로 설정하여 스택 업데이트를 수행합니다No. 그러면 AgentCore 게이트웨이가 삭제됩니다.

미해결 토큰이 MCP 서버에 도달할 수 없도록 보장해야 하는 경우에만 사용합니다. 파라미터를 로 설정하면 machine-to-machine 앱 클라이언트No도 삭제됩니다. 로 다시 설정하면 새 클라이언트 ID와 새 보안 암호가 있는 새 앱 클라이언트가 Yes 생성됩니다. 그런 다음 모든 MCP 클라이언트를 새 클라이언트 ID와 새 보안 암호로 다시 구성해야 합니다.

프롬프트 예제

다음 예제에서는 AI 어시스턴트와 상호 작용하여 MCP 인터페이스를 통해 로드 테스트 데이터를 분석하는 방법을 보여줍니다. 특정 테스트 요구 사항에 맞게 테스트 IDs, 날짜 범위 및 기준을 사용자 지정합니다.

사용 가능한 MCP 도구 및 해당 파라미터에 대한 자세한 내용은 개발자 안내서의 MCP 도구 사양을 참조하세요.

간단한 테스트 결과 쿼리

MCP 서버와의 자연어 상호 작용은 다음과 같이 간단Show me the load tests that have completed in the last 24 hours with their associated completion status하거나 더 설명적일 수 있습니다.

Use list_scenarios to find my load tests. Then use get_latest_test_run to show me the basic execution data and performance metrics for the most recent test. If the results look concerning, also get the detailed performance metrics using get_test_run.

점진적 공개를 통한 대화형 성능 분석

I need to analyze my load test performance, but I'm not sure which specific tests to focus on. Please help me by: 1. First, use list_scenarios to show me available test scenarios 2. Ask me which tests I want to analyze based on the list you show me 3. For my selected tests, use list_test_runs to get the test run history 4. Then use get_test_run with the test_run_id to get detailed response times, throughput, and error rates 5. If I want to compare tests, use get_baseline_test_run to compare against the baseline 6. If there are any issues, use get_test_run_artifacts to help me understand what went wrong Please guide me through this step by step, asking for clarification whenever you need more specific information.

프로덕션 준비 확인

Help me validate if my API is ready for production deployment: 1. Use list_scenarios to find recent test scenarios 2. For the most recent test scenario, use get_latest_test_run to get basic execution data 3. Use get_test_run with that test_run_id to get detailed response times, error rates, and throughput 4. Use get_scenario_details with the test_id to show me what load patterns and endpoints were tested 5. If I have a baseline, use get_baseline_test_run to compare current results with the baseline 6. Provide a clear go/no-go recommendation based on the performance data 7. If there are any concerns, use get_test_run_artifacts to help identify potential issues My SLA requirements are: response time under [X]ms, error rate under [Y]%.

성능 추세 분석

Analyze the performance trend for my load tests over the past [TIME_PERIOD]: 1. Use list_scenarios to get all test scenarios 2. For each scenario, use list_test_runs with start_date and end_date to get tests from that period 3. Use get_test_run for the key test runs to get detailed metrics 4. Use get_baseline_test_run to compare against the baseline 5. Identify any significant changes in response times, error rates, or throughput 6. If you detect performance degradation, use get_test_run_artifacts on the problematic tests to help identify causes 7. Present the trend analysis in a clear format showing whether performance is improving, stable, or degrading Focus on completed tests and limit results to [N] tests if there are too many.

실패한 테스트 문제 해결

Help me troubleshoot my failed load tests: 1. Use list_scenarios to find test scenarios 2. For each scenario, use list_test_runs to find recent test runs 3. Use get_test_run with the test_run_id to get the basic execution data and failure information 4. Use get_test_run_artifacts to get detailed error messages and logs 5. Use get_scenario_details to understand what was being tested when it failed 6. If I have a similar test that passed, use get_baseline_test_run to identify differences 7. Summarize the causes of failure and suggest next steps for resolution Show me the most recent [N] failed tests from the past [TIME_PERIOD].