
Kiro CLI를 활용한 AWS Well-Architected Review 자동화
요약
Kiro CLI와 AI 에이전트를 활용하여 AWS Well-Architected Review(WAFR) 과정을 자동화하는 방법을 다룹니다. 기존 도구의 한계인 '자기 보고식 답변' 문제를 해결하기 위해 실제 계정 데이터와 주장 내용을 교차 검증하는 자동화된 격차 분석 방식을 제안합니다.
핵심 포인트
- Kiro CLI의 서브에이전트 오케스트레이션을 통한 자동화 구현
- 주장 내용과 실제 계정 데이터 간의 자동화된 격차 분석(Gap Analysis)
- DORA, SOX 등 규제 프레임워크 대응을 위한 재사용 가능한 스캐폴드 구축
- 수동 리뷰의 확장성 문제를 AI 에이전트로 해결
Level 300
클라우드 아키텍트(Cloud Architect)이자 컨설턴트로서, 우리 모두는 다음과 같은 상황을 경험해 보았습니다. 데이터를 수집하고, 이해관계자를 인터뷰하며, AWS 문서를 교차 참조하고, 의미 있는 변화를 이끌어내기에는 너무 늦게 도착하는 보고서를 작성하는 등, 수 주간의 수동 작업이 소요되는 Well-Architected Framework Review (WAFR)를 수행하는 상황 말입니다. 커뮤니티는 훌륭한 도구들로 이에 대응해 왔습니다. WA-Gen-AI는 몇 분 만에 IaC(Infrastructure as Code) 템플릿을 베스트 프랙티스(Best Practices)에 따라 분석하며, Well-Architected IaC Analyzer는 이를 프로덕션 규모로 확장하고, WA GenAI Workshop은 리뷰를 위한 프롬프트 엔지니어링 (Prompt Engineering) 패턴을 가르쳐 줍니다.
하지만 GFT에서 금융 서비스 고객들을 위해 여러 차례 WAFR 프로젝트를 이끌면서, 저는 이러한 도구들이 다루지 못하는 격차를 발견했습니다. 고객이 WA Tool에서 '주장하는' 내용이 실제 계정에서 '실행되고 있는' 내용과 일치하지 않을 때는 어떻게 해야 할까요? 그리고 매번 처음부터 다시 만드는 과정 없이, 6가지 기둥(Pillars), 여러 고객사, 그리고 DORA와 같은 규제 프레임워크(Regulatory Frameworks) 전반에 걸쳐 이러한 검증을 어떻게 확장할 수 있을까요?
그 해답은 **특화된 AI 에이전트 (AI Agents)**를 Kiro CLI의 네이티브 서브에이전트 오케스트레이션 (Subagent Orchestration)과 결합하고, 주장 내용과 실제 계정 데이터를 교차 참조하는 **자동화된 격차 분석 (Automated Gap Analysis)**을 수행하며, 어떤 컨설턴트라도 몇 분 안에 복제하고 구성할 수 있는 **재사용 가능한 스캐폴드 (Reusable Scaffold)**를 결합하는 것에서 찾았습니다.
기존 도구들의 성과를 바탕으로 하면서도, 그동안 부족했던 검증 및 멀티 클라이언트 가속화 레이어를 추가하여 제가 이 접근 방식을 어떻게 구축했는지 탐구해 보시기 바랍니다.
문제점: 수동 평가는 확장성이 없다
전통적인 WAFR 평가는 예측 가능한 패턴을 따릅니다:
- 여러 팀과 워크숍 일정 조율 (2~3주의 기간 소요)
- 각 Pillar(기둥)당 50개 이상의 질문을 수동으로 검토
- 답변이 현실을 반영한다고 신뢰 (스포일러: 그렇지 않은 경우가 많음)
- 보고서가 전달될 시점에는 이미 구식이 되어버린 결과물 생성
- 다음 고객을 위해 이 모든 과정을 처음부터 다시 반복
물론, WA Tool은 커스텀 렌즈(Custom Lenses)를 지원하므로, 자체적인 컴플라이언스 프레임워크(DORA, SOX, 내부 표준 등)를 업로드하여 워크로드(Workload)를 평가할 수 있습니다. 이는 _질문(questions)_의 구조를 잡는 데 매우 강력한 도구입니다. 하지만 근본적인 문제는 여전히 남아 있습니다. 바로 답변이 자기 보고(self-reported) 방식이라는 점입니다. 커스텀 렌즈는 _무엇을 물어볼지_를 알려줄 뿐, 그 답변이 사실인지 여부는 알려주지 않습니다.
은행과 같은 규제 산업(DORA, SOX 컴플라이언스)의 경우, 커스텀 렌즈를 아무리 잘 만들어도 명시된 관행과 실제 구현 사이의 이러한 격차는 감사(Audit)가 발견하기 전까지는 감지되지 않습니다.
생태계: 현재 WAFR을 가속화하는 도구들
이 스캐폴드(Scaffold)를 구축하기 전에 기존 도구들을 평가해 보았습니다. 각 도구는 퍼즐의 조각을 하나씩 해결해 줍니다:
| 도구 | 기능 | 강점 |
|---|---|---|
| WA-Gen-AI / IaC Analyzer | Bedrock을 사용하여 CloudFormation/Terraform 템플릿을 WA 베스트 프랙티스에 따라 분석 | IaC만으로 WA 질문의 약 50%에 답변 가능. re:Invent 2024에서 Commonwealth Bank 사례와 함께 소개됨 |
| ... |
이 도구들은 매우 훌륭하며, 우리가 구축하려는 것과 상호 보완적입니다. 하지만 다음과 같은 차이점이 있습니다:
| 기능 | WA-Gen-AI / IaC Analyzer | WA Tool | 이 스캐폴드 |
|---|---|---|---|
| IaC 템플릿 분석 | ✅ | ❌ | ✅ (MCP를 통해) |
| ... |
WA-Gen-AI는 당신이 배포하고자 의도한(intend) 내용(IaC)을 분석합니다. 우리의 스캐폴드는 실제로 실행 중인(actually running) 내용을 검증하고, 이를 WA Tool에서 당신이 주장한(claimed) 내용과 비교합니다. 이들이 결합되면 설계 시점의 분석(Design-time analysis)과 런타임 검증(Runtime verification)을 모두 아우르는 전체 스펙트럼을 커버할 수 있습니다.
이상적인 결합 워크플로우:
- WA-Gen-AI → 배포 전 IaC 템플릿 분석 (Shift-left)
- WA Tool → 구조화된 설문지와 커스텀 렌즈(Custom lenses)를 통한 공식 검토 수행
- 이 스캐폴드 (This Scaffold) → 실제 계정을 대상으로 주장 검증, Trusted Advisor와 상관관계 분석, 병렬 Pillar 평가 수행, 증거 기반 보고서 생성
솔루션: WAFR 평가 스캐폴드 (WAFR Assessment Scaffold)
저는 포괄적인 WAFR 평가를 수행할 수 있도록 전체 구조, AI 에이전트 설정 및 자동화 도구를 제공하는 **스캐폴드 프로젝트 (scaffold project)**를 제작했습니다. 이를 모든 새로운 평가 업무를 위한 "퀵 스타트 (quick start)"라고 생각하십시오. 프로젝트를 클론(clone)하고 고객사에 맞게 설정하면, 에이전트들이 힘든 작업을 대신 처리해 줄 것입니다.
아키텍처 개요
well-architected-assessment-scaffold/
├── .kiro/
│ ├── agents/ # 7개의 특화된 AI 에이전트 (Pillar당 하나 + 일반 에이전트)
...
핵심 설계 원칙은 **공유 지능을 통한 고객 격리 (client isolation with shared intelligence)**입니다. 모든 고객은 자신만의 데이터 공간을 갖지만, 모든 평가는 동일한 전문가 에이전트와 검증된 방법론을 활용합니다.
사전 요구 사항: AWS CLI 프로필 설정
평가를 실행하기 전에, 대상 계정에 대한 읽기 전용(read-only) 권한이 있는 AWS CLI 프로필이 구성되어 있어야 합니다. 에이전트에게 어떤 프로필을 사용할지 알려주는 방법에는 두 가지가 있습니다.
옵션 1: 프롬프트에 명시 (권장)
가장 간단한 방법으로, 에이전트를 호출할 때 어떤 프로필을 사용할지 알려주는 것입니다:
kiro-cli chat --agent aws-wafr-expert "Conduct a full WAFR assessment for acme-corp. \\
Use AWS profile 'acme-corp-readonly' for all AWS operations. \\
Region: us-east-1."
aws 도구는 모든 호출 시 profile_name 파라미터를 허용하므로, 에이전트는 세션 전체의 모든 AWS CLI 상호작용에 이를 사용하게 됩니다.
옵션 2: MCP 서버 환경 변수에 설정
AWS(CloudWatch, IAM 등)에 직접 연결되는 MCP 서버의 경우, 에이전트 설정(agent config)에 프로필을 설정하십시오:
"env": {
"AWS_PROFILE": "acme-corp-readonly",
"AWS_REGION": "us-east-1"
...
클라이언트 프로필 문서화 (Client profile documentation)
스캐폴드(Scaffold)는 각 클라이언트의 AWS 액세스 정보를 기록할 수 있는 위치를 제공합니다:
clients/acme-corp/config/aws/
└── profiles.ini # 클라이언트 AWS 프로필 이름, 역할 ARN, 리전(region)
필요한 최소 IAM 권한
평가 역할(assessment role)에는 읽기 전용(read-only) 액세스 권한이 필요합니다:
ReadOnlyAccess관리형 정책 (광범위한 커버리지)support:DescribeTrustedAdvisor*(Trusted Advisor — Business Support 플랜 필요)wellarchitected:Get*,wellarchitected:List*(Well-Architected Tool API)ce:GetCost*,ce:GetDimensionValues,ce:GetTags(Cost Explorer)
보안 참고 사항: 평가를 위해 관리자(admin) 자격 증명을 절대 사용하지 마십시오. 전용 읽기 전용 역할을 생성하십시오. 에이전트는 계정 상태를 '읽기'만 하면 되며, 수정할 필요는 없습니다.
실습 (Hands On)
코드로 들어가 봅시다. 👽
스캐폴드 설정 (Setting Up the Scaffold)
velez94 / aws_well_architected_assement_scaffold
AI와 인간이 루프에 참여하는 (Human on the loop) Well-Architected 평가 스캐폴드
Well-Architected 평가 스캐폴드 (Well-Architected Assessment Scaffold)
이 프로젝트는 AWS Well-Architected Framework 리뷰(WAFR)를 위한 스캐폴드/템플릿 프로젝트입니다. 새로운 평가 프로젝트를 빠르게 시작할 수 있도록 필수적인 Kiro AI 설정과 샘플 클라이언트 구조를 포함하고 있습니다.
포함된 내용
.kiro/ - Kiro AI 설정
Well-Architected 평가를 수행하기 위한 모든 AI 에이전트 설정 및 프롬프트(prompts)를 포함합니다:
-
agents/ - 각 기둥(pillar)별 전문 AI 에이전트:
aws-wafr-expert.json- 일반 WAFR 전문가aws-cost-exp.json- 비용 최적화 (Cost Optimization) 기둥aws-security-expert.json- 보안 (Security) 기둥aws-reliability-expert.json- 안정성 (Reliability) 기둥aws-performance-expert.json- 성능 효율성 (Performance Efficiency) 기둥aws-opex-expert.json- 운영 우수성 (Operational Excellence) 기둥aws-sustainability-expert.json- 지속 가능성 (Sustainability) 기둥
-
prompts/ - 각 기둥별 검토 프롬프트:
general-wafr-review.mdcost-optimization-review.mdsecurity-pillar-review.mdreliability-pillar-review.mdperformance-pillar-review.mdoperational-excellence-review.mdsustainability-pillar-review.md
-
steering/ - 프로젝트 가이드 문서:
product.md- 제품 요구사항 (Product requirements)structure.md- 프로젝트 구조 지침 (Project structure guidelines)tech.md- 기술 사양 (Technical specifications)
config/ - 프로젝트 설정
- assessment/ - 평가 설정 파일:
pillars.yaml- Well-Architected 기둥 정의
docs/ - 문서화
평가 프레임워크에 대한 포괄적인 문서:
- wafr/ -
클론 및 클라이언트 설정을 시작하세요:
git clone https://github.com/velez94/aws_well_architected_assement_scaffold.git my-client-assessment
cd my-client-assessment
mv clients/acme-retail clients/acme-corp
에이전트 아키텍처 (The Agent Architecture)
각 WAFR 기둥은 전문 지식과 MCP 통합 기능을 갖춘 전용 Kiro CLI 에이전트를 가지고 있습니다. 여기 보안 전문가 설정입니다:
{
"name": "aws-security-expert",
"description": "AWS WAFR 보안 기둥 전문가",
...
각 에이전트는 문서, IAM 분석, 보안 결과(security findings) 및 모니터링 데이터에 대한 실시간 액세스를 제공하는 특정 AWS MCP 서버에 연결됩니다. 환각(hallucinations) 없이 오직 사실만을 다룹니다.
전체 에이전트 목록:
| 에이전트 | 기둥 (Pillar) | 가중치 | MCP 통합 |
|---|---|---|---|
aws-security-expert | 보안 (Security) | 25% | IAM, WA 보안, CloudWatch, 문서 |
| ... |
Kiro 서브에이전트(Subagents)를 통한 네이티브 오케스트레이션 (Native Orchestration)
이 지점이 바로 Kiro CLI가 빛을 발하는 부분입니다. 내장된 서브에이전트 시스템은 병렬 단계(parallel stages), 의존성(dependencies) 및 통합된 결과(consolidated results)를 갖춘 DAG(Directed Acyclic Graph) 기반의 파이프라인 실행을 제공합니다. 각 기둥(pillar) 에이전트는 독립적인 단계로 실행되며, 최종 통합 단계에서 모든 것을 병합합니다.
# 6개의 모든 기둥 평가가 병렬(PARALLEL)로 실행된 후 통합됩니다
kiro-cli chat --agent aws-wafr-expert "acme-corp에 대해 모든 기둥에 걸친 전체 WAFR 평가를 수행하십시오. clients/acme-corp/inputs/에 있는 클라이언트 입력을 사용하고 실제 AWS 계정 결과와 교차 참조하십시오. 격차 분석(gap analysis), 위험 등급(risk ratings) 및 우선순위가 지정된 조치 로드맵(remediation roadmap)이 포함된 통합 보고서를 생성하십시오."
내부적으로 Kiro의 서브에이전트 파이프라인은 이를 DAG로 조정합니다:
| 단계 (Stage) | 에이전트 | 실행 방식 |
|---|---|---|
| 보안 평가 (Security assessment) | aws-security-expert | 병렬 (Parallel) |
| ... |
이것이 중요한 이유: 전통적인 방식은 오케스트레이션 코드를 직접 구축 및 유지 관리하고, 실패를 처리하며, 상태(state)를 관리하고, 출력을 조정해야 합니다. Kiro 서브에이전트를 사용하면 인프라 자체가 오케스트레이터가 됩니다. 여러분은 배관 작업(plumbing)이 아니라 프롬프트와 에이전트 설정 내의 평가 로직에 집중할 수 있습니다.
서브에이전트가 트리거되는 방식
프롬프트 내에서 파이프라인을 수동으로 정의할 필요가 없습니다. aws-wafr-expert 에이전트는 subagent 도구에 접근할 수 있으며, 자신의 프롬프트(4단계 방법론)를 통해 다중 기둥(multi-pillar) 평가를 위임해야 함을 이해하고 있습니다. 사용자가 "6개 기둥 모두를 평가하라"와 같은 작업을 부여하면, 에이전트는 내부적으로 다음과 같이 DAG(Directed Acyclic Graph)를 구성합니다:
{
"task": "acme-corp를 위한 전체 WAFR 평가",
"stages": [
...
각 서브에이전트(subagent)는 다음과 같이 동작합니다:
- **자신만의 에이전트 설정 (own agent config)**을 로드합니다 (자신만의 MCP 서버, 도구, 프롬프트 포함)
- **격리된 세션 (isolated session)**에서 실행됩니다 (기둥 간의 교차 오염 방지)
- 완료 시 **요약 도구 (summary tool)**를 통해 결과를 다시 보고합니다
- TUI에서
Ctrl+G를 사용하여 실시간으로 모니터링할 수 있습니다
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기