AWS 기술 블로그
Amazon EKS MCP 서버를 통한 애플리케이션 개발 가속화
본 게시글은 AWS Containers Blog에 게시된 Accelerating application development with the Amazon EKS MCP server by ramadit을 한국어 번역 및 편집하였습니다.
이 블로그 포스트는 Niall Thomson (컨테이너 수석 솔루션즈 아키텍트), Carlos Santana (컨테이너 솔루션즈 아키텍트), George John (아마존 EKS 시니어 프로덕트 매니저)가 공동으로 작성했습니다.
소개
Amazon Elastic Kubernetes Service(Amazon EKS)를 위한 오픈 소스 Model Context Protocol(MCP) 서버의 출시를 발표하게 되어 기쁩니다. 이 새로운 기능을 통해 Amazon Q Developer CLI, Cline, Cursor와 같은 인공지능(AI) 코드 어시스턴트들이 표준화된 방식으로 EKS 클러스터와 원활하게 상호작용할 수 있게 되었습니다. MCP 서버는 AI 어시스턴트에게 상황별 데이터를 제공하고 EKS 및 쿠버네티스 리소스를 관리할 수 있도록 지원합니다. 그 결과, 개발자들은 이제 전체 개발 수명 주기에 걸쳐 맞춤형 가이드를 받을 수 있게 되어 애플리케이션 개발 프로세스를 간소화하고 가속화할 수 있게 되었습니다.
대규모 언어 모델(Large Language Models, LLMs)은 개발자들의 코드 작성 방식을 혁신적으로 변화시켰으며, 모델 컨텍스트 프로토콜(Model Context Protocol, MCP) 서버와 같은 혁신적인 솔루션을 통해 그 기능이 더욱 향상되고 있습니다. LLM이 학습 데이터를 기반으로 일반적인 코딩 지원을 제공하는 데 탁월한 반면, MCP 서버는 외부 도구와 데이터 소스에 실시간으로 접근할 수 있게 함으로써 그 기능을 확장하며, 특히 쿠버네티스와 같은 복잡한 환경에서 매우 유용합니다.
개방형 표준인 MCP는 LLM이 현재의 맥락적 정보에 접근할 수 있게 하는 표준화된 인터페이스를 생성하여, 특정 애플리케이션 개발 사용 사례를 지원하는 데 있어 더욱 강력하고 정확한 기능을 제공합니다. LLM과 MCP 간의 이러한 시너지는 AI 지원 개발 분야에서 중요한 진전을 나타냅니다.
EKS MCP 서버는 AI 코드 어시스턴트에게 리소스 관리 도구와 Amazon EKS 클러스터에 대한 최신의 문맥적 정보를 제공합니다. 이를 통해 코드 어시스턴트는 초기 설정부터 프로덕션 최적화 및 문제 해결에 이르기까지 애플리케이션 수명 주기 전반에 걸쳐 더욱 정확하고 맞춤화된 가이드를 제공할 수 있습니다. 개발 워크플로우에 EKS MCP 서버를 통합하면 애플리케이션 개발의 다양한 단계에서 상당한 개선을 얻을 수 있습니다. 시작 단계에서는 필요한 모든 전제 조건이 자동으로 생성되고 모범 사례가 적용된 가이드 방식으로 클러스터를 생성 할 수 있습니다. 개발 단계에서는 애플리케이션 배포와 클러스터 관리를 위한 상위 수준의 워크플로우를 제공하고 EKS에 적용할 코드와 매니페스트를 생성함으로써 EKS와 쿠버네티스의 학습 곡선을 낮춥니다. 또한 디버깅과 문제 해결을 위해 EKS MCP 서버는 문제 해결 도구와 지식 기반 접근을 제공하여 이슈 해결을 가속화합니다. 이러한 기능들은 이제 AI 코드 어시스턴트 내에서 자연어 상호작용을 통해 접근할 수 있게 되어, 개발자들이 EKS와 상호작용하는 방식을 변화시키고 복잡한 쿠버네티스 운영을 더욱 직관적이고 효율적으로 만들어줍니다.
주요 기능
EKS MCP 서버는 여러 MCP 도구를 제공하며, 이러한 도구들은 AI 어시스턴트가 API나 지식 기반 도구 같은 외부 시스템과 상호작용하기 위해 호출할 수 있습니다.
다음과 같이 EKS MCP 서버에서 제공하는 도구들은 세 가지 카테고리로 분류될 수 있습니다.
1) 쿠버네티스 리소스 관리: 쿠버네티스 명령어에 의존하지 않고 EKS 클러스터의 쿠버네티스 리소스를 조작하고 관리합니다. 이러한 도구들은 EKS 클러스터에 대한 원활한 인증을 포함하여, kubeconfig 파일을 관리할 필요 없이 여러 클러스터에서 효율적인 작업을 가능하게 합니다.
list_k8s_resources– 특정 종류의 쿠버네티스 리소스 목록 조회list_api_versions– 사용 가능한 모든 쿠버네티스 API 버전 목록 조회manage_k8s_resource– 개별 쿠버네티스 리소스 생성, 업데이트 또는 삭제apply_yaml– YAML 객체 적용get_k8s_events– 특정 쿠버네티스 리소스와 관련된 이벤트 조회get_pod_logs– 특정 파드의 로그 조회
1) EKS 클러스터 관리: AWS CloudFormation을 통해 EKS Auto Mode가 지원하는 EKS 클러스터를 편리하게 생성하고 관리합니다.
manage_eks_stacks– EKS 클러스터를 위한 CloudFormation 스택 생성, 배포 및 삭제
1) 트러블슈팅: 로그 및 지표와 같은 포괄적인 원격 측정 데이터를 제공하여 트러블슈팅 과정을 간소화합니다. 실시간 클러스터 인사이트와 일반적인 장애 시나리오에 대한 체계적인 트러블슈팅 플레이북을 결합하여 LLM 기능을 향상시킴으로써, 보다 신속하고 정확한 문제 진단 및 해결이 가능합니다.
search_eks_troubleshoot_guide– Amazon EKS 기술 자료에서 트러블슈팅 방법 검색get_cloudwatch_logs– Amazon CloudWatch에서 파드 또는 EKS 클러스터 컨트롤 플레인의 로그 추출get_cloudwatch_metrics– 컨테이너, 파드, 노드 또는 클러스터에 대한 CloudWatch 지표 추출
추가 도구들이 포함되어 있으니, 자세한 내용은 문서를 참조하시기 바랍니다.
실습
EKS MCP 서버의 기능을 보여주기 위해 다음 섹션에서는 예제 시나리오들을 단계별로 살펴보겠습니다.
워크로드 배포하기
이 섹션에서는 EKS MCP 서버가 Amazon EKS에서 워크로드를 더 빠르게 실행할 수 있도록 하는 방법을 설명합니다. 이를 위해 새로운 애플리케이션을 생성하고 Amazon EKS에 배포할 수 있도록 컨테이너로 패키징합니다. 이 과정에는 코딩이 포함되므로 VS Code용 자율 에이전트인 Cline을 사용할 수 있습니다.
IAM 권한을 포함한 사전 요구 사항을 설치하려면 여기에 있는 EKS MCP 서버 문서를 따르십시오. Cline이 EKS MCP 서버를 사용하도록 구성하려면 여기에 있는 Cline 문서를 따르십시오. cline_mcp_settings.json 파일은 다음 예시와 유사해야 합니다.
설치가 성공적으로 완료되면, 다음 그림과 같이 Cline에 설치된 MCP 서버 목록에서 EKS MCP 서버를 확인할 수 있습니다.
그림 1: Cline에서 EKS MCP 서버 구성
그림 2: Cline에 성공적으로 설치된 MCP
Amazon EKS에 배포할 애플리케이션이 필요하며, 이를 위해 Cline과 구성된 LLM 모델을 사용합니다. 아직은 EKS MCP 서버에 의존할 필요가 없습니다. 다음 프롬프트를 새로운 Cline 작업에 입력하세요:
다음과 같이 프롬프트를 분석할 수 있습니다.
- Express 프레임워크를 사용하는 Node.js 애플리케이션을 구축하도록 어시스턴트에게 요청하며, 접근 가능한 기본 엔드포인트들 포함하여 생성하도록 해야 합니다.
- Dockerfile이 필요하므로 어시스턴트에게 이를 생성하도록 요청합니다.
- 다음으로 여러 CPU 아키텍처를 지원하도록 컨테이너 이미지를 빌드하고, 기본 기능이 올바르게 작동하는지 확인하기 위해 로컬에서 빠르게 테스트 하도록 요청 합니다.
- 마지막으로 Amazon EKS에 배포할 수 있도록 컨테이너 이미지를 Amazon Elastic Container Registry(Amazon ECR)에 푸시하도록 요청합니다.
생성된 애플리케이션 리포지토리는 다음과 같은 구조를 가지게 됩니다.
그림 3: 생성된 애플리케이션 파일 구조
다음 그림과 같이 컨테이너 이미지가 빌드되어 Amazon ECR에 푸시되었습니다.
그림 4: Cline에서의 애플리케이션 부트스트랩 작업 완료
이제 어시스턴트에게 Amazon EKS에 애플리케이션을 배포하도록 요청합니다.
내부적으로, 코드 어시스턴트는 EKS MCP 서버의 manage_eks_stacks 도구를 사용하여 다음 그림과 같이 전체 클러스터 프로비저닝 프로세스를 자동화합니다. 사용자의 입력이 전혀 필요하지 않으며, VPC, 서브넷, AWS Identity and Access Management 역할과 같은 모든 클러스터 사전 요구사항의 생성을 자동화합니다. EKS MCP 서버 도구는 인프라 설정을 간소화할 뿐만 아니라, 간소화된 클러스터 관리를 위한 EKS Auto Mode 활성화와 같은 Amazon EKS 권장사항을 클러스터에 자동으로 적용합니다.
그림 5: Cline이 EKS MCP 스택 관리 도구를 호출하는 모습
다음 그림과 같이 클러스터 생성에는 몇 분이 소요되며, 그 후 어시스턴트가 EKS MCP 서버의 apply_yaml 도구를 사용하여 쿠버네티스 매니페스트를 생성하고 배포합니다
그림 6: YAML 매니페스트 적용을 위해 EKS MCP 도구를 호출하는 Cline
매니페스트가 배포되면, 어시스턴트는 다음 그림과 같이 Pod의 상태를 확인하기 위해 list_k8s_resources 및 manage_k8s_resources와 같은 EKS MCP 서버 도구를 사용합니다.
그림 7: Cline이 쿠버네티스 리소스를 나열하기 위해 EKS MCP 도구를 호출하는 모습
마지막으로, 어시스턴트는 다음 그림과 같이 애플리케이션이 배포되어 실행 중인지 확인하기 위해 애플리케이션 URL을 추출합니다.
그림 8: Cline이 Amazon EKS에 애플리케이션을 성공적으로 배포함
이번 안내에서는 도커를 사용했지만, 사용자들의 다양한 컨테이너 관리 요구사항을 지원하기 위해 Finch MCP 서버도 개발했습니다. Finch는 컨테이너 운영에 대한 안전하고 표준화된 접근 방식을 제공하며, AWS 서비스와 원활하게 통합되는 동시에 강력한 보안 제어를 유지합니다. 이는 다양한 사용자 요구사항을 충족하는 유연한 엔터플라이즈급 솔루션을 제공하려는 우리의 노력을 보여줍니다.
트러블슈팅
EKS MCP 서버가 AI 어시스턴트에게 유용한 컨텍스트를 제공할 수 있는 또 다른 영역은 문제 식별과 해결입니다. MCP 서버의 이식성을 보여주기 위해, 도구와 프롬프트를 위한 MCP 서버를 지원하는 Amazon Q Developer CLI로 전환하겠습니다. Q Developer CLI를 설치한 후, mcp.json 파일을 구성하여 EKS MCP를 추가할 수 있습니다.
CLI가 로드되면 /tools 명령어를 사용하여 추가된 도구들을 확인할 수 있습니다.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ awslabseks_mcp_server (MCP): - awslabseks_mcp_server___add_inline_policy * not trusted - awslabseks_mcp_server___apply_yaml * not trusted - awslabseks_mcp_server___generate_app_manifest * not trusted - awslabseks_mcp_server___get_cloudwatch_logs * not trusted - awslabseks_mcp_server___get_cloudwatch_metrics * not trusted - awslabseks_mcp_server___get_k8s_events * not trusted - awslabseks_mcp_server___get_pod_logs * not trusted - awslabseks_mcp_server___get_policies_for_role * not trusted - awslabseks_mcp_server___list_api_versions * not trusted - awslabseks_mcp_server___list_k8s_resources * not trusted - awslabseks_mcp_server___manage_eks_stacks * not trusted - awslabseks_mcp_server___manage_k8s_resource * not trusted - awslabseks_mcp_server___search_eks_troubleshoot_guide * not trusted
다음으로 EKS MCP가 AI 어시스턴트를 지원할 수 있는 두 가지 시나리오를 살펴보겠습니다.
파드 문제 해결 하기
시작하지 못하는 두 개의 파드(pod)가 있다고 상황을 가정하겠습니다.
AI 어시스턴트에게 트러블슈팅하고, 직접 문제를 해결하도록 요청하겠습니다.
어시스턴트는 이 작업의 여러 부분에서 EKS MCP 서버를 활용할 수 있습니다. 예를 들어, EKS MCP 서버의 get_pod_logs와 get_k8s_events를 각각 사용하여 로그와 이벤트를 검색할 수 있습니다:
그림 9: Amazon Q CLI가 쿠버네티스 이벤트를 가져오기 위해 EKS MCP 도구를 호출하는 모습
다음 그림과 같이 EKS MCP 서버의 manage_k8s_resources를 통해 Deployment 리소스를 업데이트하여 문제를 직접 해결할 수 있습니다.
그림 10: Amazon Q CLI가 쿠버네티스 리소스를 업데이트하기 위해 EKS MCP 도구를 호출하는 모습
마지막으로, 다음 그림과 같이 식별되고 해결된 여러 문제들에 대한 요약을 확인할 수 있습니다.
그림 11: Amazon Q CLI가 트러블슈팅을 진행한 이슈와 해결 방안을 요약하고 있음
인프라 문제 해결 하기
사용자가 Amazon EKS 환경의 문제를 해결할 때는 쿠버네티스 리소스뿐만 아니라 클러스터를 생성하는 데 사용되는 AWS 리소스, 그리고 VPC 네트워킹 및 IAM과 같은 관련 리소스들도 함께 고려해야 합니다.
이번 예시에서는 이전 시나리오와 비슷한 상황에서 시작하지만, 파드들이 Pending 상태로, EKS 워커 노드에 스케줄링될 수 없는 상황입니다.
AI 어시스턴트에게 트러블슈팅을 요청해보겠습니다.
어시스턴트는 이전 시나리오와 유사하게 문제를 진단하기 위해 Deployment와 Pod의 상태를 확인하고 쿠버네티스 이벤트를 조회하는 등의 조치를 취할 것입니다. 그러나 이 경우에는 다음 그림과 같이 EKS MCP 서버의 search_eks_troubleshoot_guide 지식 기반 도구를 활용하여 Amazon EKS 트러블슈팅와 관련된 전문적인 지식을 얻을 수도 있습니다.
그림 12: Amazon EKS 관련 지식을 검색하기 위해 EKS MCP 도구를 호출하는 Amazon Q CLI
Amazon EKS 트러블슈팅 도구는 어시스턴트의 질의에 대해 맞춤형 해결 방안을 제시하며, 추가 리서치에 사용될수 있는 참조 문서도 함께 제공합니다. 그 예시는 다음과 같습니다.
위에 제공된 문서는 어시스턴트가 문제를 파악하고 해결책을 찾는 데 필요한 맥락을 제공합니다. 이 경우에는 다음 그림과 같이 EKS 클러스터에 권한을 제공하는 데 사용되는 IAM 역할과 관련된 문제를 정확하게 식별했습니다.
그림 13: Amazon Q CLI가 식별된 문제점과 해결 단계를 요약하여 제공
결론
오픈 소스 Amazon EKS용 MCP 서버는 사용자들에게 쿠버네티스 환경과 상호작용 할 수 있는 흥미로운 새 방법을 제공합니다.
이 MCP 서버를 사용하면 다음과 같은 작업이 가능합니다.
- AI 기반 가이드를 통한 쿠버네티스 리소스 배포 및 관리
- 대화형 AI를 활용한 EKS 클러스터 문제 해결
컨테이너화된 아키텍처를 계속해서 도입함에 따라, 관리를 간소화하고 인지적 부담을 줄여주는 도구들의 가치가 더욱 증가하고 있습니다. EKS MCP 서버를 통해 Amazon EKS 사용자들이 기대하는 강력한 기능과 유연성을 유지하면서도 쿠버네티스에 더욱 접근하기 쉽게 만들고자 합니다.
AWS에서는 고객 피드백이 로드맵에 깊은 영향을 미칩니다. EKS MCP 서버에 대한 여러분의 경험을 공유해 주시기 바랍니다. 새로운 기능 제안, 문제점 보고, 또는 AI가 더 효과적으로 활용될 수 있는 워크플로우를 제시하는 등 다양한 의견을 환영합니다.
일상적인 개발 패턴, 애로사항, 그리고 자동화나 가이드가 더 필요한 영역에 대한 여러분의 통찰은 이 도구의 미래 기능을 형성하는 데 매우 귀중한 자료가 됩니다. AWSLabs MCP 서버 Github 리포지토리에서 새로운 이슈를 생성하여 피드백을 제공하실 수 있습니다.
EKS MCP 서버 문서를 통해 AI 지원 쿠버네티스 관리의 미래를 함께 만들어가는 여정을 오늘 시작하세요.