最近ロードバランサがらみで一悶着あった。
最近のロードバランサにはつないで来たIPで振り分けるパターンと クッキーを設定して振り分けるパターンがあるらしい。
基本的なロードバランサの動きとして個人的に認識してるのは、 仮想代表アドレスに特定の端末からつないだら、少なくともその日は そのサーバにしかつながなくなるという仕様。IPでラウンドロビンしてる場合ってことかな。
ロードバランサの設定的に、ロードバランサがつないできたブラウザにCookieでキーを設定させて そのキーで振り分けるってやつがある。このやり方だと、ブラウザを起動し直した場合は、 また、ロードバランシングされて別のサーバにつながる可能性があるという形。
でだ、困ったことにWindows8+IE11の環境だと、唐突にIE11のCookieが消えるという事象が発生するもよう。 なので、Webアプリを普通に使っている場合に唐突にサーバが切り替わってセッションなどが引き継がれず動作が不安定になる。
この事象を確認したい場合は、ブラウザの開発ツール(F12キーを押す)でネットワークの内容を取得して、 詳細タブのCookieを確認する。
で、Cookieをひたすら確認して、落ちた画面で使ってるCookieの値が唐突に変わったり無くなったりしたら FAと考えていいかもしれない。
ロードバランサやってるベンダがどこかにもよるけど、IPでロードバランシングしてもらうように設定を変える必要があると思う。
2016/9/10追記
もうちょっと調べてみたら、RFC2965で規定されてるCookieの↓の話なのかもしれない。IEはこれの最低値に準拠してるらし。
少なくとも300個のCookie 少なくとも4096バイトのCookie ホストかドメインで20個のCookie
Microsoft的には⇒で書いてあった。https://support.microsoft.com/ja-jp/kb/306070
っていうか仕様の不具合なんじゃ・・・。まー、確かに無尽蔵にCookie使うのもどうかと思うけども。だいぶ昔のRFCっぽいし、ロードバランサがCookie利用するなんて考慮してなかったんだろうし。
とりあえず、IPでラウンドロビンしてもらうようにするしかなかね。。。
この話の続き。