최신 애플리케이션은 무중단에 가까운 가용성을 요구합니다. Amazon RDS와 Aurora의 Blue/Green 배포는 데이터베이스 업그레이드 시 다운타임을 크게 줄여주지만, 전환 과정에서 여전히 연결 종료, DNS 전파 지연, 수동 개입이 필요한 연결 실패 등의 문제가 발생할 수 있습니다. AWS Advanced JDBC Wrapper(2023년 출시)는 표준 JDBC 드라이버 위에 AWS 특화 기능을 추가하는 래퍼입니다. 이 게시물에서는 AWS Advanced JDBC Wrapper의 […] ||
최신 애플리케이션은 무중단에 가까운 가용성을 요구합니다. Amazon RDS와 Aurora의 Blue/Green 배포는 데이터베이스 업그레이드 시 다운타임을 크게 줄여주지만, 전환 과정에서 여전히 연결 종료, DNS 전파 지연, 수동 개입이 필요한 연결 실패 등의 문제가 발생할 수 있습니다.
AWS Advanced JDBC Wrapper(2023년 출시)는 표준 JDBC 드라이버 위에 AWS 특화 기능을 추가하는 래퍼입니다. 이 게시물에서는 AWS Advanced JDBC Wrapper의 Blue/Green 배포 플러그인을 소개합니다. 이 플러그인은 전환 중 연결 라우팅, 상태 감지, 트래픽 관리를 자동으로 처리하여 다운타임을 최소화합니다. 최근 Amazon RDS는 Blue/Green 배포의 가동 중지 시간을 5초 미만으로 최적화하는 기능을 출시했으며, 이 플러그인과 함께 사용하면 애플리케이션 수준에서도 전환 영향을 최소화할 수 있습니다.
또한 전환시 일반 JDBC 드라이버에서 갖는 한계점을 AWS Advanced JDBC Wrapper아래와 같이 해결할 수 있습니다.
AWS Advanced JDBC Wrapper (Blue/Green 플러그인)
일반 JDBC 드라이버
1
DNS 캐시 문제
DNS → IP 직접 매핑으로 Stale DNS 완전 우회
전환 후 Stale DNS로 인해 구 노드(Blue)로 계속 접속 가능
2
전환 감지
BG 상태를 지속적으로 폴링하여 사전 감지 및 대응
감지 불가 — 연결 오류로 직접 전달됨
3
연결 처리
전환 중 JDBC 콜을 일시 정지(suspend)하여 앱 중단 최소화
Blue 노드 종료 시 즉시 Exception 발생
AWS Advanced JDBC Wrapper Blue/Green 배포 플러그인 소개
AWS Advanced JDBC Wrapper의 Blue/Green 배포 플러그인은 RDS Aurora Blue/Green 전환 과정에서 발생하는 연결 종료, DNS 전파 지연, 엔드포인트 변경 등을 자동으로 감지하고 처리하는 플러그인입니다. 애플리케이션 코드 변경 없이 JDBC 연결 설정만으로 다음 기능을 제공합니다:
자동 전환 감지: 백그라운드 모니터링으로 Blue/Green 배포 상태 변화를 실시간 감지
백그라운드 모니터링 스레드가 RDS 메타데이터를 주기적으로 조회하여 Blue/Green 배포 상태와 전환 Phase 변화를 자동 감지합니다.
Phase가 바뀌면 즉시 라우팅 전략과 제어 정책을 교체합니다.
지능형 트래픽 관리: 전환 단계별로 연결과 쿼리 실행을 자동 제어
DNS 독립적 라우팅: IP 기반 라우팅으로 stale DNS 문제 방지
내부적으로 IP 인벤토리를 유지해, 전환 구간에는 호스트명이 아닌 IP 기준으로 연결을 잡으면서 DNS 캐시/전파 지연에서 오는 stale DNS 문제를 최소화합니다.
연결 인벤토리 관리: 양쪽 환경의 엔드포인트와 IP 주소를 사전 수집
wrapper 플러그인의 동작
Blue/Green 상태 모니터링
RDS가 제공하는 메타데이터 테이블·함수를 주기적으로 조회해 Blue/Green 배포 상태와 전환 Phase(예: NOT_CREATED, CREATED, PREPARATION, IN_PROGRESS, POST, COMPLETED)를 감지합니다.
Phase 변화가 감지되면 그에 맞는 트래픽 라우팅/제