Poundで作るロードバランサとSSLラッパ:実用 Apache 2.0運用・管理術(5)(4/4 ページ)
Webサーバの負荷を軽減する方法として、リバースプロキシによる代行とロードバランサによる分散が考えられる。今回は、これらによる負荷の低減方法について解説する。(編集部)
LVSを使った本格的なクラスタサーバの利用
今回紹介したリバースプロキシでは、複数台のWebサーバを用意することである程度耐障害性を高めます。ただし、リバースプロキシ自体は1台であるため、リバースプロキシが停止してしまうとHTTPサービスがすべて停止してしまいます。つまり、何台Webサーバを用意したとしても、依然としてシングルポイントフェイルが存在するのです。
フロントエンドのロードバランサも冗長化すれば、シングルポイントフェイルを解消できます。そのためには、単に冗長化するだけでなく、冗長化したサーバ同士が互いに死活監視を行うなどの連携が必要になります。
クラスタの詳細については、「Linuxクラスタリングへの招待」を参照してください。
Linux Virtual Server
LVS(Linux Virtual Server)は、TCP/UDPの情報を基にしたレイヤ4スイッチと呼ばれるルーティング制御を実現します。そのためWebサーバに限らず、メールやFTPなどのサービスにも応用できます。
ただし、対応カーネルが必要になるなど、インストールも大掛かりになります。また、LVS自体はカーネルを拡張するコードであるため、ハートビート関連パッケージや設定ツールなど、LVSに対応したクラスタソフトウェアを別途導入する必要があります。LVSにも「ipvsadm」コマンドが用意されていますが、操作が複雑です。
ちなみに、LVSに対応した代表的なパッケージとしてUltra Monkeyがあります。
Linux Virtual Server Project
http://jlvs.infoscience.co.jp/
Ultra Monkey
http://www.ultramonkey.org/(配布元)
http://ultramonkey.jp/(日本語)
そのほかの冗長/負荷分散構成
今回紹介した方法以外にも、DNSやiptablesなどを利用してソフトウェアでできる冗長化や負荷分散もあります。以下の記事も参考にしてください。
- iptablesのDNATを応用した負荷分散
iptablesテンプレート集
テンプレート12「iptablesによる負荷分散とDoS対策」 - DNSのマルチホームホストによる負荷分散
実用BIND9で作るDNSサーバ
第3回「メール/Webサーバを効率的に動かすゾーン設定」 - DNSのSRVレコードの利用
実用BIND9で作るDNSサーバ
第14回「DNSの拡張仕様、SRVレコードとENUM」
3回にわたり、Apache Webサーバの最適化について解説しました。最適化と堅牢性、セキュリティはトレードオフの関係にあります。最適化にとらわれるあまり、堅牢性やセキュリティがおろそかにならないよう注意しましょう。
次回はLDAP認証+WebDAV+SSLでセキュアなファイルサーバを構築する手法を紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.