Ch8. 백업 및 DR 전략
Prisma 기반 서비스의 백업 계층, PITR, 복구 리허설, DR 운영 표준
백업 전략은 계층으로 설계한다
단일 방식 백업은 운영 복원력에 취약합니다. 물리 백업, PITR, 논리 백업을 목적별로 조합해야 합니다.
| 계층 | 목적 | 예시 |
|---|---|---|
| 스냅샷/물리 백업 | 대규모 장애 복구 | 스토리지 스냅샷, 관리형 DB 백업 |
| PITR | 특정 시점 복원 | WAL/바이너리 로그 기반 시점 복구 |
| 논리 백업 | 테이블 단위 복원, 감사 | pg_dump, 내보내기 파이프라인 |
RPO/RTO 등급화
서비스마다 동일 목표를 강제하지 말고 등급으로 정의합니다.
| 서비스 등급 | 예시 | 목표 방향 |
|---|---|---|
| Tier 0 | 결제/정산 | 낮은 RPO, 빠른 RTO |
| Tier 1 | 핵심 업무 API | 중간 수준 RPO/RTO |
| Tier 2 | 리포팅/백오피스 | 상대적으로 완화된 목표 |
복구 리허설 절차
삭제 사고, 스키마 사고, 리전 장애 등 시나리오를 분리합니다.
staging 또는 DR 샌드박스에 실제 백업을 복원합니다.
핵심 테이블 row count, 무결성, 주요 비즈니스 쿼리를 검증합니다.
감지 시간, 복구 시간, 검증 시간을 분리 측정합니다.
RPO/RTO 미달성 원인을 액션 아이템으로 등록합니다.
Prisma 관점에서의 백업 고려사항
- 마이그레이션 이력 테이블(
_prisma_migrations)도 복원 검증 대상에 포함 - 복원된 DB에 대해
prisma migrate status로 이력 정합성 점검 - 대규모 백필 직후에는 추가 백업 스냅샷을 확보
검증 쿼리 예시 (PostgreSQL)
-- 핵심 테이블 건수 검증
SELECT 'orders' AS table_name, COUNT(*) FROM orders
UNION ALL
SELECT 'payments' AS table_name, COUNT(*) FROM payments;
-- 참조 무결성 샘플 점검
SELECT COUNT(*) AS orphan_count
FROM payments p
LEFT JOIN orders o ON o.id = p.order_id
WHERE o.id IS NULL;운영 체크리스트
- 백업 보관 주기와 암호화 정책이 문서화됨
- 월간 또는 분기별 복구 리허설이 실행됨
- 복구 성공 기준(정합성/시간)이 정의됨
- 복구 결과가 포스트모템처럼 기록됨