クラウド時代のアプリケーション配信を最適化するCitrix NetScaler
サーバーオフロードと高速化(アクセラレーション)
個人情報や金銭に関係する情報を取り扱うECサイトでは、WebサーバーとWebブラウザ間のトラフィックをSSLと呼ばれる暗号化通信を使用して保護するのが一般的である。コンピュータにおける暗号化(と復号化)は、「数学的な解析の困難さ」に基づいており、暗号化の処理とは複雑で大規模な計算にほかならない。そのため、大量のSSLの接続リクエストはWebサーバーのCPUに負荷をかける。
今でも、「〇時からチケット販売開始!!」などのケースでは、これが理由でサイトが新規SSLリクエストを受け付けられなくなるような現象に遭遇することがある。そして、これを解消するために、新しいサーバーを次々に追加しなければならないといった状況に陥る。さらにSSLでは、そのサーバーの正当性を証明する「証明書」と呼ばれる情報を持つ必要があるが、サーバーの数が増えればそれだけインストールしメンテナンスする必要がある。
このような問題に対する解決策の一つがSSL処理をWebサーバー本体の処理から切り離す(オフロード)ことである。暗号化で用いられる数学アルゴリズムはASICに実装しやすく、サーバーCPUよりも高速な処理が可能になる。また、証明書管理も多数のサーバーで行う必要が無くなるため、管理も容易になる。SSLの処理はWebサイトの構築と深い関係があるため、この機能をロードバランサーに統合することは、至極自然と言える。
図3:大量のSSL処理によるCPUの負荷を避けるため、SSL処理をWebサーバー本体の処理から切り離す(クリックで拡大) |
他にも、現在一般的に使用されているHTTP 1.1というプロトコルには、大きなデータを圧縮することで低速な回線でも利用しやすく「圧縮(compression)」する機能が含まれている。この圧縮もロードバランサーで処理することでサーバーのCPU負荷を軽減することができる。
もう一つ、汎用CPU、汎用OSで構築されるWebサーバーが苦手とする処理がある。HTTPの下で使用されるTCPというプロトコルの、接続確立~通信~切断という一連の接続管理である。クライアントからの膨大な数の接続を処理する上で、これがCPU負荷とメモリ消費に影響を与える。
これに対しても、Webサーバーのフロントエンドとなるロードバランサーでいったんリクエストを終端し、後方のサーバーに対しては少数の長時間接続を維持するコネクションに多重化することで、サーバーの負荷を軽減できる。ロードバランサーは専用の目的のOSで提供されるため、このような特定のチューニングは標準的に実装できる。
図4:TCP接続多重化(クリックで拡大) |
このように、Webサーバーが本来苦手とする処理を、専用機器であるロードバランサーにオフロードすることで、サーバーの数をやみくもに増やすこと無く、より優れた応答性能の最適化が実現できる。
さらに、頻繁にアクセスされるコンテンツは、ユーザーに近い場所にキャッシュするという手法がある。ロードバランサーでキャッシュを管理しクライアントへ返すことで、実際のサーバーへの負荷を減らすと同時に、より高速な応答が可能になるという利点が生まれる。
Webサーバーとセキュリティ
インターネットに接続されるサイトを保護する手段としては、ファイアウォールがよく知られている。従来ながらのファイアウォールは、パケットの送信元と宛先IPアドレス、プロトコルの種類とポート番号で外部からのアクセスを制限するものである。一方でWebサーバーを標的とする攻撃は、HTTPのリクエストやcookie、送受信されるデータを対象としている。よく知られているSQLインジェクションや、クロスサイトスクリプティング(XSS)などは、その代表である。また、不正なデータを送りつけプログラムの誤動作を起こしたり、サービスを停止させたりする攻撃もよく知られている。
さらに最近は、HTMLだけでなくXMLやJavaScriptなども防御しなければならないなど複雑さも増している。これらもまたL7の情報であり、L4までの情報を取り扱う従来型のファイアウォールでは対応できない。L7に対する攻撃を防御する要素が「Webアプリケーションファイアウォール(WAF)」である。もちろんWebサーバーソフトおよびプログラム側で、これらの不正なデータをチェックしても対応できるのだが、これには膨大な時間を要する。SQLインジェクションやXSSは、攻撃手法が指摘されてから10年近い年月が経過しようとしているにも関わらず、未だに被害が発生している。WAFを適用することで、効率良くWebサイトを保護できるようになる。
図5:WAFを適用して効率良くWebサイトを保護する(クリックで拡大) |
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 仮想アプライアンスの最新技術
- 機密性の高いデータをクラウドで安全に扱うために
- やってみなけりゃ分からない? WAFの「活用メリット」と「落とし穴」
- コンテナ領域で存在感を強めるNGINX、OpenShiftとの親和性でKubernetes本番環境のセキュリティや可用性を追求
- アプライアンスの動向とWebサイトの最適化
- ネットワールド、クラウド事業者向けSDN管理ソフトウェア「Anuta nCloudX」を発売
- VMware NSXができること~ネットワーク仮想化編~
- サーバー仮想化最新技術Citrix XenServer 5.6
- Web開発とクラウド/仮想化技術
- Web攻撃や内部犯罪に専用機で対抗