LoginSignup
2
3

More than 1 year has passed since last update.

Azure Application Gateway の Cookie ベースのアフィニティ において、 Cookie の有効期限はいつまでか

Last updated at Posted at 2023-03-28

Cookie の有効期限

Azure Application Gateway で Cookie ベースのアフィニティ で、 Cookie の有効期限はいつまでか、公開情報を探してみたのですが見つけられなかったため、検証して確認をしてみました。

Cookie ベースのアフィニティ って?

Application Gateway は、リスナー(フロントエンド IP アドレス、プロトコル、およびポート番号で構成)でクライアントからの要求を受け付けます。受け付けた要求は、リスナーに関連付けられているルーティング規則に沿って評価され、どのバックエンドプールに要求をルーティングするかが決まります。
バックエンドプール内にいくつか正常なバックエンドサーバーがある場合、基本的にはラウンドロビンで負荷分散が実行されます。

しかし、バックエンドのサーバーが変更されてしまうと(ラウンドロビンでは)困る場合があります。
そういった場合、Application Gateway で Cookie ベースのアフィニティを有効にすることで、Application Gatewayは、同じサーバーに転送して処理できます。

検証してみた

[ Application Gateway ] + [ Backend となる VM ] といった環境であれば、以下の公開情報を参照すれば手軽に作成することができます。

Cookie ベースのアフィニティは、Application Gateway を作成する途中、バックエンド設定を行う際に、 [ Cookieベースのアフィニティ] の項目がありますので、ここで有効化を選択すれば、利用することができます。
Application Gateway を作成済みの場合でも、同じく、バックエンド設定を掘っていくことで設定箇所に行くことができます。
なお、[ アフィニティCookie名 ] は何でもよいかとは思いますが、マルチサイトの場合には、同名Cookie名だと上書きされてしまうので、重複させないようにだけ気をつけます。

image.png
image.png

あとは、セッションアフィニティを有効化した Application Gateway のバックエンドとして、WebサーバIIS入りWindowsサーバーを配置したうえで、手元のPCからブラウザアクセスし、Cookieの有効期限を確認してみます。

確認結果

有効期限:ブラウザを閉じるまで有効、でした。

image.png

一応比較のため、期限があるサイト(例えば www.yahoo.co.jp )だと、以下とおり Cookie の有効期限がありますね。

image.png

Curl で取得した Cookie 内を確認する

PowerShell で Curl を実行し、Cookie 内の Expires の情報を確認する方法も記載しておきます。
こちらのサイトが非常に参考になりました ⇒ https://yomon.hatenablog.com/entry/2015/03/03/004652

$uri = "https://www.yahoo.co.jp"
Invoke-WebRequest -Uri $uri -SessionVariable mySession | Out-Null
$mySession.Cookies.GetCookies($uri)

やはり、Application Gateway が用いる cookie は Expire がなく、有効期限が設定されていないCookieであることがわかります。
image.png

こちらも比較サイトですが、しっかり Expire が設定されています。
image.png

参考リンク

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3