ロードバランサのCookiePersist

ロードバランサの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)で処理される特徴がある。