災害復旧計画

範囲と目的

この計画は、Weblate のサービス可用性、データの完全性、または運用継続性に影響を及ぼす壊滅的な事象からの復旧に対応するものです。

注釈

この計画は Weblate s.r.o. による Weblate のデプロイメント向けに特別に設計されていますが、同様に他のデプロイメントにも適用できます。

定義

  • 災害: サービス、データ、またはシステム機能の完全な喪失、もしくは重大な損失を引き起こす予期しない事象を指します。例として、ハードウェア障害、データ破損、インフラ障害、悪意ある攻撃などが含まれます。

  • 復旧時点目標(RPO): 許容される最大のデータ損失期間は 24 時間 です。

  • 復旧時間目標(RTO): 完全なサービスを復旧するまでに許容される最大時間は 8 時間 です。

重要コンポーネント

  • アプリケーション層: Weblate の Python/Django アプリケーション、バックグラウンドワーカー(Celery)、およびスケジュールされたタスク。

  • データ層: PostgreSQL データベース、翻訳リポジトリ(Git)、およびログ。

  • インフラストラクチャ: Web サーバー(NGINX/Apache)、リバースプロキシ、ストレージボリューム、SSL/TLS 設定、そして任意の SIEM ログ記録システム。

バックアップ ポリシー

BorgBackup を使用した自動バックアップ プロセスにより、すべての重要なコンポーネント(データベース、データ、設定)が毎日バックアップされることが保証されています。バックアップは地理的に異なる 2 つの場所に保存されます。バックアップ保持方針により、直近のバックアップは日次で利用可能であり、さらに 6 か月分のバックアップが保持されます。

復旧手順

障害シナリオ:ホスト / システム全体の喪失

  1. 新しいホストをプロビジョニングする。

  2. プロビジョニングソフトウェアを使用して Weblate をブートストラップする。

  3. BorgBackup から復元 に従って Weblate のバックアップを復元する。

  4. Weblate コンテナを再起動する。

  5. 機能を確認し、一貫性チェックを実行する。

障害シナリオ:データベースの破損またはデータボリュームの喪失

  1. 書き込み操作を防ぐために Weblate を停止してください。

  2. BorgBackup から復元 に従って Weblate のバックアップを復元する。

  3. サービスを再起動し、翻訳データとユーザーデータの一貫性を確認する。

障害シナリオ:悪意ある改ざんまたはランサムウェア

  1. 影響を受けたホストをネットワークから隔離する。

  2. 感染前の最後の正常なバックアップを特定する。

  3. 障害シナリオ:ホスト / システム全体の喪失 の手順に従って、新しいホストにシステムをデプロイする。

検証とテスト

  • バックアップの検証: Weblate のバックアップを月次で復元テストする。

  • 災害復旧訓練: 少なくとも年に 1 回実施し、ステージング環境への完全な復元を含める。

  • 自動整合性チェック: BorgBackup がバックアップアーカイブの整合性を保証する。

復旧後の手順

  • すべてのサービスが稼働しており、アクセス可能であることを確認する。

  • ユーザーおよび関係者に復旧状況を通知する。

  • タイムライン、根本原因、得られた教訓を文書化する。

  • 再発防止のため、更新やインフラ変更を適用する。

  • 脆弱性が関係している場合は、脆弱性開示ポリシー に従ってください。