Amazon ECS MCP 서버 시작하기 - Amazon Elastic Container Service

Amazon ECS MCP 서버 시작하기

이 가이드에서는 AI 코드 어시스턴트와 함께 Amazon ECS MCP 서버를 설정하고 사용하는 단계를 안내합니다. 환경을 구성하고, 서버에 연결하며, 자연어 상호 작용을 통해 Amazon ECS 클러스터 관리를 시작하는 방법에 대해 알아봅니다.

참고

Amazon ECS MCP 서버는 Amazon ECS 미리 보기 릴리스에 있으므로 변경될 수 있습니다.

사전 조건

시작하기 전에 다음을 갖추었는지 확인하세요.

설정

사전 조건 확인

Python 버전이 3.10 이상인지 확인합니다.

python3 --version

uv 설치 확인

uv --version

AWS CLI 구성 확인

aws configure list

IAM 권한 설정

AWS 서비스에 대한 읽기 전용 요청을 하고 MCP 서버와 상호 작용하려면 IAM 권한이 필요합니다. AWS 관리형 정책을 활용하거나 세분화된 제어를 위해서는 단일 사용자 지정 정책을 활용할 수 있습니다.

옵션 1: 관리형 정책 및 사용자 지정 정책 결합

  1. 모든 AWS 서비스에 대한 읽기 전용 액세스를 위해 AWS 관리형 정책 ReadOnlyAccess 연결

  2. MCP 권한에 대한 추가 사용자 지정 정책 생성 및 연결(아래 MCP 권한 JSON 참조).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "MCPServerAccess", "Effect": "Allow", "Action": [ "ecs-mcp:InvokeReadOnlyTools", "ecs-mcp:UseMcp" ], "Resource": "*" } ] }

옵션 2: 단일 사용자 지정 정책(가장 세분화된 제어)

또는 AWS 서비스 권한과 MCP 권한을 모두 포함하는 단일 사용자 지정 JSON 정책을 생성하고 연결할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "MCPServerAccess", "Effect": "Allow", "Action": [ "ecs-mcp:InvokeReadOnlyTools", "ecs-mcp:UseMcp" ], "Resource": "*" }, { "Sid": "ECSReadOnlyAccess", "Effect": "Allow", "Action": [ "ecs:ListAccountSettings", "ecs:ListClusters", "ecs:ListContainerInstances", "ecs:ListTaskDefinitions", "ecs:ListServices", "ecs:ListServiceDeployments", "ecs:ListTasks", "ecs:DescribeClusters", "ecs:DescribeCapacityProviders", "ecs:DescribeContainerInstances", "ecs:DescribeTaskDefinition", "ecs:DescribeServices", "ecs:DescribeServiceDeployments", "ecs:DescribeServiceRevisions", "ecs:DescribeTaskSets", "ecs:DescribeTasks" ], "Resource": "*" }, { "Sid": "CloudWatchLogsReadOnlyAccess", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:FilterLogEvents" ], "Resource": "*" }, { "Sid": "ELBReadOnlyAccess", "Effect": "Allow", "Action": [ "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners" ], "Resource": "*" }, { "Sid": "EC2ReadOnlyAccess", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeRouteTables", "ec2:DescribeNetworkInterfaces" ], "Resource": "*" }, { "Sid": "ECRReadOnlyAccess", "Effect": "Allow", "Action": [ "ecr:DescribeRepositories", "ecr:DescribeImages" ], "Resource": "*" } ] }

AI 어시스턴트 선택 및 구성

MCP 호환 AI 어시스턴트 또는 MCP 호환 도구를 설치합니다. 예를 들어 Kiro, Cline, Cursor 또는 Claude Code를 사용할 수 있습니다. 그런 다음 Amazon ECS MCP 서버에 대한 안전하고 인증된 액세스에 필요한 AWS용 MCP 프록시를 통해 Amazon ECS MCP 서버를 사용하도록 AI 코드 어시스턴트를 설정합니다. 프록시는 클라이언트 측 브리지 역할을 하여 로컬 AWS 자격 증명을 사용해 AWS SigV4 인증을 처리합니다. 아래 예제에서는 Kiro CLI를 사용합니다. Kiro에서 MCP를 설정하는 방법에 대해 자세히 알아보려면 이 링크를 따라 이동하세요.

MCP 구성 파일 찾기

  • macOS/Linux:

    ~/.kiro/settings/mcp.json
  • (Windows)

    %USERPROFILE%\.kiro\settings\mcp.json

구성 파일이 없는 경우 생성합니다.

MCP 서버 구성 추가

리전({region}) 자리 표시자를 원하는 리전(예: us-west-2)으로 바꿔야 합니다. 전체 리전 목록은 AWS Fargate의 Linux 컨테이너 섹션을 참조하세요. 또한 {profile} 자리 표시자를 AWS CLI 프로파일 이름(예: default)으로 바꿔야 합니다.

Mac/Linux의 경우:

{ "mcpServers": { "ecs-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://ecs-mcp.{region}.api.aws/mcp", "--service", "ecs-mcp", "--profile", "{profile}", "--region", "{region}" ] } } }

Windows의 경우:

{ "mcpServers": { "ecs-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://ecs-mcp.{region}.api.aws/mcp", "--service", "ecs-mcp", "--profile", "{profile}", "--region", "{region}" ] } } }

구성 확인

Kiro CLI를 다시 시작하고(kiro-cli), MCP 서버가 로드되었는지 확인하며(/mcp), 사용 가능한 도구를 확인합니다(/tools).

설정 확인

연결 테스트

AI 어시스턴트에 연결을 확인하기 위한 간단한 질문을 합니다.

List all ECS clusters in my AWS account

Amazon ECS 클러스터 목록이 표시됩니다.

Amazon ECS MCP 서버를 사용하는 AI 어시스턴트와 대화

예제 1: 배포 모니터링

Check deployment status for my web-service in production-cluster Show me the ALB URL for my deployed service Get service events for the last hour

예제 2: 컨테이너 상태 조사

Show me all tasks that failed in the last 2 hours Why are my containers failing health checks? Display container logs for my api-service

예제 3: 장애 문제 해결

Analyze task failures in my production cluster Check for image pull errors in the last 30 minutes Why is my task definition stuck in DELETE_IN_PROGRESS state?

예제 4: 구성 검사

Show me the network configuration for my web-service What security groups are attached to my service? List all VPC and subnet details for my ECS service

일반적인 구성 및 모범 사례

다중 AWS 프로필

여러 AWS 계정으로 작업하는 경우 별도의 MCP 서버 구성을 생성합니다.

Mac/Linux의 경우:

{ "mcpServers": { "ecs-mcp-prod": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://ecs-mcp.{region}.api.aws/mcp", "--service", "ecs-mcp", "--profile", "production", "--region", "us-west-2" ] }, "ecs-mcp-dev": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://ecs-mcp.{region}.api.aws/mcp", "--service", "ecs-mcp", "--profile", "development", "--region", "us-east-1" ] } } }

보안 모범 사례

허용된 입력 메커니즘을 통해 보안 암호 또는 민감한 정보를 전달하지 마세요.

  • 구성 파일에 보안 암호 또는 자격 증명 포함 안 함

  • 프롬프트에서 민감한 정보를 모델에 직접 전달 안 함

  • 태스크 정의 또는 서비스 구성에 보안 암호 포함 안 함

  • 애플리케이션 로그에 민감한 정보 로깅 방지

  • 또는 Parameter Store를 사용하여 민감한 정보 저장

도구 구성

전체 도구 및 구성 목록은 Amazon ECS MCP 서버 도구 구성 섹션을 참조하세요.