【あくてぃぶぱっしぶ】
アクティブ-パッシブ とは?
最終更新:
💡 「正選手と控え」のバックアップ体制
稼働系(Active)だけが処理を受け持ち、待機系(Passive)は障害時に切り替えて使う冗長構成。待機系の準備状況によって、切り替えにかかる時間とコストが変わる。
📌 このページのポイント
- 稼働系(プライマリ)だけが通常の処理を受け持ち、待機系(スタンバイ)は障害時に引き継ぐ
- 待機系の準備度合いで呼び分ける。常時起動して同期済みならホットスタンバイ、停止していて障害時に起動・復元するならコールドスタンバイ、その中間がウォームスタンバイ
- 書き込み先が1か所なので、アクティブ-アクティブよりデータの整合性を保ちやすい
- 待機系は普段の処理を受け持たないため、その分の設備が遊びやすいのがコスト面のデメリット
アクティブ-パッシブってどういう構成なの?
フェイルオーバーは自動でできる?
構成次第だよ。AWSのRDSのマルチAZ配置は同期レプリカへ自動でフェイルオーバーするし、PostgreSQLならPatroniのような仕組みで自動化できる。ただ、両方が自分をアクティブだと思い込む「スプリットブレイン」を防ぐ仕組みが必要だし、AWSは誤検知による無駄な切り替えを避けるため、手動で開始する方法もよく使われると説明しているよ。
待機系をまったく使わないのはもったいなくない?
いい視点だね。PostgreSQLのホットスタンバイのように、待機系で読み取り専用の問い合わせを受けられる仕組みもあるよ。ただし、RDSのマルチAZ(DBインスタンス)の待機系は読み取りに使えないから、読み取りを分散したいならリードレプリカなどを別に用意するんだ。
構成はどうやって選べばいいの?
どのくらいの時間で復旧したいか(RTO)と、どこまでのデータ損失を許せるか(RPO)から決めるよ。AWSの資料でも、バックアップからの復元のような安くて単純な方式から、複数拠点で同時に動かすアクティブ-アクティブのように複雑でコストの高い方式まで並べて、要件で選ぶよう説明しているんだ。
もっと詳しく知りたい人へ
「ウォームスタンバイ」は、どの資料でも同じ意味なの?
同じではないよ。PostgreSQLのドキュメントでは、昇格するまで接続できない待機サーバーをウォームスタンバイ、読み取り専用の問い合わせを受け付けられる待機サーバーをホットスタンバイと呼んでいる。一方、AWSの災害対策の資料では、別リージョンに縮小版だが完全に動く環境を置いておく方式をウォームスタンバイと呼ぶんだ。資格試験や設計書では、その資料の定義を確認しよう。
まとめ:ざっくりこれだけ覚えればOK!
「アクティブ-パッシブ」って出てきたら「稼働系+待機系の冗長構成」と思えればだいたいOK!
📖 おまけ:英語の意味
「Active-Passive (Active-Standby)」 = 能動-受動構成
💬 Passive(受動的)な待機系が、Active(能動的)な稼働系のバックアップになるよ