백업 설계: 복구 가능 + secrets 제외

백업은 ‘파일 생성’이 아니라 ‘복구 검증’입니다. DB/파일/시크릿을 분리해 운영 사고를 줄입니다.


백업은 운영에서 가장 과소평가되기 쉽습니다. “백업이 있다”가 아니라 “복구가 된다”가 기준입니다.

1) 원칙

  • 백업은 복구 시나리오(누가/어디서/얼마나 빨리)를 먼저 정의합니다.
  • DB와 업로드/정적 파일은 성격이 다르니 분리합니다.
  • 시크릿(.env, 키 파일 등)은 백업에 섞지 않거나, 별도 암호화/접근 통제합니다.

관련 문서: 프로덕션에서 Secrets와 .env 다루기

2) 최소 체크리스트

  • DB 덤프를 정기적으로 생성한다 (pg_dump, mysqldump 등)
  • 파일 백업은 exclude 룰을 가진다 (.env, .git, node_modules, 임시파일)
  • 백업 저장소는 운영 서버와 분리한다 (오프사이트/오브젝트 스토리지)
  • 보관 정책(7/30/90일 등)과 암호화를 적용한다
  • 월 1회 이상 “복구 리허설”을 한다

3) 복구 리허설(가장 중요)

  1. 임시 환경(스테이징)에 DB/파일을 복구
  2. 앱 부팅/로그인/핵심 API 체크
  3. “복구 시간”과 “누락된 것”을 기록하고 런북을 업데이트

관련 가이드