システムを運用する上で避けて通れないのが「障害」です。
そのため、サービスを止めないための仕組みとして冗長化が重要になります。
この記事では、代表的な冗長化の実現方法について整理します。
冗長化とは
冗長化とは、一部が故障してもシステム全体が停止しないように予備や代替手段を用意することです。
例)
・可用性の向上
・障害時の継続運用
・ダウンタイムの最小化
SPOF(単一障害点)とは
SPOF(Single Point of Failure)とは、そこが壊れるとシステム全体が停止してしまう箇所のことです。
例)
・電源が1系統しかない
・DBサーバが1台のみ
・ネットワーク機器が単体構成
冗長化の主な実現方法
① マルチプロセッサ
1台のサーバに複数のCPUを搭載する構成
・1つのCPUが故障しても他で処理継続可能
・処理性能の向上にも寄与
② 多重化電源
電源ユニットを複数搭載する仕組み
・片方の電源が故障しても稼働可能
・データセンターではほぼ必須
③ RAID(ディスク冗長化)
複数のディスクを組み合わせて冗長性を確保
主な種類:
RAID1:ミラーリング(完全コピー)
RAID5:パリティ分散
RAID10:高速+冗長
④ 通信回線の多重化
ネットワーク回線を複数用意する構成です。
・回線断でも別回線で通信可能
・ISP障害にも対応可能
⑤ ネットワーク機器の多重化
ルータやスイッチを複数構成にします。
・アクティブ/スタンバイ構成
・VRRPなどで切り替え
⑥ クラスタリング / ロードバランシング
複数のサーバを連携させる仕組みです。
クラスタリング:障害時に別サーバへ切替
ロードバランシング:負荷分散+冗長化
⑦ CDN(Content Delivery Network)
コンテンツを分散配置して配信する仕組みです。
・地理的に近いサーバから配信
・オリジンサーバ障害時もキャッシュで対応可能
⑧ レプリケーション
データを複数のサーバにコピーする仕組みです。
・マスタ/スレーブ構成
・読み取り分散も可能