Lumen Suite
재난 복구 계획 (Disaster Recovery Plan)
버전 1.0 | 2026년 3월 | 내부 운영 문서
복구 목표
4시간
RTO (Recovery Time Objective)
최대 서비스 중단 허용 시간
24시간
RPO (Recovery Point Objective)
최대 데이터 손실 허용 범위
Growth/Partner 플랜의 경우 RTO 2시간, RPO 6시간을 목표로 합니다.
장애 유형별 대응 절차
유형 A: 서비스 완전 중단 (앱 접속 불가)
1
Azure App Service 상태 확인 — Azure Portal → App Service → 상태 확인. 앱이 중지 상태면 재시작.
2
배포 로그 확인 — 최근 배포 후 문제 발생이면 이전 배포 슬롯으로 롤백 (Azure → Deployment Slots).
3
Supabase 상태 확인 — status.supabase.com에서 DB/API 상태 확인.
4
DNS/도메인 확인 — lumensuite.app DNS 레코드 이상 여부 확인.
5
교회 공지 — 장애 확인 즉시 이메일로 예상 복구 시간 공지.
유형 B: 데이터 손실 또는 오염
1
영향 범위 파악 — 어떤 교회, 어떤 데이터, 몇 개 레코드가 영향받았는지 파악.
2
Supabase PITR 사용 — Point-in-Time Recovery로 문제 발생 직전 시점으로 복구 (Supabase Pro 이상).
3
수동 백업 활용 — PITR 불가 시 가장 최근 pg_dump 백업 파일로 복구.
4
데이터 검증 — 복구 후 교회 관리자와 함께 주요 데이터(교인, 헌금) 무결성 확인.
5
사후 분석 — 원인 파악 및 재발 방지 조치 기록.
유형 C: 보안 침해 (계정 탈취, 데이터 유출 의심)
1
즉시 서비스 중단 — Azure에서 앱 중지, DB 접근 제한.
2
모든 세션 무효화 — DB에서 ASP.NET Identity 보안 스탬프 갱신으로 전체 로그아웃 강제.
3
접근 로그 분석 — Supabase/Azure 접근 로그로 침해 범위 파악.
4
영향받은 교회 즉시 통보 — 개인정보보호법 기준 72시간 이내 통보 의무.
5
취약점 패치 후 재개 — 보안 패치 완료 확인 후 서비스 재개.
백업 현황
| 항목 | 방법 | 주기 | 보존 기간 |
| 전체 DB | Supabase PITR | 자동 (연속) | 7일 |
| 전체 DB 스냅샷 | 수동 pg_dump | 월 1회 | 12개월 |
| 파일/이미지 | Cloudflare R2 (이중화) | 자동 | 무기한 |
| 코드베이스 | GitHub (main 브랜치) | 커밋 시 | 무기한 |
중요: 복구 절차를 분기별로 테스트하세요. 실제 장애 시에 처음 절차를 실행하면 오류가 발생할 수 있습니다.
긴급 연락처
| 서비스 | 상태 페이지 | 지원 채널 |
| Azure | status.azure.com | Azure Portal Support |
| Supabase | status.supabase.com | supabase.com/support |
| Cloudflare | cloudflarestatus.com | Cloudflare Dashboard |
| Stripe | status.stripe.com | dashboard.stripe.com/support |