災害復旧計画
1)目的、範囲および原則
目標:規制要件、契約、プレーヤーの期待に違反することなく、災害後のITプラットフォーム(サイバー、ベンダー、地政学)のタイムリーな回復を確保する。
エリア:生産的な環境(ゲーム回路、決済、KYC/AML、不正防止、DWH/BIストアフロント)、統合(PSP、 KYC、 CDN、スタジオ/アグリゲーター)、インフラストラクチャ(cloud/K8s、ネットワーク、シークレット/キー)、データ(データベース、ファイル、ログ)。
原則:安全第一、RTO/RPO最小化、自動化と再現性(IaC)、「デフォルトでの証明」、定期的な演習。
2)システム分類と回収目標
2.1クリティカルレベル
Tier-1(重要):支払い/キャッシュアウト、コアゲーム、ログイン/認証、ICC/制裁。
Tier-2:リアルタイム分析、マーケティング/CRM、 DWHレポート。
Tier-3:内部ポータル、補助サービス。
2.2ターゲット
RTO: リカバリ時間の目標
Recovery Point Objective (RPO)-データの許容時間損失。
RTA (Recovery Time Actual )/RPA (Recovery Point Actual)-実際の値はレポートに記録されます。
MTO/MBCO:最大許容ダウンタイム/最小許容サービスレベル(劣化モード)。
- Tier-1-RTO ≤ 30-60分、RPO ≤ 15分;Tier-2-RTO ≤ 4位、RPO ≤ 1位;Tier-3-RTO ≤ 24インチ、RPO ≤ 24インチ。
3) DR戦略とアーキテクチャ
3.1トポロジー
アクティブ-アクティブ(複数領域):最小のRTO/RPOで、一貫性と紛争解決が必要です。
アクティブスタンバイ(ホット/ウォーム/コールド):コスト/スピードバランス。
データとキーのジオセパレーション:KMS/HSM per-region、 BYOK、独立したレプリケーション・パス。
3.2データとバックアップ
PITR(ポイント・イン・タイム・リカバリ):トランザクション・ログ、アーカイブ間隔≤ Tier-1の場合は5〜15分です。
スナップショット/フルバックアップ:毎日/時間、3-2-1スキーム(3コピー、2メディア、1オフライン/オフサイト)によるストレージ。
不変性:WORM/オブジェクトロック、アーティファクトの署名/ハッシュチェーン。
リカバリカタログ:バックアップインベントリ、整合性、有効期限、テスト復号。
3.3アプリケーションと統合
Statles Services-IaC/CIによる迅速な導入
Statefullコンポーネント:一貫したスナップショット、発射シーケンスのオーケストレーション。
統合(PSP/KYC/aggregators):ダブルクレジット、フォールバックエンドポイント、署名されたwebhook、再配送コントロール(idempotency)。
4)回復順序(一般的なrunbook)
1.DRスクリプトを宣言する→DRインシデントコマンダー(DR-IC)を割り当てる、戦争部屋を起動します。
2.損害評価:影響を受ける地域/サブシステム、現在のRTA/RPA、 feiloverを有効にする決定。
3.Isolation/containment:元の原因(ネットワークACL、シークレット、プロバイダの切断)をブロックします。
- ネットワーク/秘密/KMS→
- DB/Vault/Cache→
- API/services→front/CDN→外部統合。
- 5.整合性チェック:カウンター。量「、乾燥した」要求、健康サンプル。
- 6.金融/ゲームの和解:支払いの和解、ベット、残高、取引の偶発的な繰り返し。
- 7.コミュニケーション:ステータスページ、プレーヤー/パートナー/レギュレータ;タイムラインを更新します。
- 8.観察と安定化:正常化が進むにつれて劣化の無効化。
- 9.死後:RCA、 CAPA、 DRPの更新。
5)スペシャリストランブック(スニペット)
5.1アクティブスタンバイ→スタンバイ
yaml trigger: "loss_of_region_primary OR quorum_fail >= 5m"
prechecks:
- "secondary region green"
- "replication_lag <= 15m"
steps:
- DR-IC approves region_failover
- Platform: GSLB switch → secondary
- Data: promote replicas, enable PITR streams
- Apps: redeploy with region vars; warm caches
- QA: smoke tests (login, deposit, bet, payout)
- Comms: status-page + partner notice rollback: "switch-back after 60m stability window"
5.2 PITRからの破損DB/リカバリ
yaml trigger: "data_corruption_detected OR accidental_drop"
steps:
- Freeze writes (feature flag), snapshot evidence
- Restore to timestamp T (<= RPO)
- Reindex/consistency checks
- Replay idempotent events from queue (from T)
- Reopen writes in throttle mode validation: ["checksum_ok", "balance_diff=0", "orders_gap=0"]
5.DRモードでの3 PSPの劣化
yaml trigger: "auth_rate_psp1 < baseline-3σ for 15m"
steps:
- Route X%→psp2, cap payouts, enable manual VIP
- Reconciliation plan T+0, alerts Finance
- Notify players in cashier; vendor escalation
6)データの完全性と和解
ファイナンス:預金/支払い/手数料の調整、重複排除機能を備えた通知とWebhookの再送信(idempotency-keys)。
ゲームの輪郭:ラウンド状態の回復、必要に応じて和解の繰り返し、二重料金/料金に対する保護。
ログ/監査:WORMログマッピング、署名/ハッシュ、整合性レポートの前/後。
DPO/コンプライアンスレポート: PIIへの影響、キャプチャスケール、タイムライン、通知の場合。
7)主要な技術のためのDR(例)
DBMS(リレーショナル):同期/非同期レプリケーション、WALスロット、高速プロモート、ホットスタンバイ。
NoSQL/キャッシュ:マルチクラスター、TTL-disability、コールドフィリング、競合解決なしのクロスリージョン書き込みの拒否。
キュー/ストリーム:ミラートピカル/クラスタ、オフセット制御、消費者重複排除。
オブジェクトストレージ:バージョン管理、バンカーレプリケーション、オブジェクトインベントリ、および保持ポリシー。
CI/CD/アーティファクト:レジストリのレプリカ、アーティファクトの署名、クリティカルコンテナのオフラインコピー。
秘密/鍵:地域ごとのKMS、独立したルートキー、ロギングとTTLの壊れ目ガラス。
8) DRのセキュリティとプライバシー
最低権利の原則:個々の役割/プロファイル(JIT/PAM)によるDRアクセス。
不変バックアップ:オフライン/オフサイト、リカバリおよび復号化テスト。
規制ウィンドウ:イベントのキャプチャと通知の決定(レギュレータ/銀行/PSP/ユーザー)とLegal/DPO。
トレーサビリティ:完全なDRコマンドアクティビティログ、タイムライン署名。
9)エクササイズとテストの種類
ウォークスルー/レビュー:ドキュメント/ロール/コンタクトレビュー(四半期)。
卓上:競合解決で「乾燥」のシナリオを実行します。
技術的な部分:単一のサービス/データベースのリカバリ。
フルフェイルオーバー/スイッチオーバー-トラフィックとデータをバックアップ領域に転送します。
カオスデイズ(制御された):自動チェックの失敗/失敗の注入。
各テスト→RTA/RPA、偏差リスト、CAPA、およびDRP更新を含むレポート。
10)指標(KPI/KRI)
RTA/RPA vs RTO/RPO (Tier-1): 95%マッチ≥。
DRテストカバレッジ:≥ 2完全なDRテスト/年+規則的な部分。
タイムツーファーストステータス:DR発表から15分後に≤。
和解ゼロDiff:矛盾のないすべての現金とゲームの和解。
バックアップの整合性:スポットリストアの100%は4分の1で成功しています。
構成ドリフト:プライマリ/セカンダリ間の0ドリフト(IaC比較)。
DRのセキュリティ:ログと確認で100% DR活動。
11) RACI(拡大)
12)チェックリスト
12.1 DR対応
- DRチーム/ベンダー/レギュレータの連絡先が更新されました
- レプリケーショングリーン、PITR対応、バックアップの復号化テスト
- JIT/PAMアクセス、ブレークガラス検証済み
- 偽のプレイブックと環境変数が有効です
- PSP/KYC デュアルクレジット/Webhooks、代替ルート
- ステータスページ/メッセージテンプレート準備完了
12.2 DR中
- 割り当てられたDR-IC、戦争部屋オープン、イベントタイムライン
- 分離、スクリプト、実行中のランブックの原因
- 完全性の点検、健康テスト、煙テスト
- 最初の公開更新≤ 15分;SLA上のパートナー/レギュレータへの通知
- 調査のためのアーティファクトのキャプチャ
12.3 DRの後で
- お金/ゲームや雑誌の完全な和解
- 死後、RCA、日付と所有者とCAPA
- DRP/BIA/コンタクト/IaCアップデート
- 再テスト計画の修正
13)テンプレート(フラグメント)
13.1サービスカード(DRパスポート)
yaml service: payments-api tier: 1 dependencies: [auth, ledger-db, psp1, psp2, kms-eu]
rto: "45m"
rpo: "15m"
backups: {pitr: true, snapshots: "hourly", immutability: "7d"}
failover: {mode: "active-standby", regions: ["eu1","eu2"]}
runbooks: ["rb_failover_region", "rb_psp_degradation"]
health_checks: ["/healthz","/readyz"]
13.2 DRテストレポート(露出)
yaml test_id: DR-2025-10 scope: "Full switch-over eu1→eu2"
rta: "27m"
rpa: "11m"
issues:
- id: CAPA-117, desc: "долгое прогревание кэша", due: 2025-11-20, owner: SRE
- id: CAPA-118, desc: "устаревший webhook PSP#2", due: 2025-11-12, owner: Payments reconciliation: {finance: "ok", games: "ok"}
management_signoff: "2025-11-02"
13.3ステータスメッセージテンプレート
[UTC+02] Идет аварийное переключение в резервный регион. Игры доступны, выводы временно ограничены. Средства игроков в безопасности. Следующее обновление через 15 минут.
14)導入ロードマップ(6〜8週間)
週1-2:サービスと依存関係の在庫、階層分類、RTO/RPO目標、トポロジー選択、DRパスポート。
週3-4: バックアップ/PITR/不変性の実装、シークレットレプリケーション/KMS、ランブックとステータスの準備。
週5-6:部分的な技術テスト(データベース/キャッシュ/キュー)、PSP/KYC/リージョンシナリオに従って卓上。
週7-8:完全なスイッチオーバー(可能であれば)、RTA/RPA、 CAPA、 DRPの更新および規則的なテストプランとのレポート。
15)他のWikiセクションとの統合
リンク先:BCP、リスクレジスタ、インシデント管理、ログポリシー(WORM)、 TPRMおよびSLA、 ISO 27001/27701、 SOC 2、 PCI DSS、 RBAC/Lest Privilege、パスワードポリシーおよびMFA A、変更/リリース管理。
TL;DR(ドクター)
作業DRP=階層別の明確なRTO/RPO→アクティブアクティブ/スタンバイアーキテクチャ+不変バックアップ/PITR→再生可能なランブックとfeilover→お金/ゲームの和解→通常の演習とCAPA。その後、大きな故障は、予測可能な回復時間とレギュレータとプレーヤーのためのゼロ驚きと管理可能な手順に変わります。