23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
Amazon Q Developer CLI 발표 (2025년 3월 6일) Amazon은 CLI 환경 내에서 더 역동적인 대화 기능을 제공하는 향상된 CLI 에이전트를 발표했습니다.[1]
한국 블로그에서는 "번개처럼 빠른 AI 코딩 경험"제목으로 CLI 에이전트 기능과 특징을 소개해 주었습니다.[2]
주요 기능으로는 AI 대화형 명령 실행이 가능하여 아래처럼 자연어로 명령을 내리면 Q CLI가 자동으로 해당 명령어를 생성하고 실행합니다.
q chat "S3 버킷 목록 보여줘"
실제로는 AWS CLI 명령(aws s3 ls)으로 변환 후 실행합니다.
MCP를 지원해서 Q CLI에 tool로써 여러 기능들을 등록할 수가 있고 기본 기능으로 파일 읽기, 쓰기를 지원합니다.
다양한 도구는 EC2, Cloudwatch, S3 등 AWS의 리소스에 다양한 관리를 도와줍니다.
AI 모델로 Anthropic Claude 3.7 모델을 기반으로 하고 있고 4버전도 지원하고 있습니다.
이런 AI 툴의 쉬운 접근성은 LLM 도구가 운영환경 자동화로 사용될 수 있는 환경을 만들어 주었습니다.
그리하여 Q CLI를 활용하여 AWS DB 운영 업무 중 자동화 할 수 있는 영역을 검토하고 루틴하면서도 반드시 해야 하는 업무들을 접목시켜 보았습니다.
현실에서 AWS DB의 운영 업무에 어려움은 다양한 메트릭을 종합적으로 점검해야 하고 보안에 더 엄격하기 때문에 서버 접속 부터 상대적으로 어려운 경향이 있습니다.
또한 업무 특성 상 장애 원인 분석에 많은 시간이 소요되고 장애 예방을 위해서 어떠한 조치들을 해야 할지 사전적으로 나열하기 어려운 점이 있습니다.
그래서 Q CLI를 통해서 상태 점검 및 장애 예방 분석을 하기 위한 자료들을 수집/점검/분석까지 수행하는 툴을 만들어 보고자 했습니다.
전체 구성은 아래와 같이 구성하였습니다.
Q CLI에게 RDS일일점검을 요청하게 하고 이 때 Q CLI에 기본 MCP aws-use와 knowledge, CloudwatchMCP를 연동해 주었습니다.
그리고 Q CLI가 생성한 리포트 파일을 자동으로 저희가 관리하는 Confluence 페이지에 기록하게 구성하였습니다.
각 구성요소를 어떻게 구성 했는지, 구성하는 과정의 유의사항 등을 포함해서 전달드립니다.
당연히 Q CLI를 먼저 설치해 줘야 합니다. 공식 문서[3]를 참고하면 설치 가능합니다.
현재 최신 버전은 1.18.1[4] 이나 한달 이내에 주기적으로 빈번하게 릴리즈가 나오고 있습니다.
아직 초기 단계라고 생각이 되고 종종 CPU를 과도하게 사용하는 현상도 발생하고 명령줄 인터페이스 명령도 자주 추가되고 있습니다.
q chat 명령을 입력하면 Q CLI에 접속이 가능합니다.
Q CLI 는 Rust 기반으로 개발된 도구입니다.
여기에 MCP서버, 곧 외부 도구를 통합할 수 있는데, 이 때, MCP 서버는 다양한 언어로 작성될 수 있으며 그 중 하나가node.js입니다.
MCP 서버를 Node.js로 작성한 경우 CLI에서 MCP와 통신하기 위해 Node.js 런타임 필요합니다.
또한 일부 MCP 클라이언트/툴이나 스크립트가 Python 기반일 수 있습니다.
이 때 Python 패키지 충돌이나 버전 문제를 방지하려면 가상환경 사용이 유리한데, MCP 연동시 uv를 자주 사용하여 이를 추가 설치가 필요합니다.
Q CLI에는 MCP를 연동할 수 있습니다. MCP는 간단히 LLM 모델이 사용할 수 있는 도구라고 보면 되는데요.
기본적으로 제공되는 tools을 확인하기 위해서는 /tools 명령을 수행하면 됩니다.
Built-in tool로 file system에 read/write 가 있고, use_aws가 자주 쓰입니다.
fs_read/fs_write는 현재 Q CLI를 수행하고 있는 서버에 파일 시스템을 읽고 쓸 수 있는 기능입니다.
use_aws는 현재 서버에서 갖고 있는 권한 기반 aws cli를 수행하여 aws 에 대한 정보를 획득할 수 있는 도구입니다.
이 외에도 MCP 서버를 추가할 수 있는데, 추가는 파일에 정의하고 Q CLI를 수행시 로드하게 됩니다.
MCP 설정 파일 위치:
전역 설정: ~/.aws/amazonq/mcp.json (모든 워크스페이스에 적용)
로컬 설정: .amazonq/mcp.json (현재 워크스페이스에만 적용)
2가지 MCP 서버를 추가했는데요.
첫 번째 AWS Knowledge MCP Server[5][6]는 최신 AWS 문서, 코드 샘플, API의 지역별 가용성 정보 등을 제공하는 완전 관리형 원격 MCP 서버로
이 서버는 인증이 필요 없으며 AWS 계정 없이도 무료로 사용 가능합니다. 이 후에 agent별로도 mcp 설정을 할 수도 있습니다.
설정 방법:
~/.aws/amazonq/mcp.json 파일에 다음 내용을 추가하세요:
{
"mcpServers": {
"aws-knowledge-mcp-server": {
"url": "https://knowledge-mcp.global.api.aws",
"type": "http"
}
}
}이 때, 아래와 같이 mcp 서버가 연동이 되지 않는 경우도 있는데,
이런 경우 fastmcp를 프록시 역할을 하게 하여 자신과 fastmcp간에서는 stdio통신을 하고 그 이후 HTTP통신을 하게 구성할 수도 있습니다.
문제: MCP 서버가 초기화 과정에서 연결이 끊김 (HTTP transport 문제)
대안 방법 (fastmcp 프록시 사용):
{
"mcpServers": {
"aws-knowledge-mcp-server": {
"command": "uvx",
"args": ["fastmcp", "run", "https://knowledge-mcp.global.api.aws"]
}
}
}정상적으로 연동이 되면 /tools, /mcp 등 Q CLI에서 확인할 수 있습니다.
또 다른 MCP 서버로는 Cloudwatch 관련 MCP 입니다.
운영 점검을 할 때에는 기본적으로 Cloudwatch를 통해서 다양한 메트릭, 로그, 리소스 현황, 이벤트, 알람등을 확인하게 됩니다.
CloudWatch용 MCP 서버는 여러 옵션이 있습니다. 먼저 확인되는 Cloudwatch관련 MCP는 AWS Labs의 Log Analyzer[7]입니다.
옵션 1: AWS Labs Log Analyzer (공식 추천), 로그 분석에 중점
이 MCP 서버는 AI 어시스턴트가 AWS CloudWatch Logs에 액세스하여 분석, 검색, 상관관계 분석을 수행합니다.
저의 경우 이를 설치 후 최종적으로는 이게 아닌, 기본적인 Cloudwatch를 사용했는데, 로그 기반 분석이 필요할 경우 우선 이 MCP도 활용 가능합니다.
# 저장소 클론
git clone https://github.com/awslabs/Log-Analyzer-with-MCP.git
cd Log-Analyzer-with-MCP
# 가상 환경 생성 및 의존성 설치
uv sync
source .venv/bin/activate # Windows: .venv\Scripts\activate
~/.aws/amazonq/mcp.json에 추가:
json
{
"mcpServers": {
"aws-cloudwatch-logs": {
"command": "uv",
"args": [
"--directory",
"/path/to/Log-Analyzer-with-MCP",
"run",
"server.py"
],
"env": {
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
}
}
}
}2개 MCP 서버 연동
Cloudwatch metrics MCP 서버의 경우는 로그와 메트릭 따로 연결할 필요 없이 하나의 통합 Cloudwatch MCP 서버를 제공해줍니다.
저는 이걸 택해서 구성했습니다.
2개의 MCP 서버가 있음을 주의해서 봐주세요.
{
"mcpServers": {
"aws-knowledge-mcp-server": {
"command": "uvx",
"args": ["fastmcp", "run", "https://knowledge-mcp.global.api.aws"]
},
"awslabs.cloudwatch-mcp-server": {
"command": "uvx",
"args": ["awslabs.cloudwatch-mcp-server@latest"],
"env": {
"AWS_REGION": "ap-northeast-2",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
}설정 후 구성 확인 및 간단한 테스트를 해 보았습니다.
AWS Q CLI 재시작:
q restart
q chat
로드된 MCP 서버 확인:
/tools
테스트 질문 예시:
# AWS Knowledge 서버 테스트
"AWS Lambda의 최신 기능에 대해 알려줘"cloudwatch log group을 잘 조회하는지 테스트를 해보았습니다.(보안상 일부 화면을 가렸습니다.)
Q CLI가 아직은 안정적이지 않다고 느꼈던 부분은 위 구성을 하면서 CPU가 100% 된 적도 자주 있었고, MCP 연동 과정중에 HTTP connection이 실패 하는 경우도 종종 있었습니다.
또한 이 툴 자체에서 다양한 외부 AWS 도메인을 연동하기 때문에 해당 연동을 할 때마다 도메인 베이스의 SG 정책 연결을 해 줘야 했습니다.
설정에 문제가 있는 경우, AWS Q CLI 시작 시 오류 메시지가 표시되며, $TMPDIR/qlog 디렉토리에서 상세한 로그를 확인할 수 있습니다.
Q_LOG_LEVEL 환경 변수를 trace, debug, info, warn으로 설정하여 디버그 출력을 조정 할 수 있습니다.
이제 Q CLI 환경 구성이 되었고 이 위에 자동화 관점에서 agent를 구성합니다.
DB 전문가라는 역할을 주고 이에 맞게끔 지시문을 작성하여 context에 넣어 줍니다.
그리고 이 context를 보유하고 있는 agent를 만듭니다. agent는 위에서 구성한 MCP를 동일하게 갖게 하였습니다.
db-expert agent 생성
/agent create -name db-expert
위 와같이 수행하면 해당 agent가 갖어야 할 tools, mcp, context를 지정해 줄 수 있습니다.
저의 목적은 db 전문가가 일일점검을 자동으로 해주는 것이어서 이에 대한 내용을 아래와 같이 구성하였습니다.
{
"name": "db-expert",
"description": "You are a top-tier AWS Database and DevOps expert with proactive problem-solving capabilities. Your core competency goes beyond merely listing metrics; it involves finding tangible clues within the data—such as specific version information and configuration values—actively investigating and verifying the root causes of potential issues, and then presenting immediately actionable solutions. You deliver diagnoses based on clear data, not abstract recommendations.",
"prompt": "Generate a daily RDS monitoring report by comprehensively analyzing the 9 specified key items. The report must include specific figures and version information for comparison with the previous day, and if anomalies are found, you must directly verify the proposed solutions and explicitly state the results.",
"mcpServers": {
"aws-knowledge-mcp-server": {
"command": "uvx",
"args": ["fastmcp", "run", "https://knowledge-mcp.global.api.aws"]
},
"awslabs.cloudwatch-mcp-server": {
"command": "uvx",
"args": ["awslabs.cloudwatch-mcp-server@latest"],
"env": {
"AWS_REGION": "ap-northeast-2",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
},
"tools": [
"fs_read",
"fs_write",
"use_aws"
],
"toolAliases": {},
"allowedTools": [
"fs_read",
"fs_write",
"use_aws"
],
"resources": [
"file://~/.amazonq/knowledge/daily-report.md"
]마지막 줄에 보면 resources로 daily-report.md 파일을 주고 이를 참고해서 일일 리포트를 생성하고 이를 confluence에 등록하려고 합니다.
다음은 daily-report.md파일입니다.
RDS 일일 진단 리포트 생성
역할
AWS RDS/DevOps 전문가. 데이터 기반 문제 진단 및 실행 가능한 솔루션 제시.
목표
ap-northeast-2 리전의 **모든** RDS 인스턴스에 대한 일일 기술 분석 리포트 생성 (KST 기준).
권한 문제가 있으면 **use-aws tool 활용** cloudwatch나 performance insight, Personal Health Dashboard는 use-aws를 우선적으로 사용
필수 분석 항목 (8가지)
1. CloudWatch Metrics: CPU, Memory, IOPS, FreeStorageSpace
2. CloudWatch Logs: Error logs, Slow query logs
3. RDS Events: 재시작, failover, 파라미터 변경
4. Performance Insights: DB Load, wait events, top SQL
5. Database Insights: Top SQL 상세 분석
6. RDS Recommendations: 인스턴스 클래스, 스토리지, 버전 업그레이드
7. Pending Maintenance: 예정된 유지보수
8. Personal Health Dashboard: 리전/계정 이벤트 (90일 전부터 조회)
9. Regional availability: **aws-knowldege-mcp-server aws___get_regional_availability tool 사용** 가용성 체크, 하나의 클러스터에서 서울 A zone, 서울 C zone으로 분리 되어 있는지 체크
# Health API 호출 예시
START_TIME=$(date -u -v-90d '+%Y-%m-%dT%H:%M:%SZ')
aws health describe-events --region us-east-1 --filter "{
\"eventStatusCodes\": [\"open\", \"upcoming\", \"closed\"],
\"regions\": [\"ap-northeast-2\"],
\"startTimes\": [{\"from\": \"$START_TIME\"}]
}"
핵심 규칙
1. 완전성: 9개 항목 모두 포함 여부 최종 확인
2. 검증 원칙: 권장사항 발견 시 직접 실행 후 결과 기록 ("현재 상태: ...")
3. 구체성: 추상적 표현 금지, 수치 기반 분석
4. 전일 비교: 구체적 수치 변화 명시 (YYYY-MM-DD-1 기준)
5. Health 상세 조사: 이벤트 발견 시 describe-event-details로 영향 분석
출력 형식
파일명: rds_daily_report_<YYYY-MM-DD>.md
# RDS Daily Report (<YYYY-MM-DD>)
## 1. 요약
- **상태**: Normal/Warning/Critical
- **핵심 발견사항**: [요약]
- **전일 대비 변화**: [요약]
## 2. 상세 분석
### 2.1 CloudWatch Metrics
- **Instance**: [ID]
- **CPU**: [현재] (전일: [값]) - [CloudWatch URL]
- **Memory**: [현재] (전일: [값]) - [URL]
- **IOPS**: [현재] (전일: [값]) - [URL]
- **Storage**: [현재] (전일: [값]) - [URL]
- **분석**: [해석]
### 2.2 CloudWatch Logs
[Error/Slow query 분석]
**awslabs.cloudwatch-mcp-server get_active_alarms get_alarm_history** 통해서도 확인
### 2.3 RDS Events
[주요 이벤트 영향 분석]
### 2.4 CloudTrail
[보안/설정 변경 분석]
### 2.5 Performance Insights
- **DB Load**: [분석]
- **Top Wait Events**: [분석]
- **Top SQL**: [분석]
### 2.6 Database Insights
[Top SQL 심층 분석]
### 2.7 RDS Recommendations
[AWS 권장사항]
### 2.8 Pending Maintenance
[유지보수 일정]
### 2.9 Health Dashboard
- 최근 30일 RDS 관련 이벤트 (ACCOUNT_SPECIFIC, PUBLIC)
- Lifecycle 이벤트 상세
- EOL 일정 및 자동 업그레이드 계획
## 3. 이슈 & 권장사항
### Issue #[N]: [요약]
- **aws-knowledge-mcp-server** tool 활용해서 인사이트가 있다면 도출
- **증상**: [구체적 설명]
- **원인**: [aws-knowledge-mcp-server 분석 결과]
- **권장 조치**: [실행 가능한 액션]
- **검증 결과**: [직접 확인한 현재 설정/버전 등 구체적 사실]이를 수행하는 cron에 등록하여 매일 일일 리포트를 생성하게 하고 이 파일을 confluence에 전달하게 하였습니다.
아래는 confluence에 생성된 일일 리포트의 일부입니다.(보안상 리소스가 표기되는 내용이나 지적사항은 제외했습니다. ^^;)
LLM 도구가 이제는 CloudOps에도 쉽게 사용될 수 있는 환경이 오는 것 같습니다.
RDS 뿐 아니라 EC2, S3, EKS등 다양한 리소스에 대한 그 특징에 맞게 맞춤형 Agent를 제작하여 일일점검 및 더 나아가 장애 분석 / 처리도 가능할 것으로 생각됩니다.
긴 글 읽어 주셔서 감사합니다.
[1] Amazon Q Developer, 명령줄에서 새로운 CLI 에이전트 발표, AWS, 2025-03-06, https://aws.amazon.com/ko/about-aws/whats-new/2025/03/amazon-q-developer-cli-agent-command-line/?utm_source=chatgpt.com
[2] Amazon Q Developer CLI를 통해 번개처럼 빠른 AI 코딩을 경험해 보세요!, AWS, 02 4월 2025, https://aws.amazon.com/ko/blogs/korea/introducing-the-enhanced-command-line-interface-in-amazon-q-developer/?utm_source=chatgpt.com
[3] 명령줄용 Amazon Q 설치, AWS, 2025, https://docs.aws.amazon.com/ko_kr/amazonq/latest/qdeveloper-ug/command-line-installing.html
[4] amazon-q-developer-cli github, AWS, 2025, https://github.com/aws/amazon-q-developer-cli/releases
[5] AWS Knowledge MCP Server, AWS, xxxx, https://awslabs.github.io/mcp/servers/aws-knowledge-mcp-server
[6] AWS Knowledge MCP Server now generally available, AWS, Oct 1, 2025, https://aws.amazon.com/ko/about-aws/whats-new/2025/10/aws-knowledge-mcp-server-generally-available/
[7] Log Analyzer with MCP - GitHub, https://github.com/awslabs/Log-Analyzer-with-MCP
[8] Configuring Model Context Protocol (MCP) with Amazon Q CLI - DEV Community, https://dev.to/aws/configuring-model-context-protocol-mcp-with-amazon-q-cli-e80
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.