재해 복구 계획¶
범위 및 목표¶
이 계획은 Weblate 서비스 가용성, 데이터 무결성 또는 운영 연속성에 영향을 미치는 재해적 이벤트로부터의 복구를 다룹니다.
참고
이 계획은 Weblate s.r.o.의 Weblate 배포를 위해 특별히 설계되었지만, 다른 배포에도 유사하게 적용할 수 있습니다.
정의¶
재해: 서비스, 데이터 또는 시스템 기능의 완전하거나 상당한 손실을 초래하는 계획되지 않은 이벤트. 하드웨어 장애, 데이터 손상, 인프라 중단 또는 악의적 공격 등이 있습니다.
복구 시점 목표 (RPO): 허용 가능한 최대 데이터 손실 간격: 24시간.
복구 시간 목표 (RTO): 전체 서비스 복원에 허용 가능한 최대 시간: 8시간.
핵심 구성 요소¶
애플리케이션 계층: Weblate Python/Django 애플리케이션, 백그라운드 워커 (Celery) 및 예약된 작업.
데이터 계층: PostgreSQL 데이터베이스, 번역 저장소 (Git) 및 로그.
인프라: 웹 서버 (NGINX/Apache), 리버스 프록시, 저장소 볼륨, SSL/TLS 구성 및 선택적 SIEM 로깅 시스템.
백업 정책¶
BorgBackup을 사용한 자동 백업 프로세스는 모든 필수 구성 요소 (데이터베이스, 데이터 및 구성)가 매일 백업되도록 보장합니다. 백업은 지리적으로 다른 두 곳에 저장됩니다. 백업 보존 정책은 최근 백업이 매일 사용 가능하고 6개월간의 백업을 유지하도록 보장합니다.
복구 절차¶
장애 시나리오: 호스트/시스템 전체 손실¶
새 호스트를 프로비저닝합니다.
프로비저닝 소프트웨어를 사용하여 Weblate를 부트스트랩합니다.
BorgBackup에서 복원 에 따라 Weblate 백업을 복원합니다.
Weblate 컨테이너를 재시작합니다.
기능을 확인하고 일관성 검사를 수행합니다.
장애 시나리오: 데이터베이스 손상 또는 데이터 볼륨 손실¶
추가 쓰기 작업을 방지하기 위해 Weblate를 중지합니다.
BorgBackup에서 복원 에 따라 Weblate 백업을 복원합니다.
서비스를 재시작하고 번역 및 사용자 데이터 일관성을 확인합니다.
장애 시나리오: 악의적 변조 또는 랜섬웨어¶
영향을 받은 호스트를 네트워크에서 격리합니다.
마지막으로 알려진 정상 백업 (감염 이전)을 식별합니다.
장애 시나리오: 호스트/시스템 전체 손실 의 단계에 따라 새 호스트에 시스템을 배포합니다.
검증 및 테스트¶
백업 검증: Weblate 백업의 월간 복원 테스트.
재해 복구 훈련: 최소 연 1회, 스테이징 환경으로의 전체 복원을 포함하여 실시.
자동 무결성 검사: BorgBackup가 백업 아카이브의 무결성을 보장합니다.
복구 후 단계¶
모든 서비스가 작동 가능하고 접근 가능한지 확인합니다.
사용자와 이해관계자에게 복구 상태를 알립니다.
타임라인, 근본 원인 및 교훈을 문서화합니다.
재발 방지를 위해 업데이트 또는 인프라 변경을 적용합니다.
취약점이 관련된 경우 취약점 공개 정책 를 따릅니다.