DBA 일은 도구가 사방에 흩어져 있다. AWS 콘솔, DataGrip, 셸 스크립트, 위키, 슬랙… “그거 어디서 하더라”가 반복된다. 이걸 한 곳으로 모으려고 사내 DB 운영 포털을 만들었다. 기능이 꽤 늘어나서, 설계하며 정리한 것들을 남긴다. (구체적인 사내 값은 빼고 일반화했다.)
아키텍처
- Next.js(React) + tRPC — 타입이 프론트·백엔드에 그대로 흐른다. API 스키마를 따로 관리할 필요가 없다
- 백/프론트 분리 — 순수 프론트(웹)와 API 서버를 별도 프로세스로. 배포·스케일·책임 경계가 깔끔해진다
- SSO(OIDC) 전용 인증 — 개인 계정/비밀번호를 없애고 사내 IdP 위임 로그인만. 계정 남발과 유출 표면을 줄인다
기능
1. 스키마 탐색 & ERD
전체 ERD를 펼쳐놓는 대신 검색 우선으로 갔다. 테이블·컬럼을 이름으로 찾고, 거기서 연결된 테이블만 지역적으로 펼친다. (이 주제만 따로 정리한 글: 개발자를 위한 스키마 탐색 UX)
2. 스키마 Diff
여러 환경(dev/stg/prod) 사이 스키마가 어긋나는 건 사고의 씨앗이다. 환경 간·계정 간 스키마를 비교해 드리프트를 눈으로 잡는다.
3. DDL 리뷰
새 DDL이 조직 표준(명명 규칙·타입·인덱스·charset 등)을 지키는지 자동 검토한다. “리뷰어가 눈으로 잡던 것”을 규칙화했다.
4. RDS / Aurora 관리
- 인스턴스 조회·접속, 파라미터 그룹, Performance Insights, 로그 익스포트
- 삭제 방지 같은 안전장치 토글
- 신규 프로비저닝(표준 빌드 — 암호화·파라미터·백업플랜·태그 정렬)
5. DMS 관리
CDC 마이그레이션 태스크의 상태를 모니터링하고, 실패 시 자동 재시작으로 진행을 보장한다. 마이그레이션 중 새벽에 깨는 일을 줄였다.
6. 멀티 계정
같은 클러스터 ID가 여러 AWS 계정에 존재할 수 있다. 그래서 모든 변경 작업은 (accountId, instanceId) 쌍으로 대상을 해석한다. 계정 스코프를 흐리면 엉뚱한 계정에 손대는 사고가 난다.
7. 승인 워크플로우
프로덕션 접근·위험 작업은 요청 → 승인 → 실행으로 배선했다.
- 승인은 관리자 전용, 실행은 승인 이후에만 트리거
- 슬랙에서도 승인 카드로 처리 (채널 멤버십이 사실상 접근 통제)
초기엔 승인/실행 인가가 허술해서, 사용자가 자기 요청을 자가 승인하고 실행까지 태우는 권한 상승이 가능했다. 승인·실행 경로는 반드시 서버에서 관리자 권한을 강제하고, 클라이언트 스코프를 신뢰하지 않도록 고쳤다.
8. 알림
- 채널 레지스트리 — 발송 대상 채널을 env에 하드코딩하지 않고 등록해두고, 스케줄/이벤트별로 선택
- 용도 분리 — 승인 / 실시간 문제(에러로그·메트릭·알람) / 주기 리포트
- 에러 로그 스캔(OOM·크래시 재시작·복제 끊김·디스크 풀)과 메트릭 수집 크론으로 발화
9. 접근 제어
- SSO + 역할 기반, 민감 조회/변경은 서버에서 소유권(또는 관리자) 검증
- 클라이언트가 보낸 스코프를 믿지 않는다 (권한 상승 방지)
10. 리포트 & 온보딩
- 계정 리포트, 접근 검토(access review), 슬로우 쿼리 회귀, 온보딩 체크
- 신규 Aurora 온보딩 시 클러스터/인스턴스 단위를 구분해 작업 (파라미터=인스턴스, 로그 익스포트=클러스터)
11. 태깅 · 거버넌스
필수 태그, 백업 플랜, 비용 절감용 sleep 스케줄 태그 등 조직 표준을 포털에서 정렬·검증한다.
만들며 배운 것 (설계 원칙)
기능보다 오래 남은 건 원칙이었다.
- 목록은 테이블, 카드는 상세/고정 메트릭에만 — 항목이 늘어나는 목록을 카드로 만들면 금방 스크롤 지옥
- 공용 헬퍼를 먼저 grep — 엔진 아이콘/라벨, KST 날짜 포맷, 상태 배지… 즉석 재발명 금지
- 색은 레인으로 — 상태/환경/구조 3개 레인 안에서만 색을 쓴다 (prod=위험색 고정 등). 안 그러면 색이 의미를 잃는다
- 외부 side-effect는 await — 핸들러에서 슬랙/DM 전송을 던져두고 응답하면 유실된다. await + 에러 표면화
- 비교 대상을 golden standard로 삼지 말 것 — 다른 도구와 비교할 땐 원칙 기준으로 장점만 취한다
정리
DB 운영 포털은 결국 “흩어진 것을 한 곳에, 안전하게” 다. 기능은 계속 늘지만, 관통하는 건 최소 권한·소유권 검증·계정 스코프·표준 정렬 같은 몇 가지 원칙이었다. 도구를 만들며 DBA 업무 자체를 다시 정의하게 된 프로젝트다.