N+1冗長化とは
N+1冗長化(N+1 Redundancy)とは、コンピュータシステムやネットワークにおいて、通常時にサービスを提供している複数の稼働系システム(N台)に加え、それらN台のいずれかに障害が発生した場合に備えて、1台の予備系システム(+1台)を用意する冗長化方式を指します。
これにより、稼働系システムのいずれか1台に障害が発生しても、予備系がその役割を引き継ぎ、サービスの中断を最小限に抑えることが可能となります。
N+1冗長化の基本的な概念
N+1冗長化は、アクティブ-スタンバイ構成が1対1の冗長化であるのに対し、複数のシステムをまとめて保護する効率的な冗長化手段として利用されます。
主な概念は以下の通りです。
- 高可用性(High Availability, HA): システムが障害発生時にも継続して機能し、サービスを提供できる能力を指します。N+1冗長化は、特に複数の同種システムで構成される環境において、費用対効果の高いHA実現手段となります。
- 稼働系(Active Systems / N台): 通常時において、実際に処理を実行し、サービスを提供している複数のシステムです。これらは通常、負荷分散の対象となります。
- 予備系(Standby System / +1台): 稼働系N台のいずれか1台に障害が発生した場合に、その役割を引き継ぐために準備されている唯一のシステムです。通常時は待機状態にあるか、あるいは低負荷の補助的な役割を担っています。
- フェイルオーバー(Failover): 稼働系N台のうち1台が障害を検知した場合、予備系がその障害機の役割を引き継ぎ、サービスを再開するプロセスです。
- 効率性とコスト: 全ての稼働系に対して個別にスタンバイ系を用意する(1+1冗長化をNセット行う)よりも、リソースの投資を抑えつつ一定の冗長性を確保できる点が特徴です。
N+1冗長化の動作原理
N+1冗長化は、主に以下のような手順で高可用性を維持します。
- 通常稼働時:
- N台の稼働系システムがそれぞれサービスを提供します。これらの稼働系は、ロードバランサーなどによって負荷分散されていることが一般的です。
- 1台の予備系システムは、待機状態にあり、稼働系の死活監視を行います。
- 稼働系で発生するデータ変更などは、予備系にも同期される場合とされない場合があります。同期される場合は、予備系が障害機の状態を迅速に引き継ぐことが可能になります。
- 障害検知:
- 予備系、または中央の管理システムが、N台の稼働系システムのいずれかの障害を検知します。これは、ハートビートの途絶や、サービスへの応答停止などによって行われます。
- フェイルオーバーの実行:
- 障害が検知されると、予備系が障害を発生した稼働系の役割を引き継ぎます。
- 具体的には、障害機の仮想IPアドレスを引き継いだり、障害機のサービスプロセスを自身で起動したりします。
- ロードバランサーがある場合は、障害機をプールから外し、予備系を稼働プールに追加する設定変更が行われます。
- サービス復旧:
- 予備系が稼働を開始することで、サービスは継続されます。この際、一時的にN台のサービスがN-1台で処理される状態になるため、一時的に性能が低下する可能性があります。
- 障害機は修理のために切り離されます。修理後、再び予備系としてシステムに戻されるか、稼働系として復帰し、予備系が元に戻る場合もあります。
N+1冗長化のメリットとデメリット
メリット
- リソース効率の向上: 1台の予備系が複数の稼働系のバックアップとなるため、1対1の冗長化(1+1冗長化)と比較して、全体のリソース投資を効率化できます。これにより、コスト削減に寄与します。
- 高可用性の確保: 稼働系N台のうち1台の障害に対しては、サービスの中断を最小限に抑えることが可能です。
- 運用管理の簡素化: 複数の稼働系に対して1つの予備系を管理すればよいため、運用負荷を軽減できる場合があります。
デメリット
- 多重障害への脆弱性: 同時に複数の稼働系システムが障害を起こした場合、予備系は1台しか存在しないため、全てのサービスを継続できない可能性があります。これがN+1冗長化の最も大きなリスクです。
- 性能低下のリスク: 障害発生時に、予備系が障害機の役割を引き継ぐことで、全体の処理能力が一時的にN-1台相当に低下します。システムの負荷が高い場合、これが性能上のボトルネックとなる可能性があります。
- 予備系の性能要件: 予備系は、稼働系N台のいずれの役割でも引き継げるように、十分な処理能力を持つ必要があります。場合によっては、N台のうち最も負荷の高いシステムの性能要備を満たす必要があります。
- 復旧までの複雑性: 予備系がどの稼働機の役割を引き継ぐかによって、設定や起動手順が異なる場合があり、フェイルオーバーのロジックが複雑になることがあります。
- スプリットブレイン問題のリスク: アクティブ-スタンバイと同様に、ネットワーク分断などにより、複数のシステムが自身を稼働系と誤認するスプリットブレイン問題のリスクが存在します。
N+1冗長化の主な適用例
- 仮想化ホスト: VMware vSphere HAやMicrosoft Hyper-V Failover Clusteringなどの仮想化基盤において、物理ホスト(N台)のいずれかに障害が発生した場合に、余剰の物理ホスト(+1台)にその上の仮想マシンを自動的に再起動する構成。
- ウェブサーバー/アプリケーションサーバー群: ロードバランサー配下の複数のWebサーバーやアプリケーションサーバーに障害が発生した場合に、予備のサーバーがその役割を引き継ぐ構成。
- データベースのリードレプリカ: 複数のリードレプリカ(N台)に加えて、書き込みマスターに障害が発生した場合に昇格できる予備のレプリカ(+1台)を配置する構成(厳密には役割が異なるが、類似の概念)。
- ネットワーク機器: 複数のネットワークスイッチやルータをN+1構成で配置し、一部の機器の障害に備える。
N+1冗長化は、複数の稼働系システム(N台)に加え、それらのいずれかの障害に備えて1台の予備系システム(+1台)を用意する冗長化方式です。リソース効率の向上と高可用性の確保が主なメリットであり、1対1の冗長化よりもコストを抑えつつ信頼性を高めることが可能です。
しかし、多重障害への脆弱性、障害発生時の性能低下リスク、予備系の性能要件といったデメリットも存在します。仮想化ホスト、ウェブ/アプリケーションサーバー群、一部のデータベース構成、ネットワーク機器などで広く採用されており、システム要件とコスト、リスクのバランスを考慮して選択される重要な冗長化戦略です。
関連用語
お問い合わせ
システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。
APPSWINGBYの
ソリューション
APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。
システム開発
既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。
iOS/Androidアプリ開発
既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。
リファクタリング
他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。

ご相談・お問い合わせはこちら
APPSWINGBYのミッションは、アプリでビジネスを加速し、
お客様とともにビジネスの成功と未来を形作ること。
私達は、ITテクノロジーを活用し、様々なサービスを提供することで、
より良い社会創りに貢献していきます。
T関する疑問等、小さなことでも遠慮なくお問合せください。3営業日以内にご返答致します。

ご相談・お問合せはこちら
APPSWINGBYのミッションは、アプリでビジネスを加速し、お客様とともにビジネスの成功と未来を形作ること。
私達は、ITテクノロジーを活用し、様々なサービスを提供することで、より良い社会創りに貢献していきます。
IT関する疑問等、小さなことでも遠慮なくお問合せください。3営業日以内にご返答させて頂きます。