オリジナル問題 LinuCレベル2試験 問題 問11
システムアーキテクチャの設計/キャパシティプランニングとスケーラビリティの確保Webアプリケーションをスケールアウトするとき、セッション情報の扱いで必要になる考慮として適切なものはどれか。
出典:オリジナル問題 LinuCレベル2試験 問題 問11
- A各サーバーがそれぞれ独立してセッションを保持すれば、台数を増やしても問題ない
- B同じ利用者を同じサーバーへ固定するか、セッションを外部の共有領域へ置く
- Cセッション情報はクライアント側にしか存在しないため、特に考慮は必要ない
- Dスケールアウトすると、セッションは自動的に全サーバーへ複製される
正解:B
解説
複数のサーバーへリクエストを分散すると、あるサーバーが保持しているセッション情報を別のサーバーは知らないため、ログイン状態が失われることがあります。対策は2通りで、ロードバランサ側で同じ利用者を同じサーバーへ振り分ける(スティッキーセッション)か、セッションをRedisやデータベース等の共有領域へ置いて、どのサーバーからも参照できるようにします。
選択肢ごとの解説
- A誤り。振り分け先が変わるとセッションを見失います。
- B正しい。振り分けを固定するか、セッションを共有領域に置くかのいずれかが必要です。
- C誤り。多くの実装ではサーバー側にセッションの実体を持ちます。
- D誤り。自動的に複製される仕組みはありません。