こんにちは。新規事業の開発や既存業務の効率化などに使える補助金・助成金の無料診断 / 申請支援を行う『補助金サポート』を提供しているクラウド軍師運営チームです。

サーバ冗長化は、システムの安定稼働に有効な手段です。災害の多い日本では、BCP対策の一環としても冗長化を検討しなければなりません。

サーバの冗長化にはいくつかの構成や手法があり、それぞれ特徴が異なりますが、適したものを選ぶことで、システムの安定性はより良いものになります。

そこで今回は、サーバの冗長化について、目的や構成、手法など詳しく解説します。

サーバ冗長化とは

メインシステムにプラスして、予備のシステムを並列稼働させておくことを、「冗長化」と呼びます。
万が一メインシステムに障害が起きた場合でも、予備のシステムを活用してシステムの稼働を維持することができることから、冗長化はBCP対策として有効です。
また、冗長化によって安全性が向上した状態、つまりシステムの可用性が高い状態を指して、「冗長性がある」と表現することもあります。

同様に、メインサーバだけでなく予備のサーバも並列稼働させておき、メインサーバのトラブル発生時には予備サーバを活用することを、「サーバの冗長化」と呼びます。
サーバの冗長化では、予備のサーバは複数用意されます。そして、メインサーバのトラブル発生時には、負荷を分散すべく、その処理を複数の予備サーバに振り分けます。

冗長化と二重化の違い

冗長化と混同されやすいものに、「二重化」という言葉があります。
これらの言葉には、次のような違いがあります。

【冗長化】
予備のシステムが複数用意されている状態
【二重化】
予備のシステムが1つ用意されている状態

冗長化の中で、予備のシステムが1つだけ用意されている状態を二重化と呼びます。予備のシステムが2つ、3つと多くなっていけば、それは冗長化と呼びます。
二重化は冗長化の一種で、予備が1つだけの場合に使われると考えてください。

サーバを冗長化する目的

サーバ冗長化は、安定したシステム運用のために行われます。具体的な目的としては、「BCP対策」や「各サーバへの負荷分散」が挙げられます。

BCP対策

BCPとは、事業継続計画のこと。災害や火災などの緊急時に、被害を最小限にとどめながら事業を継続、または速やかに復旧させるための計画を指します。
冗長化サーバは、効果的なBCP対策のひとつ。緊急時にメインサーバが停止してしまった場合でも、冗長化サーバを用いれば、時間をかけず速やかにシステムを復旧させることが可能です。

各サーバへの負荷分散

サーバの冗長化を行なっておけば、ひとつのサーバへの負荷が大きくなった場合には、冗長化サーバにその負荷を分散させることができます。これにより、アクセス集中などによるサーバアウトを予防することができます。

冗長化のシステム構成

代表的な冗長化のシステム構成は、次の3種に分類されます。

①アクティブ・スタンバイ構成
②マスター・スレーブ構成
③マルチマスター構成

それぞれどのような構成なのか、詳しく見ていきましょう。

①アクティブ・スタンバイ構成

メインサーバに障害が起きた時に、全く同等の予備のサーバに切り替えて、サーバの稼働を維持するという、一般的な構成です。予備のサーバは常に待機状態で運用されているため、トラブル発生時には速やかな切り替えが可能です。

ただし、予備のサーバをスタンバイさせておくにはコストがかかり、その台数が多いほど費用は嵩みます。

②マスター・スレーブ構成

複数のデータベースを制御するマスター機(サーバ)と、その制御下で動作するスレーブ機(データベース)から成る構成です。この場合、普段はマスター機から参照を行いますが、障害発生時にはスレーブ機を用いることで、冗長性を確保します。
ただし、データベースであるスレーブ機では、参照は行えるものの、書き込みは行えません。

③マルチマスター構成

前述のマスター・スレーブ構成のスレーブ機が、全てマスター機の役割を担う構成を、マルチマスター構成と呼びます。この構成では、全ての機で、参照も書き込みも可能です。
もし予備のサーバに障害が起こったとしても、さらに予備のサーバがスタンバイしているため、高い冗長性を保つことができます。

ただし、予備のサーバが常に待機している状態のこの構成では、運用にコストがかかります。

サーバ冗長化の主な手法

サーバ冗長化の手法は、「ホットスタンバイ」と「コールドスタンバイ」の2種類に分けることができます。これらはどちらも運用系のメインサーバに加え、待機系の予備サーバを用意しておく点で共通していますが、待機系の起動のタイミングが異なります。

ホットスタンバイ

待機系サーバに常時電源が入っており、障害発生時には運用系に代わってすぐに稼働できる手法が、「ホットスタンバイ」です。この手法では、運用系と待機系の間で監視が行われ、異常を検知すれば、代替稼働が行われます。

ホットスタンバイは、待機系の電源を入れておく点やハードウェア・ソフトウェアの用意が必要な点でコストが高いものの、障害発生時のサーバ切り替えが即座に行える点で優れています。

コールドスタンバイ

メインサーバの障害や故障が発生してから、待機系の電源を入れ稼働させる手法を、「コールドスタンバイ」と呼びます。待機系は、普段はスリープ状態になっていて、必要な時には自動または手動で電源を入れ、稼働させます。

この手法では、サーバが一時的に停止します。そのため、停止してもシステムやサービスに損害が出ない場合にのみ、利用できます。
ただし、構成はシンプルであるため、ホットスタンバイに比べコストは安く済むことが多いです。

冗長化を実現するサービス

最後に、冗長化を実現する技術やサービスの例をご紹介します。冗長化を効果的に実現したい方は、サービスの導入も検討してみましょう。

RAID

RAID(Redundant Arrays of Inexpensive Disks)とは、1つのサーバで複数のハードディスクを一元管理し、運用や制御を行う技術のことです。RAIDを利用すれば、あるハードディスクが故障しても、他の問題のないハードディスクを用い、システムの稼働を続けることができます。

これは前述のアクティブ・スタンバイ構成を実現する技術のひとつであり、高い冗長性を期待できることから、多くのシステムで導入が進められています。

DRBD

DRBD(Distributed Replicated Block Device)とは、ネットワークを通して、複数のサーバのストレージを同時複製することができるソフトウェアです。障害発生時には、待機系に切り替えて稼働し、システムを存続させることができます。

1つのサーバ内で完結するRAIDと違い、DRBDでは複数のサーバを用います。またこのソフトウェアはオープンソースで、無料で利用することができます。

VMWare

仮想化サービスであるVMWareも、冗長化には有効です。仮想化では、物理サーバ内で複数の仮想サーバを構築することができます。これにより、1台のサーバで複数のサーバを運用することが可能になり、システムの冗長性を向上させることが可能です。

また、VMWareはクラウドサービスであるため、実際には物理サーバの用意も不用で、手軽に冗長性の確保が行えます。

まとめ

アクセス集中や故障などによるサーバダウンは、サービスの停止を引き起こし、販売機会の減少に繋がります。頻繁にサーバダウンが起こっているようなサービスに対しては、顧客の信用も失われかねません。

予備サーバを用意するサーバ冗長化は、サービスの可用性向上に役立ちます。災害やテロなどのリスクに備えるためにも、この対応は必要でしょう。