Go로 PostgreSQL 프록시 만들기 (44) - Admin API 인증과 RBAC
Admin API에 Bearer API Key 인증과 역할 기반 접근 제어(RBAC)를 구현한다. admin/viewer 역할 분리, IP allowlist, hot-reload까지 지원하여 프로덕션 운영 보안을 확보한다.
Admin API에 Bearer API Key 인증과 역할 기반 접근 제어(RBAC)를 구현한다. admin/viewer 역할 분리, IP allowlist, hot-reload까지 지원하여 프로덕션 운영 보안을 확보한다.
LB/K8s 연동을 위한 /healthz(liveness)와 /readyz(readiness) 경량 헬스체크 엔드포인트를 구현한다. 기존 /admin/health와의 역할 분리, 인증 없는 probe 설계를 다룬다.
QA에서 올라온 6건의 소견 — Pool race, credential 미갱신, XFF spoofing, reader 격리 실패, 캐시 write-only, 설정 오류 — 을 분석하고 수정한다.
QA 2차 소견 5건 — boundWriter cross-pool 오염, extended cache 파라미터 무시, Pool.Close outstanding borrow, writer CB reload 누락, watcher startup race — 을 분석하고 수정한다.
QA 3차 소견 6건 — fallback 경로 cross-pool 오염, extended cache 포맷 충돌, 깨진 연결 Release, Pool.Acquire close race, boundWriter discard 누락, circuit breaker 일관성 — 을 분석하고 수정한다.
golangci-lint, 테스트, 벤치마크를 자동화하는 CI 파이프라인과 태그 push 시 multi-platform Docker 이미지를 GHCR에 자동 배포하는 Release 파이프라인을 구축한다.
단일 pgmux 인스턴스에서 여러 PostgreSQL 데이터베이스를 동시 프록시하는 Multi-Database Routing을 구현한다. DatabaseGroup 추상화, per-DB 풀/밸런서 격리, 캐시 키 혼합까지.
쿼리를 정규화하여 패턴별 실행 횟수, 평균/P50/P99 레이턴시를 집계하는 Query Digest 기능을 구현한다. pg_stat_statements의 프록시 버전.
pgmux의 17개 Prometheus 메트릭을 한눈에 볼 수 있는 Grafana 대시보드 템플릿을 만들고, Helm Chart로 자동 배포하는 방법을 다룬다.
pgbench로 Direct DB, pgmux, PgBouncer를 3자 비교하고, hot path 최적화로 SELECT-only 46%→83%로 개선한다.