判断: どの HA/DR ソリューションか?
高可用性と災害復旧のソリューション選定は、技術ではなく、業務要件 (RTO/RPO)、地理的分散の必要性、コストのバランスから始まる。このツリーは、ダウンタイムとデータ損失の許容度を起点に、同期レプリカ、非同期スタンバイ、自動フェイルオーバークラスタ、バックアップ+PITR の中から適切なアプローチを示す。
データ損失の許容度 (RPO) は?
最も厳しい制約から始める: 災害時に何秒分のデータを失っても許容できるか? データ損失ゼロ (RPO=0) が必須なら同期レプリケーションが必須。数秒/数分が許容できるなら、非同期ソリューションやより安価なアプローチが選択肢になる。通常、RPO 目標が他のすべての判断を左右する。
- データ損失ゼロが必須 (RPO = 0)
- 数秒/数分のデータ損失は許容できる
自動かつ高速な引き継ぎ (低 RTO) も必要か?
データ損失ゼロを求めているが、プライマリがダウンしたときにどれだけ早く復旧する必要があるか? 数秒以内の自動フェイルオーバーか、それとも短い手動介入の時間は許容できるか? これにより、単純な同期レプリカと完全自動化されたクラスタのどちらにするかが決まる。
- 数秒以内の自動フェイルオーバーが必要
- 手動/計画的な引き継ぎで十分。損失ゼロが最優先
別リージョン/別地域 (DR) が必要か?
ある程度のデータ損失が許容できるなら、本当の問題は耐障害性の範囲: データセンター/リージョン全体の喪失に備える必要があるか、それとも同一リージョン内の単一ノード障害への備えで十分か? 地理的分散が必要なら非同期スタンバイが有力になり、不要ならコスト優先の選択肢を検討する。
- はい、地理的災害に備えて別リージョンが必須
- いいえ、予算とシンプルさが最優先
長い復旧時間 (高 RTO) を許容できるか?
単一リージョン内にとどまり、ある程度のデータ損失を許容する。最低コストを目指すのか、それとも障害時に迅速に引き継ぐスタンバイノードが欲しいのか? 復旧に数時間かかっても許容できるなら、バックアップ+PITR のみが最も経済的。そうでなければウォームスタンバイが必要。
- はい、復旧に数時間かかっても許容できる (最安)
- いいえ、数分以内に引き継ぐウォームスタンバイが必要
推奨: 同期レプリカ (データ損失ゼロ)
プライマリは、少なくとも 1 つのスタンバイが確認応答するまでコミットを完了しない。そのため、プライマリを失っても確認応答済みのトランザクションは失われない (RPO=0)。低レイテンシネットワーク上の単一リージョン内での理想的なソリューション。
推奨: 非同期スタンバイ (地理的 DR)
スタンバイは、プライマリのコミットを遅延させることなく、変更をストリームとして適用する。書き込みパフォーマンスを損なわずに別リージョンにコピーを保持する標準的な方法であり、その代わりに小さなデータ損失ウィンドウ (レプリケーション遅延分) を許容する。
推奨: 自動フェイルオーバークラスタ
ヘルスモニタリング、リーダー選出、自動引き継ぎを組み合わせたクラスタソリューション。低 RTO (数秒以内の自動フェイルオーバー) と、同期コピーによる低/ゼロ RPO の両方を目指す。運用負荷は高くなるが、人手による介入は最小化される。
推奨: バックアップ + PITR (最も経済的)
稼働中のスタンバイの代わりに、定期的なバックアップと、WAL/アーカイブログによるポイントインタイムリカバリ (PITR) のみを保持する。最もコストの低いソリューションであり、その代償として復旧に数時間かかる場合がある (高 RTO)。