Proxy Serverの検証

今回はProxyの運用について考えてみました。

小規模の会社であってもProxyの設置は有効だと思います。
Proxyを設置するにあたって問題になってくることが障害発生時のシステム維持と高負荷時の遅延だと思います。
そこで、今回はその二点を解決する冗長化とロードバランサーを検証してみることにしました。

冗長化

冗長化とはシステムに異常が発生し、本来の動作を行えなくなってしまった際に、予備のシステムに切り替え機能を維持し続けられるようにすることです。

今回は冗長化のシステムを実現するためにHeartBeatを使用しています。
まったく同じ構成のPCを二台用意してIPアドレスをPC1:192.168.1.1,PC2:192.168.1.2に設定します。
このIPはお互いを監視するために使用します。

そして、PC1に仮想IPとして192.168.2.1を設定します。
これは社内側から接続する際に使用します。

普段はPC1が稼働し、仮想IPの192.168.2.1で接続します。
PC1に障害が起きた際にPC2はPC1から仮想IPを引き継ぎ、192.168.2.1の接続先がPC2になります。
これで障害が起きたことを認知させずにシステムを継続させることができます。

ロードバランサー

ロードバランサーの主な役割は負荷を分散させることですが、分散先が複数台ある場合障害が起きた際やメンテナンスで一時的にサーバーを止める際も役立ちます。

今回はproxyの負荷分散を行いたいので、HAProxyを利用しました。
HAProxyは平均的な負荷になるように分散したり、ある特定の接続先だけ振り分けたりといったことが可能です。

高負荷の原因として真っ先に疑うべきは動画サイトへのアクセスだと思います。
そこで今回は3台のサーバーに振り分けを行い、通常webアクセスをProxy1,Proxy2に分散し、動画サイトへのアクセスはProxy3へ振り分けることにします。
動画サイトだけ振り分けを別にした理由は、動画再生で帯域が圧迫され慢性的にネットワークの速度が落ちていたためです。

結果

冗長化とロードバランサーの実装をしたことで、メンテナンス性の向上、速度の改善、システムの安定性を高めることができました。
動画サイトへのアクセスもProxyやRouterを別にしたので帯域の圧迫など改善されることが確認できました。