Webサーバのシステム構成例
Webサーバのシステム構成例
本連載の最後にWebサーバのシステム構築について解説します。
Webサーバはその規模や予算、運用方法を考慮するために様々なシステム構成をとります。まず最も基本的なシステム構成例を図1に示します。

図1:RHEL4で実現するWebサーバの基本構成
図1はWebサーバが1台の構成例です。WebコンテンツはWebサーバ内に保存されています。
Webクライアントからhttp経由でWebコンテンツにアクセスした場合、URLの名前解決が必要となりますのでDNSサーバも必要です。DNS サーバがないと、WebクライアントはWebサーバのIPアドレスでアクセスしなければなりません。よって、通常はDNSサーバが必須です。
図1の構成のメリットとして、Webサーバが1台であるため低価格でWebサーバ環境が構築できることがあげられます。しかしエンタープライズ向けのシステムとしては、連続稼動の安定性に問題があるといえます。
なぜならWebサーバに障害が発生した場合に完全にサービスが停止してしまうからです。またセキュリティの観点からも問題があります。このWebサーバへ不正侵入があった場合、このシステムのWebコンテンツすべてを失いかねません。
したがって通常Webサーバなどは可用性とセキュリティを考慮する場合、複数台のマシンで構成するのが一般的です。
次に図2に複数台のWebサーバを構成した場合の例を示します。

図2:複数台のWebサーバで構成した例
図2はWebサーバを複数台で構成し、さらにWebコンテンツを各Webサーバに持つ場合の例です。Webサーバは複数台あるため、1台に障害が発生しても他のサーバが稼動していればWebサービスは提供できます。
またセキュリティ面では、1台のWebサーバに不正侵入を受けたとしても他のサーバへも同時に侵入をしなければならないため、Webサーバが1台のときに比べて格段に保全性が高くなっています。
しかしこのシステムではWebサーバそれぞれにWebコンテンツを持っているため、Webサーバの1台に障害が発生した場合には、そのサーバに保管されているコンテンツにアクセスができなくなります。
そこで障害が発生した場合にも他のサーバを使ってアクセスできるようにするために、Webサーバ同時でWebコンテンツを同期させることが考えられます。
同期させるには先ほど述べたrsyncコマンドなどのレプリケーションと呼ばれる同期処理を施すのが一般的です。Webコンテンツのレプリケーショ ンを行う必要があるシステムでは、Webコンテンツを保管している場所が複数にまたがるため、コンテンツの管理が煩雑になる傾向が強く、システム障害時の 復旧作業もコンテンツを集中管理した場合に比べてはるかに複雑になります。
このようなシステムの複雑さを解消するためには、外部ストレージを持ったファイルサーバにWebコンテンツを集約する方法が考えられます。ファイル サーバが高可用性のクラスタリングで構成しておけば、ファイルサーバのクラスタノードのうちどれかに障害が発生してもコンテンツへのアクセスは可能です。