목록 보기
Aurora MySQL의 숨겨진 idle close 동작 — HikariCP "Failed to validate connection" 추적기
백엔드

Aurora MySQL의 숨겨진 idle close 동작 — HikariCP "Failed to validate connection" 추적기

여기어때
여기어때
2026년 6월 8일

두줄요약

Aurora MySQL에서 HikariCP의 idle connection 검증 실패 원인을 추적해 비표준 timeout 동작을 확인했습니다. interactive_timeout 이 keepalive 보다 작으면 비활성 연결이 먼저 끊길 수 있음을 정리했습니다.

문제 상황

  • HikariCP에서 Failed to validate connection WARN 로그가 분당 다수 발생
  • keepaliveTime 30초보다 먼저 DB 쪽에서 connection 이 끊기는 현상

원인 분석

  • 표준 MySQL의 wait_timeout 단독 적용이라는 가정과 실제 동작이 불일치
  • interactive_timeout 변경만으로 WARN 이 즉시 멈춘 점으로 비표준 idle 종료 동작 확인
  • Aurora MySQL 에서 wait_timeoutinteractive_timeout 중 작은 값이 effective timeout 으로 적용

해결 방법

  • DB 파라미터에서 interactive_timeout 을 keepalive 주기보다 충분히 크게 조정
  • HikariCP keepalive 시간과 Aurora idle timeout 간 간격 재검토

구조와 흐름

  • community MySQL의 one-thread-per-connection 모델과 Aurora의 thread-pool + monitor thread 모델 차이 설명
  • Aurora 에서 idle connection 을 별도 모니터 thread 가 주기적으로 정리하는 메커니즘 정리

주의할 점

  • JDBC가 non-interactive라 해도 Aurora에서는 interactive_timeout 이 영향
  • 짧은 idle 값에서는 monitor 주기 때문에 타이밍 편차 발생 가능

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...