PR

単体のWebサーバーでは処理しきれないユーザー要求を,複数のサーバーに振り分ける負荷分散装置――。大規模なWebサイトの構築に不可欠である。しかしネットワーク全体を見てうまく導入しなければ,思わぬトラブルに陥ることがある。今回から4回に分け,負荷分散装置を使いこなすノウハウを解説する。

 負荷分散装置を導入しても,サーバーのレスポンスが改善しなかったり,逆に悪化する場合がある。SSLでデータを暗号化する場合やWebサーバーとバックエンドの基幹サーバーを連携させる際は要注意だ。

 Webブラウザからサーバーに至るまでの全経路を考慮して,最適な導入方法を考えなければならない。

1台のサーバーに処理が集中
SSLアクセラレータで解決

SSLの暗号・復号化処理はWebサーバーに大きな負担をかけるため,負荷分散装置が不可欠。しかし,特定のサーバーに負荷が片寄ることがある。

 A社はインターネットを使って商品の販売を手がける自動車保険大手。契約内容が第三者に見られないように,SSLを使って顧客とやり取りするデータを暗号化している。

 運用開始して数カ月,アクセス数が増えWebサーバーにかかる負荷が当初より重くなってきたことから,負荷分散装置を導入。複数のWebサーバーに処理を振り分けるようにした。

送信元アドレスごとに振り分けた

 A社のように,Webサーバーで保険の受付から契約,入金処理に至るまでの一連のセッションを処理する場合,一人の顧客に対する処理を,同じWebサーバーで実行させなければならない。ページが変わるたびにアクセス先のWebサーバーが変わると,処理を引き継げないからだ。

 セッションの維持は,負荷分散装置の役割である。負荷分散装置は,通過するパケットの内容を識別して同じトランザクションを判断し,顧客が最初にアクセスしたWebサーバーに2回目以降も割り当てる。

 SSLの復号化処理をWebサーバーに実行させていたため,負荷分散装置を通過するパケットの中身は暗号化済みのデータだった。このため,SSLのセッションIDか,送信元のIPアドレスでしかセッションを判別できない。

 そこでB社は,送信元IPアドレスでセッションを判別するように負荷分散装置を設定。同一のIPアドレスのパケットには,すべて同じサーバーが割り当てられるようにした。SSLセッションIDでセッションを判別できない理由は,広く使われているWindowsのIE(internet explorer)が,安全性確保のため内部で定期的にSSLセッションIDを変える仕組みだからだ。