
セッションとは?仕組みをわかりやすく解説|作業中に突然ログアウトする理由| vol.20
この記事では、操作中に意図せずログアウトされる原因となる
セッション管理と、ロードバランサーの振り分け問題について解説します。
同じサーバーへ案内するスティッキーセッションの仕組みや、
外部ストレージを活用したステートレス設計のアプローチを整理します。
お疲れ様です。花冷です🌸
前回(vol.19)は、`https` の s の正体——
TLSによる暗号化のお話をしました。
受付は無事に荷物を振り分けました。
でも、ここで困ったことが起きます。
📍 今回のパケット旅の現在地

【現在地】:4つ目のマス「LOAD BALANCER」。
受付にいますが、案内された先で「どちら様?」と言われかけています📍
❓ 作業中に突然ログアウト。あれ、何が起きてるの?
入力途中でいきなりログイン画面に戻される。
……あの絶望感、伝わりますよね(笑)
この現象、原因が2種類あります。
ひとつは、時間切れ。
セッションには有効期限があって、しばらく操作しないと自動的に切られます。これは設計どおりの正常な動きです。
もうひとつが厄介です。
さっきまで普通に操作していたのに落ちる。時間は経っていない。
こちらの犯人は、前回まで見てきた受付かもしれません。
🧠 セッションは、サーバ側の「記憶」
ログイン状態って、どこに保存されているのでしょうか。
多くの場合、サーバ側の記憶です。
「この人はさっきログインした花冷さんですね。
カートには3つ入ってます」
こういうメモを、サーバが持っている。
これをセッションと呼びます。
ここで、vol.18を思い出してください。
ロードバランサーは、通信を複数のサーバへ順番に配っていました。
……もうお分かりですね。
1回目は1号機、2回目は2号機に案内されたら、
2号機は花冷さんを知りません。「どちら様ですか?」となって、
ログイン画面に戻されるわけです。
🍪 「同じ人は、同じサーバへ」
対策はシンプルで、同じ人を毎回同じサーバに案内すること。
これをスティッキーセッションと呼びます。
やり方は主に2つあります。
Cookieを使う:受付が目印を配り、次からそれを見て同じ号機へ
送信元IPを使う:IPアドレスから機械的に行き先を決める
後者は手軽ですが、あまり使われません。
理由は、この連載を読んできた方なら分かるはずです。
vol.16のNATです。
NAT(Network Address Translation)とは、
ネットワークの境界にあるルーターなどで、
IPアドレスを別のIPアドレスに変換する技術
家じゅうの機器が同じIPに見えましたよね。
会社ならもっと大規模に、何百人が同じIPに見える。
その全員が同じサーバに集中してしまいます。
しかもスマホは移動でIPが変わるので、その瞬間に別人扱いです。
🌟 そもそも記憶を、外に出す
最近の設計では、もっと根本的な手が取られています。
セッションをサーバの外に置く。
Redisのような専用の置き場所に記憶をまとめれば、
どのサーバに案内されても同じ記憶を見に行けます。
そもそも固定する必要がなくなるんですね。
サーバが記憶を持たない状態をステートレスと呼びます。
1台落ちても、増やしても、記憶は無事。
受付も自由に配れるというわけです✨
🌸 余談:時間切れだと思っていた
私は、セッションに有効期限があることは知っていました。
でも今回学んで、ログアウトの原因は時間切れだけではないと知りました。
「さっきまで動いてたのに」という理不尽なログアウトの裏に、
受付の振り分けというまったく別のレイヤーの事情があったなんて。
見える現象はひとつでも、裏には複数の原因が並んでいる。
🌸 おわりに
🔴セッション:サーバが持っている「この人は誰か」の記憶
🔴スティッキーセッション:同じ人を同じサーバへ固定する仕組み
🔴ステートレス化:記憶を外に出して、固定そのものを不要にする
さて、受付を抜けたパケットちゃんは、いよいよ奥のデータベースへ。
でもその手前に、もう一つ抑えておきたい要素があるんです。
次回は、コネクションプールを覗いていきます!
今日もお疲れ様でした✨
また次回の記事でお会いしましょう〜!
⭐次回の記事はこちら!
⭐マガジンはこちら!
📩質問はこちらまでどうぞ!