Closed6

AWS 構成の基礎知識 - 4: Keycloak on AWS

ほげさんほげさん

上の記事でスティッキーセッションの話が出てくるので基礎トレ

これは AWS 云々の前に普通のネットワークの ( ロードバランサーの ) 知識

https://dev.classmethod.jp/articles/stateless_ec2/

超要約

  • 買い物サイトでカートの中身を維持して画面を遷移したりする場合、サーバは状態を持ってるよ
  • LB が適当にリクエストを振り分けちゃうと、一連の処理の流れに一貫性が持たせられないよ
  • なので一度振ったところに同じブラウザのリクエストは振り続けるよ

がスティッキーセッション

で、いくつか問題がある

  • サーバにに障害があって破棄や再起動をされた場合、1 サーバにしか状態がないのでロストする
  • オートスケールと相性が悪い
    • サーバを増やしてもその前からあるインスタンスに振られているリクエストは新しいサーバに行かないので負荷が散りづらい

どちらも問題のポイントは「サーバが状態を管理している」点で、そこを解決できれば良い

  • サーバの外に状態を保持すれば良い
    • ここで Redis や Memcached が出てくる
  • あとは ( ここでは割愛するけど ) ログもローカルファイルで持たずに外にすぐ転送するとか

そういうサーバの差分を排除していくとステートレスに近づいていく

このスクラップは2021/06/02にクローズされました