注目の書籍

好評発売中!

IT業界徹底研究就職ガイド2013年版

IT/ネット業界で働くと いうことを分かりやす く解説。2013年3月卒 業の学生向けの1冊。

必聴講座ご紹介

ビッグデータ EXPO 2012春
ビッグデータ時代に備えて〜今検討すべき情報分析基盤の全貌とは

日本マイクロソフト


ビッグデータ EXPO 2012春
ICTを活用した、情報爆発時代の新たな価値創出

NEC


Cloud Days Osaka 2012
会社を強くするためのクラウド×ソーシャル活用術

セールスフォース・ドットコム

ネットワーク・エンジニア倶楽部
佐野裕のサーバ管理者日記

Cookieを利用したセッション維持(Sticky)の問題点

2008/07/31

ロードバランサーの機能のうち、セッション維持は重要な役割な一つです。セッション維持を実現するための方法としては主に4つあります。

  • ソースIPアドレス利用
  • Cookie利用
  • SSL Session ID利用
  • URL利用

一番手軽なのはソースIPアドレスを利用する方法なのですが、NAT(Network Address Translation)環境では全てのマシンが同じIPアドレスに見えてしまうのでこの方法が使えない場合も多いと思います。そんなわけで私はこれまでCookieを利用する方法をよく使っていました。しかし最近になってCookieを利用したセッション維持が失敗するケースが増えてきました。それはなぜでしょうか?

Cookieを利用する方法の問題点

Cookieを利用したロードバランスでは、セッション情報をCookieに書き込みます。ところでCookieの仕様をRFC2965で確認してみると

  • at least 300 cookies(少なくとも300個のCookieをサポートすること)
  • at least 4096 bytes per cookie(少なくとも4096バイトのCookieをサポートすること)
  • at least 20 cookies per unique host or domain name(少なくともユニークホストかドメインで20個のCookieをサポートすること)

と記されています。ということは、WEBブラウザーを使っているうちに一つのユニークホストもしくはドメインで20個以上のCookieが使われるか4KBの容量を超えてCookieが使われるとCookieを利用したロードバランスが失敗する可能性が出てきます。

解決方法はあるか?

Cookieを利用したセッション維持を行うのにWEBブラウザーのCookie領域が使えないのであればそもそもCookieを利用したセッション維持が成り立ちません。もしそれが致命的なのであれば、URLを利用したセッション維持方法に変える等根本的な解決方法を模索する必要がありそうです。

■変更履歴
Cookieを利用したセッション維持に失敗する理由として当初はタブブラウザーの問題と記しましたが、著者の誤解であることが判明しましたので、訂正させていただきます。申し訳ありませんでした。[2008/08/04 12:50]

著者プロフィール

 国内某有名ITベンチャー企業に創業メンバーとして携わる。国内最大規模のシステムを構築運用してきたほか,社内情報システム業務を経験。韓国の交友関係が豊富なことから,韓国関連で多数のシステムインテグレーションを行ってきた。

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介