ADR-005: 데이터베이스
상황 (Context)
사주 정보, 사용자 프로필, 매칭 기록, 채팅 메시지 등 대량의 데이터를 저장해야 한다. 빠른 쿼리와 높은 신뢰성이 필요하며, 초기에는 수십만 행 수준의 데이터를 다룬다.
의사결정 (Decision)
AWS RDS (PostgreSQL) 선택
- PostgreSQL 14 이상
- Multi-AZ 자동 페일오버
- 자동 백업 (7일 보관)
- 읽기 복제본 추가 (분석/대시보드용)
- 초기 인스턴스: db.t3.micro (프리티어)
근거 (Rationale)
- 신뢰성: AWS RDS의 자동 관리 & 자동 백업
- 확장성: 읽기 복제본으로 나중에 읽기 부하 분산 가능
- 비용: 초기 프리티어, 성장 시 스케일 업 용이
- ACID 준수: 금융/사용자 데이터 안정성 보장
결과 (Consequences)
✅ 긍정
- 높은 가용성 (99.95%)
- 자동 백업으로 장애 복구 용이
- 기본 모니터링 포함
⚠️ 위험
- 관리 비용 (경우에 따라 자체 운영보다 비쌀 수 있음)
- VPC 설정 복잡도
- 대용량 쿼리 시 비용 증가
스키마 설계 원칙
- 사주 정보: 완전히 정규화 (중복 저장 안 함)
- 채팅: 파티셔닝 고려 (월 단위)
- 인덱스: 쿼리 패턴 분석 후 최소 필요분만 생성
출시 전 확인사항
- RDS 인스턴스 프로비저닝 (W1)
- 자동 백업 설정 및 복구 테스트
- 보안 그룹 설정 (EC2에서만 접근)
- 느린 쿼리 로깅 활성화
- 주간 스냅숏 검증
상태: ✅ 승인됨 | 최종 수정: 2026-06-25