レイヤー7スイッチ機能の実装
HTTPセッションの永続性確保は、ロードバランサに任せるのが一般的です。しかし、スケールアウトが可能な仕様で、Webアプリケーションの機能 の一部として実装することも可能です。PHPの場合、HTTPセッション情報を任意のシステムに保存するしくみを提供しています。このしくみを使用すれ ば、複数のWebサーバーにアクセスの分散を行い、システム全体のスケーラビリティを確保しつつ、HTTPセッションの永続性を維持するしくみが簡単に実 装できます。
商用ロードバランサによるレイヤー7スイッチは、アクセスするWebサーバーを固定化することにより、HTTPセッションの永続性を確保していま す。HTTPセッション情報をデータベースに保存すると、複数のWebサーバーを利用している場合も常に同じセッション情報にアクセスでき、商用のロード バランサでスイッチングするのと同じように永続性を維持することが可能になります(図17)。

しかし、この構成では、Webシステム全体のパフォーマンスはセッションデータベースサーバーの処理能力の制限を受けてしまいます。
セッションデータベースサーバーを追加し、特定のセッションIDでWebシステムにアクセスした場合に、同じセッション情報にアクセスできるようにするのは簡単です(図18)。

図18:セッションIDでアクセスするセッションデータベースを変更
バックナンバー
この記事の筆者
University of Denver卒。同校にてコンピュータサイエンスとビジネスを学ぶ。株式会社シーエーシーを経て、エレクトロニック・サービス・イニシアチブ有限会社を設立。Linuxはバージョン0.9xの黎明期から利用してるが、オープンソースシステム開発やコミュニティへの参加はエレクトロニック・サービス・イニシアチブ設立後から。PHPプロジェクトのPostgreSQLモジュールのメンテナ、日本PostgreSQLユーザ会の四国地域での活動等を担当している。
筆者の人気記事
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。