ロードバランサのCookiePersistはよく利用される。
ロードバランサは「負荷分散」が基本的な目的なのでユーザがアクセスしてきた際にどのリアルサーバに割り振るかが基本的な役割だ。
その役割の方法のひとつがCookiePersistという方法だ。
CookiePersistはクライアントのブラウザからサーバへのアクセス時に特定のCookie情報をもとに割り振るサーバを決定する方法だ。
流れとしては以下のようになる。
【想定環境】
クライアントA
サーバV
リアルサーバX,Y(サーバVへのアクセスを割り振られる実際のサーバ)
まず、クライアントAからサーバVへアクセス。
この際はまだCookiePersistで利用するCookieの情報がないため、ロードバランサの割り振り方法(ラウンドロビンなど)に従ってサーバVからリアルサーバXまたはYへ割り振られる。
そして、その応答をリアルサーバからロードバランサが受ける。
そしてサーバV(ロードバランサ上に設定されているサーバ)がクライアントAにレスポンスを返す際にある特定のCookieを付加して返す。これがCookiePersistで利用される。
たとえばこの際にクライアントAに返されるCookie名がAで値が1とする。
するとクライアントにはCookie値としてA:1が渡される。
そして次回、サーバVへのアクセス時にはブラウザに保存されているCookieが利用されて、このCookie値 A:1がサーバVに渡される。
渡されたロードバランサ上のサーバVはこのCookie値を見てどのリアルサーバに割り振るかを決定する。これがCookiePersistだ。
つまりクライアントに渡された特定のCookie名とその値によって割り振るリアルサーバを決める手法という事である。
このようなPersist(持続的な)割り振り手法としてソースIPパーシストなどもあるがCookiePersistはCookieを利用するためHTTPプロトコル(L7)で処理される特徴がある。