Amazon RDS for SQL Server 의 deadlock·blocking 진단을 사람이 매번 T-SQL 스크립트로 돌리던 일을, Strands Agents 와 Amazon Bedrock AgentCore 로 자동화한 사례를 다룬다. 기존 진단 쿼리를 Python @tool 로 감싸고 LLM 추론·메모리를 붙여, DBA 가 자연어로 묻고 SNS 보고서까지 받는 에이전트를 구축한다.
핵심 포인트- Strands Agents 가 T-SQL 진단 쿼리를 Python @tool 로 래핑하고, Bedrock AgentCore 가 VPC 배포·스케일링·관찰성을 맡는 3계층 구조다.
- deadlock 은 system_health 확장 이벤트(XE)에서, blocking 은 DMV 재귀 CTE 로 head blocker·체인 레벨을 뽑는다.
- 시스템 프롬프트로 "증상부터 시작"을 강제해 모든 도구를 무작정 호출하지 않게 했다.
- AgentCore Memory 로 세션 간 반복 패턴을 학습시켜 일회성 조사의 한계를 넘는다.
- SQL injection 방지로 f-string 대신 매개변수화 쿼리를 쓰고, 진단 정확도를 위해 temperature 0.3 을 둔다.
상세 정리- 문제: RDS SQL Server 운영에서 deadlock(오류 1205)과 blocking(타임아웃)을 진단하려면 세션 ID·SQL·락 유형·head blocker 를 매번 수동 쿼리로 찾아야 했다.
- 3계층: 에이전트 프레임워크 Strands Agents, 런타임 관리 Bedrock AgentCore, 세션 간 학습용 AgentCore Memory 로 구성한다.
- 5개 도구: get_deadlock_graphs(시간 범위), get_blocking_chains, get_session_details, get_blocked_process_reports, send_diagnostic_report 를 @tool 로 정의한다.
- deadlock 수집: trace flag 1204/1222 를 켜고 system_health 세션이 자동 캡처한 xml_deadlock_report 를 fn_xe_file_target_read_file 로 읽는다.
- blocking 분석: sys.dm_exec_requests 등 DMV 를 재귀 CTE 로 묶어 blocking_session_id=0 을 앵커로 head blocker 부터 chain_level 순으로 계층을 푼다.
- blocked_process_report: 과거 blocking 을 잡으려면 blocked_process_threshold 를 설정한 사용자 정의 XE 세션이 필요하다.
- 에이전트 정의: BedrockModel(temperature 0.3)에 시스템 프롬프트로 증상 우선·오류 코드별 도구 선택·심각도(Critical/Warning/Info)+권장사항 출력을 지시한다.
- 배포: agentcore configure/deploy 로 VPC 프라이빗 서브넷 2개와 보안 그룹(1433 포트)에 올리고, 실행 역할에 Bedrock·Secrets Manager·SNS·CloudWatch Logs 권한을 준다.
- 동작 흐름: DBA 프롬프트 → LLM 이 deadlock 그래프 수집·XML 파싱 → 세션 상세·blocking 체인 확인 → 근본 원인 분석 → SNS 보고서 발송 순으로 돈다.
- 실제 출력: "Suppliers vs Employees 반대 락 순서"로 인한 deadlock 1건을 WARNING 으로 분류하고 일관된 락 순서·READ_COMMITTED_SNAPSHOT 을 권장했다.
- 메모리: semantic 전략은 반복 패턴(특정 테이블 교착 재발)을, summary 전략은 조사 세션 요약을 보존하고 CPU 같은 일시 메트릭은 제외하며 보관은 30일이다.
- 함정: DMV 만으론 과거 데이터가 없어 XE 조합이 필요하고, 시스템 프롬프트 없이는 에이전트가 모든 쿼리를 한꺼번에 던지며, 기본 IAM 역할로는 배포가 안 된다.
왜 읽나RDS SQL Server 의 반복적 deadlock·blocking 진단을 LLM 에이전트로 자동화하려는 DBA·플랫폼 엔지니어에게, 도구 설계부터 VPC 배포·메모리까지의 레퍼런스.