백업 설계: 복구 가능 + secrets 제외
백업은 ‘파일 생성’이 아니라 ‘복구 검증’입니다. DB/파일/시크릿을 분리해 운영 사고를 줄입니다.
백업은 운영에서 가장 과소평가되기 쉽습니다. “백업이 있다”가 아니라 “복구가 된다”가 기준입니다.
1) 원칙
- 백업은 복구 시나리오(누가/어디서/얼마나 빨리)를 먼저 정의합니다.
- DB와 업로드/정적 파일은 성격이 다르니 분리합니다.
- 시크릿(.env, 키 파일 등)은 백업에 섞지 않거나, 별도 암호화/접근 통제합니다.
관련 문서: 프로덕션에서 Secrets와 .env 다루기
2) 최소 체크리스트
- DB 덤프를 정기적으로 생성한다 (
pg_dump,mysqldump등) - 파일 백업은 exclude 룰을 가진다 (
.env,.git,node_modules, 임시파일) - 백업 저장소는 운영 서버와 분리한다 (오프사이트/오브젝트 스토리지)
- 보관 정책(7/30/90일 등)과 암호화를 적용한다
- 월 1회 이상 “복구 리허설”을 한다
3) 복구 리허설(가장 중요)
- 임시 환경(스테이징)에 DB/파일을 복구
- 앱 부팅/로그인/핵심 API 체크
- “복구 시간”과 “누락된 것”을 기록하고 런북을 업데이트