[reinvent 2025] 데이터베이스 성능 모니터링 심화 분석
Summary
실제 운영환경에서 흔히 발생하는 성능 저하와 세션·락 경합 사례를 바탕으로, Aurora PostgreSQL에서 Database Insights로 문제를 분석하는 과정을 시연한 세션입니다.
DB Load, 실행 계획, 세션 대기 흐름을 단계적으로 추적하며 장애 원인을 식별하는 실전형 모니터링 접근법이 소개되었습니다.
리인벤트 2025 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며

이번 세션은 Amazon Aurora PostgreSQL을 중심으로 실제 운영 환경에서 발생할 수 있는 성능 문제를 Database Insights로 어떻게 분석하고 해결할 수 있는지를 다룬 세션으로 Chalk Talk 형식으로 진행되었습니다.
DB Load 분석, 실행 계획 비교, 이슈 탐지, 세션·락 경합 분석 등 주요 진단 기능이 단계별로 시연되었으며, 참가자들의 질의응답을 통해 다양한 실전 사례도 함께 소개되었습니다.
성능 이상 탐지 및 초기 분석


성능 저하는 다음과 같은 흐름으로 시연되었습니다.
- SLO(Service Level Objective) 기반 이상 징후 감지
- Database Insights로 문제 인스턴스 식별
- 문제 쿼리(Top SQL) 탐색
주문 처리 서비스(Order Processor)에서는 04:31 시점에 요청 폭증과 함께 SLO 지표가 급락했고, CloudWatch Database Insights를 통해 특정 인스턴스의 AAS(Average Active Sessions)가 비정상적으로 상승한 구간이 확인되었습니다.
이후 Top SQL 분석을 통해 성능 저하에 직접 영향을 준 쿼리가 탐색되었습니다.
실행 계획 비교 및 문제 원인 분석


Database Insights의 시점별 실행 계획을 비교한 결과, 문제 시간대인 04:31에는 Index Only Scan이 거의 실행되지 않고 대부분 Sequential Scan으로 처리된 패턴이 관찰되었습니다.
이 Sequential Scan이 높은 AAS를 유발한 핵심 원인으로 소개되었습니다.

신규 파티션이 생성된 직후 데이터가 없는 상태였기 때문에 옵티마이저는 이 쿼리에 대해 Sequential Scan을 더 저비용 플랜으로 판단하여 Generic Plan으로 고정해 실행했다고 설명했습니다.
데이터가 증가했음에도 불구하고, 이미 캐시된 실행 계획(Sequential Scan)이 계속 재사용되면서 문제가 유지되었습니다.
세션 블로킹 및 트랜잭션 경합 분석


이 내용은 앞선 실행 계획 문제와는 별개의 시나리오입니다.
Database Insights의 Session / Lock Tree 기능을 활용해 세션 간 대기 관계와 락 체인을 분석하는 과정이 시연되었습니다.
특정 세션이 예외 처리 과정에서 트랜잭션을 종료하지 않은 채 장시간 유지되었고, 이후 같은 테이블의 동일한 행(Row)을 갱신하려는 요청들이 동일한 락을 대기하게 되면서 전체 워크로드가 병목을 일으키는 구조가 확인되었습니다.
여러 세션이 client wait, lock wait 상태로 이어지며, 하나의 장기 실행 세션이 전체 경합을 유발하는 전형적인 패턴이 Database Insights를 통해 명확히 드러났습니다.
결론
이번 세션에서는 Aurora PostgreSQL 운영 중 발생할 수 있는 여러 성능 문제를 Database Insights를 활용해 어떻게 빠르게 식별하고 진단할 수 있는지 다양한 예시와 함께 소개되었습니다.
DB Load 변화 분석, 실행 계획 비교, 파티션 구조 변화 탐지, 세션·락 경합 분석 등 실전 기반의 접근 방식이 제시되었으며, 성능 저하의 원인을 단계적으로 좁혀가는 절차가 체계적으로 설명되었습니다.
또한 질의응답을 통해 현업에서 빈번히 발생하는 문제 유형들이 공유되었고, Database Insights가 세션·락 수준까지 관찰 가능한 핵심 모니터링 도구임이 강조되었습니다.
Aurora PostgreSQL 성능 모니터링 체계를 구축하는 데 필요한 실질적인 인사이트를 얻을 수 있는 유익한 시간이었습니다.


