피드로 돌아가기
Demystifying the AWS Advanced JDBC Driver: Pools, Plugins, and the Traps I Hit
Dev.toDev.to
Database

v2.x F0 프로필 내 Hardcoded Pool 제한으로 인한 p99 레이턴시 폭증 해결

Demystifying the AWS Advanced JDBC Driver: Pools, Plugins, and the Traps I Hit

Kris Iyer2026년 4월 29일36advanced

Context

Aurora DB 환경에서 Fast Failover와 Read/Write Splitting 구현을 위해 AWS Advanced JDBC Driver를 도입한 구조임. 외부 HikariCP 풀 설정과 별개로 드라이버 내부의 Plugin Chain이 물리적 연결을 제어하는 Wrapper 아키텍처의 특성을 가짐.

Technical Solution

  • Plugin Chain 기반의 Interceptor 구조를 통한 JDBC 호출의 Rewrite 및 Routing 처리
  • v2.x F0 프로필 사용 시 내부적으로 생성되는 별도의 HikariCP 풀로 인한 30 Connection Hard Ceiling 발생 확인
  • 외부 Pool(max=50)과 내부 Pool(max=30) 간의 불일치로 인한 Connection 생성 대기 및 Tomcat Thread 적체 현상 분석
  • v3.x 업그레이드를 통한 connectionPoolType=hikari 설정 및 cp-MaximumPoolSize 속성 제어권 확보
  • cp-MaximumPoolSize >= external maximumPoolSize 설정을 통한 내부 풀 병목 제거 설계

1. AWS Advanced JDBC Driver v

3.

3.0+ 버전 사용 여부 확인

2. F0 프로필 사용 시 내부 풀 크기가 외부 HikariCP 설정값보다 크거나 같은지 검증

3. `exception-override-class-name`에 `software.amazon.jdbc.util.HikariCPSQLException` 설정

4. Read-only 트랜잭션에 `@Transactional(readOnly=true)` 명시를 통한 Read/Write Splitting 최적화

원문 읽기