基本的なWebシステムの高性能化手法
前回に引き続き、Webシステムの高性能化手法について解説していきます。今回はアクセス分散について説明します。
アクセス分散の基礎知識
スケールアウトにアクセスの分散は欠かせません。アクセスを分散するためには、 レイヤーを利用します。レイヤー3スイッチと呼ばれるタイプのアクセス分散は、IPレベル(レイヤー3)でアクセスを分散します。これに加えてWebシス テムでのアクセス分散では、CookieやURLに埋め込まれたセッションIDによってスイッチングを行うレイヤー7スイッチが利用されます(図7)。ま た、レイヤー3、レイヤー7以外にDNSを利用した負荷分散も一般的に行われています。

図7:OSI参照モデルとWebのアクセス分散
アクセス分散で重要な注意点は、HTTPセッション管理が必要なWebシステムで単純にアクセスを分散した場合、HTTPセッションを維持できなく なる場合があるということです。Webシステムでは接続の永続性維持が必須になります。レイヤー7スイッチの必要性と実装は第5回で詳しく解説します。
![]()
リバースプロキシ
Webプロキシはもともとキャッシュ可能なデータをプロキシサーバーでキャッシュし、組織内の Webクライアントのインターネットアクセスを高速化することを目的に開発されました。もともとのプロキシの利用方法とは、反対(リバース)に、Web サーバー側のアクセラレータとして利用するWebプロキシをリバースプロキシといいます(図A)。

図A:プロキシとリバースプロキシ
最近のWebサーバーはデータベースとアプリケーションを使い、動的なコンテンツをオンデマンドで作成することが一般的になりました。動的コンテン ツの作成は静的コンテンツを送信するより何倍も(場合によっては何百倍も)の処理時間が必要となることも珍しくありません。この負荷を少しでも軽くするた め、静的なコンテンツのリクエストをリバースプロキシに代理応答させます。
バックナンバー
この記事の筆者
University of Denver卒。同校にてコンピュータサイエンスとビジネスを学ぶ。株式会社シーエーシーを経て、エレクトロニック・サービス・イニシアチブ有限会社を設立。Linuxはバージョン0.9xの黎明期から利用してるが、オープンソースシステム開発やコミュニティへの参加はエレクトロニック・サービス・イニシアチブ設立後から。PHPプロジェクトのPostgreSQLモジュールのメンテナ、日本PostgreSQLユーザ会の四国地域での活動等を担当している。
筆者の人気記事
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。