0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel のセッション管理と Web サイトの仕組み(サーバー・DNS・ロードバランサー・ドメインの関係)

Last updated at Posted at 2025-03-17

Webサイトはユーザーのリクエストに応じてデータを処理し、レスポンスを返す仕組みで動いています。
本記事では、LaravelのSESSION_DRIVER の仕組みを中心に、サーバー・DNS・ロードバランサー・ドメインの関係をWebサイトの動きを通して解説します。

①Webサイトの基本的な流れ

例えば、ユーザーが Web サイト(daeudaeu.com)にアクセスし、ログインしてセッション管理を行う流れを考えてみましょう。

  • Webサイトのリクエスト・レスポンスの流れ
    • 1.daeudaeu.comにアクセス
      →DNSがdaeudaeu.comをIPアドレスに変換

    • 2.Webサーバーと通信開始
      →ロードバランサーが、リクエストを適切なサーバーへ転送

    • 3.ユーザーがログイン
      →サーバーが認証し、セッションを作成(SESSION_IDをCookieに保存)

    • 4.ページを移動する
      →CookieのSESSION_IDを元に、サーバーがログイン情報を維持

    • 5.ログアウトする
      →SESSION_IDを削除し、ユーザー情報を消去

スクリーンショット 2025-03-31 092708.png

この流れの中でセッション管理、サーバーの役割、DNS、ロードバランサーの動きが連携しています。
それぞれの仕組みを詳しく見ていきましょう。

②LaravelのSESSION_DRIVERとWebサイトの動き

Webサイトは 「ステートレス(リクエストごとに状態を保持しない)」 ですがSessionを使うことでログイン状態やカート情報を維持できます。
Laravel では .envのSESSION_DRIVERを設定することで、セッションの保存先を指定できます。

①.file
→保存場所はstorage/framework/sessions(デフォルト)
→単純なアプリで利用される

②.database
→保存場所はsessionsテーブル(DB)
→複数サーバー環境向けである

③.redis
→保存場所はRedisキャッシュ
→高速処理が必要な場合に利用される

④.memcached
→保存場所はMemcached
→キャッシュ用途

⑤.cookie
→保存場所はクライアントのCookie
→セキュリティリスクあり

⑥.array
→保存場所はメモリ(リクエストごとのみ)
→テスト時に使用される

例:)databaseを利用する場合
→.envでSESSION_DRIVER=databaseに変更

SESSION_DRIVER=database

→artisanコマンドでsessionsテーブルを作成

php artisan session:table
php artisan migrate

→これでSessionがデータベースに保存され、ロードバランサーを使った環境でも安定して動作

③サーバー・DNS・ロードバランサーの関係

Webサイトが動くためには、DNS・ロードバランサー・Webサーバーの連携が必要です。

・DNS(ドメインネームシステム)とは?

→DNSは、daeudaeu.comのようなドメインをIPアドレスに変換する仕組み。
→ユーザーがdaeudaeu.comのアクセスすると、DNSサーバーがIPアドレス(例:123.35.201.1)に変換し、適切なサーバーへ接続します。

スクリーンショット 2025-03-31 093833.png

・ロードバランサーとは?

→ロードバランサー(Load Balancer)は、大量のリクエストを複数のサーバーへ分散する装置・サービス。
→AWS ELB、Nginx、HAProxy などが利用される。

スクリーンショット 2025-03-31 093723.png

・ロードバランサーが必要な3つの理由

  • 1.負荷分散(アクセスが集中しても処理を分散)
  • 2.サーバー障害時の自動フェイルオーバー
  • 3.スケーラビリティの向上(サーバーを追加すればスケール可能)

④ドメインとIPアドレスの関係

Web サイトは「ドメイン(例: daeudaeu.com)」と「IP アドレス(例: 123.35.201.1)」を組み合わせてアクセスします。

・ドメイン
→人間が覚えやすい名前(例:daeudaeu.com)

・IPアドレス
→サーバーを識別する数値(123.35.201.1)

・DNS
→ドメインをIPアドレスに変換する仕組み

⑤まとめ

・Webサイトは 「DNS → ロードバランサー → Web サーバー」 の流れで動く!

・LaravelのSESSION_DRIVERを適切に設定することで、セッション管理が安定!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?