冗長化
Redundancy
システムの構成要素に予備を設け、一部に障害が発生してもサービスを継続できる可用性を確保する手法です。
🐾 猫で例えると?
並んで待つ2匹のように、片方に何かあってももう片方へ役割を渡せる準備が冗長化です。ただし2匹が同じ不安定な棚に乗っていれば一緒に落ちる可能性があります。機器も共通の電源や設置場所まで考える必要があります。
💻 IT現場における「冗長化」とは?
冗長化では、サーバー、ネットワーク回線、電源、ストレージなどに予備を用意します。どこまで二重化するかは、停止した場合の影響、復旧目標、費用から決めます。台数だけで判断せず、複数の機器が依存する共通部分にも目を向けます。
実務では、すべての機器を同時に稼働させて負荷分散を行う「アクティブ・アクティブ構成」と、普段は予備機を待機させておき、本番機が落ちた際に切り替える「アクティブ・スタンバイ構成」が要件定義に応じて使い分けられます。予算や目標復旧時間(RTO)のバランスを見極めるのが、インフラエンジニアの腕の見せ所です。
⚠️ 冗長化の仕組みと注意点
予備の用意に加え、障害の検知、切り替え、データの扱いを決めます。冗長化は故障時の継続に役立つ一方、誤削除が両方へ反映されることもあるため、過去に戻すバックアップの代わりにはなりません。
機器の台数と障害の範囲を分けて考える
以下は構成を確認するためのメモです。サーバーを2台にしただけでは、それらが依存する回線や電源の故障まで吸収できるとは限りません。
Webサーバー:2台
確認1:1台が止まっても必要な処理量を扱えるか
確認2:共通の電源・回線・DBが止まるとどうなるか
確認3:切り替えの間に接続や処理は失敗するか
確認4:故障した側を安全に復帰させられるか 仮想IPやロードバランサーで入口を維持しても、既存の接続や処理が自動で引き継がれるとは限りません。クライアントの再接続や再試行も含めて確認します。
🛠️ 冗長化を賢く使うためのポイント
実用的な可用性を確保するために、以下のポイントを意識して設計・運用を行いましょう。
- 複製方式を選ぶ:同期・非同期では遅延や失われ得る更新の範囲が異なります。目標復旧時間(RTO)だけでなく、許容するデータ損失(RPO)も決めます。
- 定期的な切り替えテスト: いざという時にフェイルオーバーが正常に作動するか、本番環境を模した訓練を定期実施する。
- 監視体制の構築: 片方が落ちていることに気づかず「実質冗長化されていない期間」が生まれるのを防ぐため、ハートビート監視を徹底する。
寄り添うアメショと茶トラのように予備をそろえても、同じ障害で両方が止まれば引き継げません。電源や接続先など共通の依存箇所を確認し、切り替え試験を行いましょう。冗長化と、誤削除前のデータへ戻すためのバックアップも分けて備えます。