5. Q CLI 기반 MCP 구성하기 2

Update : 2025.06.03

1. 브라우저 접근 (Playwright + Chrome)

에이전트(Amazon Q CLI)가 웹 브라우저를 통해 인터넷에 접근할 수 있도록 설정하면, 매우 다양한 유스케이스를 지원할 수 있게 됩니다. 이 예제에서는 CLI가 Playwright를 통해 Chrome 브라우저에 접근할 수 있도록 MCP 서버를 설정합니다. 해당 MCP 서버는 GitHub에서 사용할 수 있습니다.

1.1 현재 채팅 세션 종료 및 Chrome 설치

  • 채팅 세션 종료

/quit
  • Chrome 설치

sudo dnf install -y https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

1.2 mcp.json 파일 업데이트

앞서 설정했던 MCP 설정 파일을 업데이트 합니다.

code-server ~/.aws/amazonq/mcp.json

다음 내용으로 파일을 업데이트합니다.

{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": ["mcp-server-kubernetes"]
    },
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest",
        "--headless",
        "--executable-path",
        "/usr/bin/google-chrome-stable"
      ]
    }
  }
}

1.3 CLI 채팅 세션 재시작

q chat --trust-all-tools

출력 예시:

$ q chat --trust-all-tools
To learn more about MCP safety, see https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp-security.html
✓ kubernetes loaded in 1.72 s
✓ playwright loaded in 4.97 s
✓ 2 of 2 mcp servers initialized

Welcome to 

 █████╗ ███╗   ███╗ █████╗ ███████╗ ██████╗ ███╗   ██╗     ██████╗ 
██╔══██╗████╗ ████║██╔══██╗╚══███╔╝██╔═══██╗████╗  ██║    ██╔═══██╗
███████║██╔████╔██║███████║  ███╔╝ ██║   ██║██╔██╗ ██║    ██║   ██║
██╔══██║██║╚██╔╝██║██╔══██║ ███╔╝  ██║   ██║██║╚██╗██║    ██║▄▄ ██║
██║  ██║██║ ╚═╝ ██║██║  ██║███████╗╚██████╔╝██║ ╚████║    ╚██████╔╝
╚═╝  ╚═╝╚═╝     ╚═╝╚═╝  ╚═╝╚══════╝ ╚═════╝ ╚═╝  ╚═══╝     ╚══▀▀═╝ 
                                                        


╭───────────────────────── Did you know? ─────────────────────────╮
│                                                                 │
│   You can programmatically inject context to your prompts by    │
│           using hooks. Check out /context hooks help            │
│                                                                 │
╰─────────────────────────────────────────────────────────────────╯


/help all commands  •  ctrl + j new lines  •  ctrl + k fuzzy search
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

All tools are now trusted (!). Amazon Q will execute tools without asking for confirmation.
Agents can sometimes do unexpected things so understand the risks.

Learn more at https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-chat-security.html#command-line-chat-trustall-safety

1.4 사용 가능한 도구 목록 확인

사용 가능한 도구 목록 확인 프롬프트:

사용가능한 Tool들을 알려줘.

예시 출력:

playwright__로 시작하는 브라우저 도구들이 포함되어 있을 것입니다.

사용가능한 Tool들을 알려줘.

사용 가능한 도구(Tool)들은 다음과 같습니다:

## Kubernetes 관련 도구
• kubernetes___update_service: Kubernetes 서비스 업데이트
• kubernetes___upgrade_helm_chart: Helm 차트 업그레이드
• kubernetes___get_logs: Pod, Deployment, Job 등의 로그 조회
• kubernetes___list_services: 네임스페이스의 서비스 목록 조회
• kubernetes___port_forward: Kubernetes 리소스에 포트 포워딩
• kubernetes___delete_deployment: Deployment 삭제
• kubernetes___list_cronjobs: CronJob 목록 조회
• kubernetes___create_namespace: 네임스페이스 생성
• kubernetes___get_events: Kubernetes 이벤트 조회
• kubernetes___delete_namespace: 네임스페이스 삭제
• kubernetes___delete_service: 서비스 삭제
• kubernetes___install_helm_chart: Helm 차트 설치
• kubernetes___list_contexts: Kubernetes 컨텍스트 목록 조회
• kubernetes___scale_deployment: Deployment 스케일링
• kubernetes___delete_cronjob: CronJob 삭제
• kubernetes___explain_resource: Kubernetes 리소스 설명
• kubernetes___list_deployments: Deployment 목록 조회
• kubernetes___describe_deployment: Deployment 상세 정보 조회
• kubernetes___describe_service: 서비스 상세 정보 조회
• kubernetes___set_current_context: 현재 컨텍스트 설정
• kubernetes___describe_pod: Pod 상세 정보 조회
• kubernetes___list_namespaces: 네임스페이스 목록 조회
• kubernetes___describe_node: 노드 상세 정보 조회
• kubernetes___cleanup: 관리 리소스 정리
• kubernetes___list_jobs: Job 목록 조회
• kubernetes___list_nodes: 노드 목록 조회
• kubernetes___create_configmap: ConfigMap 생성
• kubernetes___describe_cronjob: CronJob 상세 정보 조회
• kubernetes___create_pod: Pod 생성
• kubernetes___get_current_context: 현재 컨텍스트 조회
• kubernetes___create_service: 서비스 생성
• kubernetes___stop_port_forward: 포트 포워딩 중지
• kubernetes___get_job_logs: Job 로그 조회
• kubernetes___uninstall_helm_chart: Helm 차트 제거
• kubernetes___list_pods: Pod 목록 조회
• kubernetes___update_deployment: Deployment 업데이트
• kubernetes___create_deployment: Deployment 생성
• kubernetes___list_api_resources: API 리소스 목록 조회
• kubernetes___delete_pod: Pod 삭제
• kubernetes___create_cronjob: CronJob 생성

## Playwright 브라우저 관련 도구
• playwright___browser_handle_dialog: 대화상자 처리
• playwright___browser_resize: 브라우저 창 크기 조정
• playwright___browser_tab_list: 브라우저 탭 목록 조회
• playwright___browser_close: 페이지 닫기
• playwright___browser_file_upload: 파일 업로드
• playwright___browser_generate_playwright_test: Playwright 테스트 생성
• playwright___browser_type: 편집 가능한 요소에 텍스트 입력
• playwright___browser_tab_new: 새 탭 열기
• playwright___browser_tab_close: 탭 닫기
• playwright___browser_console_messages: 콘솔 메시지 조회
• playwright___browser_navigate_forward: 다음 페이지로 이동
• playwright___browser_select_option: 드롭다운에서 옵션 선택
• playwright___browser_wait: 지정된 시간 대기
• playwright___browser_navigate_back: 이전 페이지로 이동
• playwright___browser_install: 브라우저 설치
• playwright___browser_pdf_save: PDF로 페이지 저장
• playwright___browser_navigate: URL로 이동
• playwright___browser_hover: 페이지 요소 위에 마우스 호버
• playwright___browser_take_screenshot: 현재 페이지 스크린샷 촬영
• playwright___browser_press_key: 키보드 키 누르기
• playwright___browser_network_requests: 네트워크 요청 조회
• playwright___browser_tab_select: 탭 선택
• playwright___browser_snapshot: 현재 페이지의 접근성 스냅샷 캡처
• playwright___browser_click: 웹 페이지에서 클릭 수행
• playwright___browser_drag: 두 요소 간 드래그 앤 드롭 수행

## 파일 시스템 및 기타 도구
• report_issue: 채팅 이슈, 버그, 기능 요청을 보고하기 위한 GitHub 이슈 템플릿 열기
• fs_read: 파일 읽기 및 디렉토리 조회
• use_aws: AWS CLI API 호출
• fs_write: 파일 생성 및 편집
• execute_bash: Bash 명령 실행

2. 웹 탐색 및 요약 요청 예시

웹 탐색 및 요약 요청 프롬프트:

https://docs.aws.amazon.com/eks/latest/best-practices 페이지로 이동하여 비용최적화 섹션을 정리해줘..
브라우저는 이미 설치되어 있으며, 전체 과정은 하나의 탭에서만 진행해 주세요.

💡 Q CLI는 내부적으로 Playwright를 통해 Chrome을 실행하고, 해당 페이지를 탐색한 뒤 비용최적화 섹션의 내용을 요약하여 제공합니다.

출력 결과 예시:

AWS EKS 비용 최적화 섹션을 확인하기 위해 브라우저를 사용하겠습니다.


🛠️  Using tool: browser_navigate (trusted) from mcp server playwright

 ● Running browser_navigate with the param:
 ⋮  {
 ⋮    "arguments": {
 ⋮      "url": "https://docs.aws.amazon.com/eks/latest/best-practices"
 ⋮    },
 ⋮    "name": "browser_navigate"
 ⋮  }

 ● Completed in 1.985s



🛠️  Using tool: browser_click (trusted) from mcp server playwright

 ● Running browser_click with the param:
 ⋮  {
 ⋮    "arguments": {
 ⋮      "element": "Best Practices for Cost Optimization",
 ⋮      "ref": "s1e189"
 ⋮    },
 ⋮    "name": "browser_click"
 ⋮  }

 ● Completed in 1.511s



🛠️  Using tool: browser_click (trusted) from mcp server playwright

 ● Running browser_click with the param:
 ⋮  {
 ⋮    "arguments": {
 ⋮      "element": "Framework",
 ⋮      "ref": "s2e277"
 ⋮    },
 ⋮    "name": "browser_click"
 ⋮  }

 ● Completed in 1.500s



🛠️  Using tool: fs_write (trusted)

 ● Path: /tmp/eks_cost_optimization_summary.md

+     1: # Amazon EKS 비용 최적화 모범 사례 요약
+     2: 
+     3: ## 개요
+     4: Amazon EKS 비용 최적화는 최저 비용으로 비즈니스 목표를 달성하는 것을 의미합니다. AWS는 클라우드 경제학 분야에서 Cloud Financial Management(CFM) 프레임워크를 통해 비용 최적화를 위한 방법론을 제공합니다.
+     5: 
+     6: ## 일반 가이드라인
+     7: 1. **인프라 독립성**: 특정 인프라 유형에 종속되지 않는 워크로드 설계 (GPU 등 특수 요구사항 제외)
+     8: 2. **최적의 컨테이너 인스턴스 선택**: CloudWatch Container Insights 등을 활용한 리소스 모니터링 및 프로파일링
+     9: 3. **다양한 구매 옵션 활용**: 온디맨드, 스팟 인스턴스, 절감형 플랜 등 적절한 조합
+    10: 
+    11: ## 비용 최적화 주요 영역
+    12: 1. **비용 효율적 리소스**: 오토스케일링, 다운스케일링, 정책 및 구매 옵션
+    13: 2. **지출 인식**: AWS 및 서드파티 도구를 활용한 비용 모니터링
+    14: 3. **시간에 따른 최적화**: 적절한 크기 조정(Right Sizing)
+    15: 
+    16: ## CFM 프레임워크 4가지 축
+    17: 1. **See(관찰)**: 측정 및 책임
+    18:    - 태깅 전략 정의 및 유지
+    19:    - Kubecost 등을 활용한 EKS 사용량 보고 및 모니터링
+    20:    - 애플리케이션, 사업부, 수익 흐름별 클라우드 비용 할당
+    21:    - 효율성/가치 KPI 정의 및 측정
+    22: 
+    23: 2. **Save(절약)**: 비용 최적화
+    24:    - 낭비 요소 식별 및 제거
+    25:    - 비용 효율성을 위한 아키텍처 설계
+    26:    - 최적의 구매 옵션 선택
+    27:    - 서비스 진화에 따른 적응
+    28: 
+    29: 3. **Plan(계획)**: 계획 및 예측
+    30:    - 클라우드 비용의 동적 예산 책정 및 예측
+    31:    - EKS 컨테이너 서비스가 제공하는 비즈니스 가치 정량화
+    32:    - IT 재무 관리 계획과 EKS 클러스터 비용 관리 통합
+    33: 
+    34: 4. **Run(실행)**: 지속적인 개선
+    35:    - 경영진의 지원 확보
+    36:    - 이해관계자 간 EKS 클러스터 비용에 대한 공통 이해
+    37:    - 비용 가드레일 구현
+    38:    - 조직 요구에 맞는 도구 및 자동화 발전
+    39: 
+    40: ## 주요 비용 요소
+    41: 1. **컴퓨팅 비용**: 다양한 인스턴스 유형, 구매 옵션, 확장성과 가용성 간의 균형
+    42: 2. **네트워킹 비용**: 3개 가용 영역 사용 시 AZ 간 트래픽 비용 증가 가능성
+    43: 3. **스토리지 비용**: 워크로드 특성에 따른 적절한 스토리지 유형 선택
+    44: 
+    45: 비용 최적화는 지속적인 프로세스로, 점진적인 개선을 통해 이루어집니다. 조직의 "FinOps" 노력과 EKS 클러스터 최적화를 통합하기 위해서는 경영진의 지원이 중요합니다.

Creating: /tmp/eks_cost_optimization_summary.md


 ● Completed in 0.0s



🛠️  Using tool: execute_bash (trusted)

 ● I will run the following shell command: 
glow /tmp/eks_cost_optimization_summary.md


  # Amazon EKS 비용 최적화 모범 사례 요약                                         
                                                                                  
  ## 개요                                                                         
                                                                                  
  Amazon EKS 비용 최적화는 최저 비용으로 비즈니스 목표를 달성하는 것을 의미합니다.
  AWS는 클라우드 경제학 분야에서 Cloud Financial Management(CFM) 프레임워크를 통해
  비용 최적화를 위한 방법론을 제공합니다.                                         
                                                                                  
  ## 일반 가이드라인                                                              
                                                                                  
  1. **인프라 독립성**: 특정 인프라 유형에 종속되지 않는 워크로드 설계 (GPU 등    
  특수 요구사항 제외)                                                             
  2. **최적의 컨테이너 인스턴스 선택**: CloudWatch Container Insights 등을 활용한 
  리소스 모니터링 및 프로파일링                                                   
  3. **다양한 구매 옵션 활용**: 온디맨드, 스팟 인스턴스, 절감형 플랜 등 적절한    
  조합                                                                            
                                                                                  
  ## 비용 최적화 주요 영역                                                        
                                                                                  
  1. **비용 효율적 리소스**: 오토스케일링, 다운스케일링, 정책 및 구매 옵션        
  2. **지출 인식**: AWS 및 서드파티 도구를 활용한 비용 모니터링                   
  3. **시간에 따른 최적화**: 적절한 크기 조정(Right Sizing)                       
                                                                                  
  ## CFM 프레임워크 4가지 축                                                      
                                                                                  
  1. **See(관찰)**: 측정 및 책임                                                  
      • 태깅 전략 정의 및 유지                                                    
      • Kubecost 등을 활용한 EKS 사용량 보고 및 모니터링                          
      • 애플리케이션, 사업부, 수익 흐름별 클라우드 비용 할당                      
      • 효율성/가치 KPI 정의 및 측정                                              
  2. **Save(절약)**: 비용 최적화                                                  
      • 낭비 요소 식별 및 제거                                                    
      • 비용 효율성을 위한 아키텍처 설계                                          
      • 최적의 구매 옵션 선택                                                     
      • 서비스 진화에 따른 적응                                                   
  3. **Plan(계획)**: 계획 및 예측                                                 
      • 클라우드 비용의 동적 예산 책정 및 예측                                    
      • EKS 컨테이너 서비스가 제공하는 비즈니스 가치 정량화                       
      • IT 재무 관리 계획과 EKS 클러스터 비용 관리 통합                           
  4. **Run(실행)**: 지속적인 개선                                                 
      • 경영진의 지원 확보                                                        
      • 이해관계자 간 EKS 클러스터 비용에 대한 공통 이해                          
      • 비용 가드레일 구현                                                        
      • 조직 요구에 맞는 도구 및 자동화 발전                                      
                                                                                  
                                                                                  
  ## 주요 비용 요소                                                               
                                                                                  
  1. **컴퓨팅 비용**: 다양한 인스턴스 유형, 구매 옵션, 확장성과 가용성 간의 균형  
  2. **네트워킹 비용**: 3개 가용 영역 사용 시 AZ 간 트래픽 비용 증가 가능성       
  3. **스토리지 비용**: 워크로드 특성에 따른 적절한 스토리지 유형 선택            
                                                                                  
  비용 최적화는 지속적인 프로세스로, 점진적인 개선을 통해 이루어집니다. 조직의    
  "FinOps" 노력과 EKS 클러스터 최적화를 통합하기 위해서는 경영진의 지원이         
  중요합니다.                                                                     



 ● Completed in 0.16s



🛠️  Using tool: browser_close (trusted) from mcp server playwright

 ● Running browser_close with the param:
 ⋮  {
 ⋮    "arguments": {},
 ⋮    "name": "browser_close"
 ⋮  }

 ● Completed in 0.78s


Amazon EKS 비용 최적화 모범 사례 요약:

## 개요
Amazon EKS 비용 최적화는 최저 비용으로 비즈니스 목표를 달성하는 것을 의미합니다. AWS는 클라우드 경제학 분야에서 Cloud Financial Management(CFM) 프레임워크를 통해 비용 최적화를 위한 방법론을 제공합니다.

## 일반 가이드라인
1. 인프라 독립성: 특정 인프라 유형에 종속되지 않는 워크로드 설계 (GPU 등 특수 요구사항 제외)
2. 최적의 컨테이너 인스턴스 선택: CloudWatch Container Insights 등을 활용한 리소스 모니터링 및 프로파일링
3. 다양한 구매 옵션 활용: 온디맨드, 스팟 인스턴스, 절감형 플랜 등 적절한 조합

## 비용 최적화 주요 영역
1. 비용 효율적 리소스: 오토스케일링, 다운스케일링, 정책 및 구매 옵션
2. 지출 인식: AWS 및 서드파티 도구를 활용한 비용 모니터링
3. 시간에 따른 최적화: 적절한 크기 조정(Right Sizing)

## CFM 프레임워크 4가지 축
1. See(관찰): 측정 및 책임
   • 태깅 전략 정의 및 유지
   • Kubecost 등을 활용한 EKS 사용량 보고 및 모니터링
   • 애플리케이션, 사업부, 수익 흐름별 클라우드 비용 할당
   • 효율성/가치 KPI 정의 및 측정

2. Save(절약): 비용 최적화
   • 낭비 요소 식별 및 제거
   • 비용 효율성을 위한 아키텍처 설계
   • 최적의 구매 옵션 선택
   • 서비스 진화에 따른 적응

3. Plan(계획): 계획 및 예측
   • 클라우드 비용의 동적 예산 책정 및 예측
   • EKS 컨테이너 서비스가 제공하는 비즈니스 가치 정량화
   • IT 재무 관리 계획과 EKS 클러스터 비용 관리 통합

4. Run(실행): 지속적인 개선
   • 경영진의 지원 확보
   • 이해관계자 간 EKS 클러스터 비용에 대한 공통 이해
   • 비용 가드레일 구현
   • 조직 요구에 맞는 도구 및 자동화 발전

## 주요 비용 요소
1. 컴퓨팅 비용: 다양한 인스턴스 유형, 구매 옵션, 확장성과 가용성 간의 균형
2. 네트워킹 비용: 3개 가용 영역 사용 시 AZ 간 트래픽 비용 증가 가능성
3. 스토리지 비용: 워크로드 특성에 따른 적절한 스토리지 유형 선택

비용 최적화는 지속적인 프로세스로, 점진적인 개선을 통해 이루어집니다. 조직의 "FinOps" 노력과 EKS 클러스터 최적화를 통합하기 위해서는 경영진의 지원이 중요합니다.

Last updated