冗長化とは、サーバーやネットワークなどの重要な構成要素を複数用意し、1つが故障してもサービス全体を止めにくくする設計です。
たとえばWebサーバーを1台だけで運用していると、その1台が故障した時点でサイトが停止します。 一方、同じ役割を持つサーバーを複数台用意し、障害時に別のサーバーへ切り替えられるようにしておけば、停止時間を短くできます。
ただし、サーバーを2台用意しただけで自動的に「高可用性」になるわけではありません。 ロードバランサー、データ同期、監視、フェイルオーバー、DNS、ストレージなど、どこに単一障害点が残っているかを確認する必要があります。
30秒でわかる結論
30秒でわかる結論
- 冗長化は、同じ役割の機器・経路・データを複数用意して止まりにくくする仕組み
- 目的は「障害をなくすこと」ではなく「1か所の故障で全停止しないこと」
- Webサーバー、DB、ストレージ、ネットワーク、電源など複数層で考える
- Active/Standbyは待機系へ切り替える構成、Active/Activeは複数系を同時利用する構成
- ロードバランサーは正常なサーバーへ通信を振り分ける役割を持つ
- フェイルオーバーは障害時に予備系へ切り替える動作
- 冗長化とバックアップは別物で、小規模サイトでは冗長化済みレンタルサーバーを選びつつバックアップも確保する
冗長化とは?
冗長化とは、システムを構成する重要な部品を複数用意し、1つが使えなくなっても別の部品で処理を続けられるようにする考え方です。
1台だけ → 故障すると停止
複数系統 → 1台故障しても別系統で継続
単純な例
WebサーバーA
WebサーバーB
Aが停止してもBでWebサイトを表示できるようにする構成です。
Google Cloudの現行設計指針でも、高可用性を高めるためには単一障害点を避け、重要コンポーネントを複数のマシン・ゾーン・リージョンへ複製・分散する考え方が示されています。
冗長化の目的は「障害をゼロにすること」ではない
冗長化しても、障害そのものを完全になくすことはできません。
重要なのは、1つの機器・サーバー・回線が壊れても、サービス全体が止まらないようにすることです。
冗長化の目的
障害が起きてもサービス継続または短時間で復旧できる状態を作ることです。
単一障害点とは?
単一障害点は「Single Point of Failure(SPOF)」とも呼ばれ、その1か所が故障するとシステム全体が停止する部分です。
単一障害点の例
- Webサーバーが1台だけ
- データベースが1台だけ
- ロードバランサーが1台だけ
- ネットワーク回線が1本だけ
- 電源系統が1系統だけ
冗長化ではSPOFを探す
「サーバーを2台にしたから完了」ではなく、別の場所に単一障害点が残っていないか確認します。
冗長化と高可用性の関係
高可用性(HA:High Availability)は、サービスを長時間止めずに利用できる状態を目指す設計です。
冗長化は、その高可用性を実現する代表的な方法の1つです。
高可用性を高める方法の1つ = 冗長化
冗長化だけでなく、監視、自動復旧、障害検知、フェイルオーバー、運用手順なども必要です。
冗長化する代表的な場所
| 対象 | 冗長化例 |
|---|---|
| Webサーバー | 複数台構成 |
| データベース | プライマリ+スタンバイ |
| ストレージ | 複製・RAID・複数ゾーン |
| ネットワーク | 複数経路・複数回線 |
| 電源 | 二重化電源・UPS |
| 拠点 | 複数ゾーン・複数リージョン |
Webサーバーの冗長化
Webサーバーを複数台用意し、利用者からのアクセスを分散する構成です。
正常なサーバーへ振り分ける
Aが故障したときにBへ通信を送れるようにすれば、1台障害による全停止を避けやすくなります。
ロードバランサーの役割
ロードバランサーは、複数のサーバーへアクセスを振り分ける仕組みです。
高可用性構成では、単純な負荷分散だけでなく、ヘルスチェックで障害サーバーを検知し、正常なサーバーへ通信を送る役割も持ちます。
ロードバランサーの主な役割
- 複数サーバーへアクセスを分散する
- サーバーの正常性を確認する
- 異常サーバーを振り分け先から外す
- 正常サーバーだけで処理を続ける
ロードバランサー自体も単一障害点になり得る
ロードバランサーが1台だけなら、その1台の故障でアクセスできなくなる可能性があります。重要システムではロードバランサー自体の冗長性も確認します。
Active/Standbyとは?
Active/Standbyは、通常は1系統だけ稼働し、もう1系統を待機させる方式です。
構成例
Active:本番処理中
Standby:待機中
Active障害
↓
Standbyへ切り替え
特徴
- 構成を理解しやすい
- 障害時に待機系へ切り替える
- 待機系の維持コストがかかる
- 切り替えに時間がかかる場合がある
Active/Activeとは?
Active/Activeは、複数系統を通常時から同時に稼働させる方式です。
構成例
WebサーバーA:処理中
WebサーバーB:処理中
片方が故障した場合、残ったサーバーで処理を継続します。
| 方式 | 通常時 | 障害時 |
|---|---|---|
| Active/Standby | 片方だけ稼働 | 待機系へ切り替え |
| Active/Active | 複数系統が稼働 | 残りで処理継続 |
フェイルオーバーとは?
フェイルオーバーとは、稼働中のサーバーやシステムに障害が起きたとき、待機系・別系統へ処理を切り替える動作です。
冗長化=複数系統を用意する設計
フェイルオーバー=障害時に別系統へ切り替える動作
Google Cloud SQLの高可用性構成でも、プライマリとスタンバイを別ゾーンへ配置し、障害時にスタンバイを新しいプライマリへ切り替える仕組みが採用されています。
フェイルオーバーの詳しい仕組みは、別記事「フェイルオーバーとは?冗長化との違いを解説」で扱います。
データベースの冗長化
Webサーバーだけ複数台にしても、データベースが1台だけなら、そのDBが故障した時点でWordPressやWebアプリが動かなくなる可能性があります。
代表的な考え方
プライマリDB
↓ データ複製
スタンバイDB
障害時にスタンバイを昇格させることで、停止時間を短くします。
データ同期方式でRPOが変わる
同期レプリケーションと非同期レプリケーションでは、障害発生時に失う可能性のあるデータ量が異なります。重要システムではRPO要件に合わせて方式を選びます。
ストレージの冗長化
ディスクやストレージも故障するため、データを複数のディスク・設備へ保存する冗長化があります。
代表例
- RAID
- ストレージレプリケーション
- 複数ゾーンへのデータ複製
- 分散ストレージ
Google Cloud Storageのリージョナル構成では、データを同一リージョン内の複数ゾーンへ冗長保存し、1つのゾーン障害へ耐えられる設計が採用されています。
RAIDも冗長化?
はい。RAIDの一部方式は、複数ディスクを使ってディスク障害への耐性を高める冗長化の一種です。
ただし、RAIDはサーバー全体・ネットワーク・データセンター障害まで防ぐ仕組みではありません。
RAIDだけでは高可用性にならない
ディスクが冗長でも、CPU、メモリ、マザーボード、電源、OSなど他の部分が単一構成なら、サーバー全体は停止する可能性があります。
ネットワークの冗長化
サーバーが正常でも、ネットワーク経路が1本しかなければ、その回線・ルーター・スイッチの障害で外部からアクセスできなくなる場合があります。
冗長化の例
- 複数回線
- 複数ルーター
- 複数スイッチ
- 複数経路
- 複数ISP
重要システムでは、サーバー台数だけでなく通信経路まで含めて単一障害点を確認します。
電源の冗長化
データセンターでは、電源障害を想定した冗長化も行われます。
代表例
- 二重化電源
- UPS
- 非常用発電機
- 複数電源系統
レンタルサーバー利用者が自分でこれらを設置することは通常ありません。 設備側の冗長化はサービス提供会社が管理します。
ゾーン分散とは?
クラウドでは、同じリージョン内でも別のゾーンへサーバーを分散する方法があります。
例
WebサーバーA:ゾーンA
WebサーバーB:ゾーンB
1つのゾーン全体に障害が起きても、別ゾーンでサービスを継続できるようにします。
同じ物理障害へ巻き込まれないようにする
冗長化は「台数」だけでなく、「同じ障害で同時に止まらない場所へ分ける」ことが重要です。
複数リージョンへの冗長化
さらに高い可用性が必要な場合は、地域的に離れた複数リージョンへシステムを配置します。
リージョン全体の大規模障害や災害を想定する場合に有効です。
| 構成 | 主な障害対策 |
|---|---|
| 同一サーバー内 | ディスク障害など |
| 複数サーバー | サーバー障害 |
| 複数ゾーン | ゾーン障害 |
| 複数リージョン | 地域規模の障害 |
ただし、広域冗長化ほどコスト・設計・運用の難易度も高くなります。
冗長化とバックアップの違い
冗長化とバックアップは目的が違います。
| 項目 | 冗長化 | バックアップ |
|---|---|---|
| 主な目的 | 止まりにくくする | 過去の状態へ戻す |
| サーバー故障 | 有効 | 復旧に利用 |
| 誤削除 | 削除も同期する場合あり | 復元可能 |
| ランサムウェア | 被害が複製される場合あり | 独立バックアップが重要 |
冗長化があってもバックアップは必要
同じデータをリアルタイム同期している場合、誤削除や破損もそのまま複製される可能性があります。冗長化はバックアップの代わりではありません。
冗長化とレプリケーションの違い
レプリケーションは、データを別のサーバー・ストレージへ複製する仕組みです。
冗長化を実現する手段の1つとして使われます。
レプリケーション=データ複製
冗長化=複数系統で止まりにくくする設計全体
冗長化とロードバランサーの違い
ロードバランサーは複数サーバーへアクセスを振り分ける仕組みです。
一方、冗長化はサーバー、ネットワーク、データベース、ストレージなどを含むもっと広い設計概念です。
ロードバランサーの詳細は、別記事「ロードバランサーとは?負荷分散の仕組みを解説」で扱います。
冗長化とスケールアウトは同じ?
同じではありませんが、構成が似ることがあります。
| 項目 | 目的 |
|---|---|
| 冗長化 | 障害時も止まりにくくする |
| スケールアウト | サーバー台数を増やして処理能力を上げる |
Webサーバーを2台に増やすことで、負荷分散と冗長化を同時に実現できる場合もあります。
サーバーを2台にするだけでは不十分
2台のWebサーバーがあっても、共通のデータベースが1台だけなら、そのDBが単一障害点です。
不完全な冗長化
Web A ─┐
├→ DB 1台
Web B ─┘
DBが止まれば、Webサーバーが2台とも正常でもサービスは停止します。
確認する単位
Web、DB、ストレージ、ネットワーク、ロードバランサー、DNSなど、サービスを構成する全体を見ることが重要です。
冗長化しても停止する原因
代表例
- 共通データベースの障害
- ロードバランサー障害
- DNS障害
- 同一ゾーン障害
- ネットワーク障害
- 設定ミスを全台へ反映
- アプリケーション不具合
- 誤削除・データ破損
「同じサーバーを複数台並べれば絶対に止まらない」というものではありません。
冗長化には監視が必要
障害を検知できなければ、正常な系統へ切り替えられません。
サーバーが正常か監視
自動フェイルオーバーだけに頼らず、障害通知と復旧手順も用意します。
フェイルオーバーテストも必要
冗長構成を作っても、実際に切り替わるかテストしていなければ本番障害時に動かない可能性があります。
Google Cloudの信頼性設計でも、障害をシミュレーションしてレプリケーションやフェイルオーバー戦略が機能するか定期的に検証することが推奨されています。
テストすること
- 1台停止してもサービス継続できるか
- 切り替え時間は何秒・何分か
- データ損失がないか
- 復旧後に元構成へ戻せるか
- 監視通知が届くか
RTO・RPOと冗長化の関係
どこまで冗長化するかは、停止時間とデータ損失をどこまで許容できるかで決めます。
| 指標 | 意味 |
|---|---|
| RTO | 何時間・何分で復旧したいか |
| RPO | どこまでのデータ損失を許容するか |
例
RTO:5分以内
RPO:ほぼ0
このような厳しい要件なら、複数サーバー、同期レプリケーション、自動フェイルオーバーなど高度な構成が必要になる可能性があります。
冗長化すると費用は高くなる?
一般に高くなります。
サーバーを複数台用意するだけでなく、ロードバランサー、監視、複製ストレージ、別ゾーン・別リージョンなど追加リソースが必要になるためです。
考え方
冗長化コスト < 停止時の損失
ECや予約システムのように停止が売上へ直結するなら、冗長化コストをかける価値が高くなります。
どんなサイトで冗長化が必要?
個人ブログ
必要度:低
自前で冗長構成を作るより、冗長化された共用レンタルサーバーを利用する方が現実的です。
会社案内サイト
必要度:低〜中
数時間の停止が許容できるなら、バックアップ・監視・サポートを優先してもよい場合があります。
予約・会員サイト
必要度:高
停止すると予約や業務に影響するため、冗長化や短時間復旧を検討します。
EC・基幹システム
必要度:非常に高い
停止時間が売上・業務へ直結するため、複数層の冗長化を検討します。
共用レンタルサーバー利用者は自分で冗長化する?
通常は、自分でWebサーバーを2台構成したりロードバランサーを設置したりする必要はありません。
共用レンタルサーバーでは、物理サーバー、ストレージ、ネットワーク、電源などの基盤部分を提供会社が管理します。
契約前に確認すること
- 設備の冗長化
- ストレージの冗長構成
- 障害時の自動切り替え
- バックアップ
- SLA
- 障害情報の公開
- サポート体制
初心者はサービス選びで対応
自分で冗長構成を作るのではなく、基盤側の冗長化や障害対応が整ったレンタルサーバーを選ぶ方が現実的です。
VPSでは自分で設計する場面が増える
VPSではroot権限を持つため、OS・アプリケーションだけでなく、障害時の復旧設計も利用者側で考える必要があります。
VPSで冗長化する場合
- 複数VPSを用意する
- ロードバランサーを用意する
- データ同期を設計する
- DBの冗長化を行う
- 監視・自動切り替えを設定する
- バックアップも別途用意する
VPSを2台契約しただけでは完成しない
データ同期、セッション管理、DB、DNS、フェイルオーバーなどを設計しなければ、実際の障害時にサービス継続できない可能性があります。
冗長化されたサービスを選ぶときの確認項目
| 確認項目 | 見るポイント |
|---|---|
| サーバー冗長化 | 障害時に別系統へ移行できるか |
| ストレージ | 複数ディスク・複数設備へ保存されるか |
| ネットワーク | 複数経路・回線があるか |
| データセンター | 電源・回線の冗長性 |
| 監視 | 24時間監視・自動検知 |
| バックアップ | 冗長化とは別に復元できるか |
冗長化でよくある誤解
よくある誤解
- サーバーを2台にすれば絶対に止まらない
- RAIDがあるからバックアップ不要
- 冗長化すれば誤削除にも対応できる
- ロードバランサーを置けばすべて冗長化される
- 高性能サーバー1台なら冗長化不要
- クラウドなら自動的に冗長化される
「複数あるか」だけでなく「同時に止まらないか」を見る
同じラック・同じゾーン・同じ電源・同じDBに依存していれば、共通障害で複数台が同時停止する可能性があります。
冗長化を考える手順
教科書判定
小規模サイトは「自分で冗長化」より「冗長化済みサービスを選ぶ」
冗長化は、サーバーを2台並べるだけの話ではありません。 Web、DB、ストレージ、ネットワーク、電源など、どこに単一障害点があるかを見る設計です。
個人ブログや一般的な会社サイトなら、自分でActive/StandbyやDBレプリケーションを構築するより、設備・ストレージ・ネットワークが冗長化されたレンタルサーバーを選び、別途バックアップを確保する方が現実的です。
EC、予約、会員、基幹システムなど停止損失が大きいサービスでは、RTO・RPOを決めたうえで、複数ゾーン・DB冗長化・自動フェイルオーバーまで検討してください。
FAQ
Q.冗長化とは簡単にいうと何ですか?
同じ役割を持つサーバーや設備を複数用意し、1つが故障しても別の系統でサービスを続けられるようにする仕組みです。
Q.冗長化とバックアップは同じですか?
違います。冗長化はサービスを止めにくくする仕組み、バックアップは過去の状態へ戻す仕組みです。誤削除やデータ破損に備えるため、冗長化環境でもバックアップは必要です。
Q.サーバーを2台にすれば冗長化できますか?
一部は冗長化できますが、それだけでは十分とは限りません。データベース、ロードバランサー、ネットワーク、ストレージなどに単一障害点が残っていないか確認が必要です。
Q.RAIDがあれば冗長化されていますか?
ディスク障害への冗長性は高められますが、サーバー本体、ネットワーク、電源、OSなどの障害には別の対策が必要です。
Q.個人ブログでも冗長化は必要ですか?
自分で複雑な冗長構成を作る必要は通常ありません。冗長化された共用レンタルサーバーを利用し、バックアップと障害時の復旧方法を確認しておけば十分なケースが多いです。
まとめ
この記事の結論
- 冗長化は複数系統を用意して単一障害による全停止を防ぐ考え方
- 単一障害点をなくすことが基本
- Web、DB、ストレージ、ネットワーク、電源など複数層で考える
- Active/StandbyとActive/Activeなどの構成がある
- フェイルオーバーは障害時に別系統へ切り替える動作
- ロードバランサーはアクセス分散と障害サーバー切り離しに使われる
- 冗長化とバックアップは別物
- 重要システムではフェイルオーバーテストまで行う
- 小規模サイトは冗長化済みレンタルサーバーを選ぶ方が現実的
冗長化の本質は「台数を増やすこと」ではなく、「1か所の故障で全体が止まらない設計」にすることです。 自分のサイトで許容できる停止時間と損失を考え、必要な範囲だけ冗長化してください。
「フェイルオーバーとは?冗長化との違いを解説」「ロードバランサーとは?負荷分散の仕組みを解説」「スナップショットとは?バックアップとの違いを解説」もあわせて確認してください。