RTO、RPO、MTD、RLOの実務とBCP
はじめに
BCPを作る前に、指標の関係を一枚でそろえると迷いません。名前は似ていても役割は別。MTDは「事業が耐えられる停止の上限」、RTOは「再開までの目標時間」、RPOは「戻せるデータの位置」、RLOは「復旧直後の品質」。この順で並べると設計が進みます。私は現場で、まずここを可視化してから議論に乗せてきました。クラウドと外部SaaSが混在する一般的な企業システムでもそのまま使えます。
この記事で達成できること
・RTO/RPO/MTD/RLOの関係を、時間軸と品質軸で説明できる
・BIA(Business Impact Analysis/業務影響分析)を根拠に、各システムへ目標値を置ける
・段階復旧(RLO)と連絡の流れを、BCP本文に正しく結びつけられる
・演習KPIを用いて、四半期サイクルで改善できる
用語の基本
・BIA(Business Impact Analysis/業務影響分析)
障害や災害が事業へ与える影響を、金額・法令・評判・安全の観点で評価し、復旧優先度と目標値(RTO/RPOなど)の根拠にする手順です。結果はBCPの前提になります。
・RTO(Recovery Time Objective)
停止から業務再開までに許容する時間の目標。手順、体制、権限の設計で上下します。
・RPO(Recovery Point Objective)
復旧時点からどこまでデータを戻すかの目安。取得方式と検証品質に依存します。バックアップ間隔と同一視しません。
・MTD(Maximum Tolerable Downtime/MTPD)
事業として耐えられる停止の上限。経営の合意が要ります。
・RLO(Recovery/Required Level Objective)
復旧直後に提供する最低サービス水準。段階復旧の基準として扱います。本稿ではISO 22301のMBCO(Minimum Business Continuity Objective)に近い概念として用います。
・BCP/DRP
BCPは事業継続の枠組み全体、DRPはITの復旧計画。指標はBCPで宣言し、達成手段はDRPへ分解します。
関係の図解
時間と品質を並べて関係を固定します。MTDが上限、RTOはその内側、RPOは巻き戻せる位置、RLOは復旧直後の品質です。
```mermaid
graph LR
MTD[MTD: 事業が耐えられる停止の上限] --> RTO[RTO: 再開までの目標]
RTO --> RLO[RLO: 復旧直後の最低水準]
RPO[(RPO: 巻き戻し位置)] -. 時間軸の参照点 .-> RTO
```要点は三つだけです。
・MTD > RTO
・復旧時刻 − RPO = 復元データの最新時刻
・復旧後のサービス水準 ≥ RLO
指標の決め方:BIAから逆算
影響の見積もり
売上欠損(円/時間)、契約上の違約金、規制報告の要否と期限、問い合わせ件数の見込み、安全への影響。測定単位と閾値を先にそろえ、優先度へ変換します。依存関係の棚卸し
DB、ID基盤、決済、外部SaaS、ネットワーク、監査ログ。復旧の先後関係を付記します。現行能力の実測
復元検証の成功率、復元に要する時間、フェイルオーバー所要、ランブックの粒度、オンコール集合時間。体感ではなく測ります。RPOの初期案
トランザクション、カート、メディア、監査ログを分けます。同期/非同期、ジャーナルの有無を併記します。RTOの初期案
手順の段数、事前委任、スクリプト化、人的ボトルネックで決まります。承認待ちが長いほど延びます。RLOの段階設計
L1(読取専用)→L2(コアAPI)→L3(通常)。各段階の到達時間と制約を並べます。MTDの合意
BIAの結果を根拠に、経営会議で決めます。現場裁量にしません。コスト曲線の提示
RTO/RPOを縮めるほど費用は逓増します。多AZ、多リージョン、同期複製、整合要件を並べ、着地点を作ります。
私の経験では、RTO短縮はツール投入よりも、権限と手順の粒度で効く場面が多いです。1操作1段のランブックと事前委任。ここを先に整えると数字が動きます。
実務への当てはめ
・取引系
RPOは短め。RTOは自動化前提。まず閲覧再開、続けて決済再開。
・分析系
RPOは緩めに置けます。欠損の扱い(補完/再計算)を先に決めます。
・社内基盤
ID、メール、チャットはBCP側で代替手段を確保します。
・データ面の分離
- txn:秒〜分。同期+ジャーナル
- cart:再送前提で分離
- media:遅延許容
- audit:完全性優先で独立保存
・RLOの段階例
- L1:5分以内に読取専用、バッチ停止
- L2:15分以内にコアAPI開放
- L3:通常運転
BCPの中での置き場所
BCPには、方針、発動/終了基準、指揮系統、連絡、代替拠点、勤務形態、演習までを含めます。指標はBCP本文の「基準値」として宣言し、DRPへ達成手段を分解します。外部SaaSのRTO/RPO、通知義務、補償上限は契約条項から抜粋し、責任境界を文章と図で固定します。
図解:フェイルオーバーの流れ
```mermaid
sequenceDiagram
participant Mon as 監視
participant LB as ロードバランサ
participant Pri as プライマリ
participant DR as 代替サイト
participant Ops as 運用
Mon->>LB: 異常検知
activate Mon
LB-->>Pri: ヘルスチェック失敗
deactivate Mon
LB->>Ops: アラート送信
activate Ops
Ops->>LB: トラフィック遮断
LB->>DR: フェイルオーバー指示
activate DR
DR-->>LB: L1到達(読取専用)
Ops->>DR: ランブック実施
DR-->>LB: L2到達(コアAPI)
DR-->>LB: 通常運転へ切替(RTO到達)
deactivate DR
deactivate Ops
```実例:ECサイト
条件:日商1200万円、ピークQPSが高い、決済は外部依存。整合の線引きを先にやります。
ec_workload:
traffic:
peak_qps: 850
p95_latency_ms: 300
data_planes:
txn: sync_replication+journal
cart: async+journal # 再送で整合回復
media: eventual
audit: append_only+独立保存
targets:
RPO:
txn: "PT1M"
cart: "PT2M"
media: "PT10M"
audit: "PT5M"
RTO: "PT15M"
MTD: "PT60M" # 役員合意
RLO:
- level: L1
window: "PT5M"
scope: ["catalog", "order-read"]
- level: L2
window: "PT15M"
scope: ["order-core", "payment"]
多AZは前提に置きます。多リージョンは決済の整合、顧客通知、コストの兼ね合いで判断します。カートの再送と払い戻し条件は、顧客向け告知テンプレと連動させます。
実例:社内ID基盤
・RPO:0〜5分(認証情報は同期、監査ログは独立保存)
・RTO:30分(冗長コントローラとキャッシュを併用)
・MTD:120分(暫定手段をBCPに記載)
・RLO:認証のみ→簡易認可→通常。管理系APIは最後に開放します。
検証と運用:測る・試す・直す
・観測KPI
- 復元検証の成功率
- 復旧ドリルの所要時間(中央値・最大)
- 連絡テンプレ配布から初回対外通知までのリードタイム
- 権限エスカレーション待ち時間の中央値
- 手動介入回数/フェイルオーバー実行回数
・演習
最短経路で回し、段差、承認待ち、合流点の詰まりを記録します。
・是正
手順は1操作1段へ分解。委任は事前設定。繰り返しはスクリプト化。
・見直し
四半期ごとにKPIと指標を更新し、変更管理とセットで配布します。
アンチパターン
・取得だけで満足し、復元検証をしない
・横串の合成でRTO/RPOが破綻
・現場判断でMTDを設定し、経営合意がない
・RLO未定義で「全部戻るまで公開停止」
・DRPだけで完結させ、体制・連絡・代替手段が空欄
・外部SaaSの条項を読まず、責任境界が曖昧
まとめ
三つのシステムを選び、RTO・RPO・MTD・RLOを置いてください。30分の机上演習を一度回し、詰まりとリードタイムを記録します。ログから、手順の粒度、権限の委任、自動化の三点を一つずつ直し、四半期で再検証します。地道ですが、再現性があります。
チートシート/テンプレート/チェックリスト
ここから先は
¥ 100
この記事が気に入ったらチップで応援してみませんか?
