Kiro로 RDS/Aurora 장애 분석 자동화하고, 매일 아침 보고서를 받아보세요!
Kiro CLI와 Amazon EC2를 활용하여 Amazon RDS/Aurora 점검 보고서를 자동 생성하는 KIDA(Kiro Database Analyzer) 구축
IAM Role 설정, EC2 인스턴스 준비, Kiro CLI 및 MCP 서버 설치를 포함한 전체 모니터링 파이프라인 구성
Amazon SES를 통한 이메일 발송 및 Slack Workflow Webhook을 활용한 알림 전송
S3 Presigned URL을 통해 보고서 접근 권한을 관리하며, 7일 유효 기간 설정
자동 실행 스크립트 및 crontab 설정을 제공하여 자동화된 보고서 수신 환경 구축
KIDA 아키텍처: 자동 보고서 파이프라인
본 글은 Kiro CLI, MCP 서버, Amazon EC2, S3, SES, Slack Workflow Webhook을 조합하여 RDS/Aurora 점검 보고서를 자동화하는 KIDA(Kiro Database Analyzer) 아키텍처를 제시한다.
Kiro CLI는 데이터베이스(Database) 점검 결과를 분석하여 Tailwind CSS 기반 HTML 보고서를 생성
Amazon S3에 보고서를 업로드하고, Presigned URL을 생성하여 접근 권한 관리
Amazon SES를 통해 이메일 발송, Slack Workflow Webhook을 통해 Slack 알림 전송
이러한 구성은 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 보안성을 강화하고, 자동화된 보고서 수신을 가능하게 한다.
IAM Role 및 권한 설정
KIDA 솔루션의 핵심은 EC2 인스턴스에 부여된 IAM Role(KidaEC2Role)의 권한 설정이다. 이 권한 설정은 데이터베이스(Database) 정보 접근, S3 버킷(Bucket) 접근, 알림 전송을 위해 필수적이다.
RDSReadOnly: RDS 관련 정보 조회 권한 부여 (rds:Describe*, rds:ListTagsForResource, pi:GetResourceMetrics, pi:DescribeDimensionKeys)
CloudWatchReadOnly: CloudWatch 관련 정보 조회 권한 부여 (cloudwatch:GetMetricStatistics, cloudwatch:ListMetrics, logs:FilterLogEvents, logs:GetLogEvents)
S3ReportUpload: S3 버킷에 보고서 업로드 및 접근 권한 부여 (s3:PutObject, s3:GetObject)
NotificationServices: SES 및 SNS를 통한 알림 전송 권한 부여 (ses:SendEmail, ses:SendRawEmail, sns:Publish)
최소 권한 부여 원칙**을 준수하여 프로덕션 환경에서는 리소스 ARN을 특정하는 것이 권장된다.
EC2 인스턴스 및 Kiro CLI 설치
자동 보고서 생성을 위한 EC2 인스턴스 설정 및 Kiro CLI 설치 과정은 다음과 같다.
EC2 인스턴스 생성: Amazon Linux 2023 AMI, t3.small 인스턴스 타입, KidaEC2Role IAM Role, kida-cron 태그 설정
Kiro CLI 설치: curl 명령어를 사용하여 Kiro CLI 설치
MCP 서버 설정: uvx 설치 후, Kiro CLI 로그인 및 MCP 서버 설정
S3 Presigned URL: 보고서는 S3에 업로드되며, 7일 유효기간의 Presigned URL을 통해 접근
이러한 과정을 통해 EC2 인스턴스에서 Kiro CLI를 실행하고, 데이터베이스(Database) 점검 보고서를 생성할 수 있다.
알림 채널별 구성: SES vs Slack
KIDA는 SES 이메일과 Slack Workflow Webhook을 통해 보고서를 전송한다. 두 방식 모두 S3에 업로드된 보고서의 Presigned URL을 활용한다.
SES 이메일: Amazon SES를 사용하여 HTML 형식의 이메일 발송. 보고서 링크를 이메일 본문에 포함
Slack Workflow Webhook: Slack Workflow Builder를 사용하여 Slack 채널에 보고서 링크 자동 포스팅
공통 파이프라인: Kiro CLI (HTML 보고서 생성) → aws s3 cp (S3 업로드) → aws s3 presign (Presigned URL 생성) → 알림 발송
SES는 간단한 설정이 장점이며, Slack은 팀 협업에 유용하다.
자동 실행 스크립트 및 Crontab 설정
자동 보고서 생성을 위한 핵심은 자동 실행 스크립트(kida-daily-cron.sh)와 Crontab 설정이다.
자동 실행 스크립트: Kiro CLI를 실행하여 보고서를 생성하고, S3에 업로드 후 Presigned URL을 생성하여 SES 이메일 또는 Slack 알림 전송
Crontab 설정: 매일 00:00 UTC (09:00 KST)에 스크립트 실행
스크립트 구성 요소: 클러스터 정보, S3 버킷, AWS 리전, 이메일 주소, Slack Webhook URL 등 설정
이러한 설정을 통해 매일 아침 자동으로 RDS/Aurora 점검 보고서를 받아볼 수 있다.