L7 アプリケーション層(Application Layer)

ユーザーアプリケーションに直接サービスを提供

アプリケーション層とは

アプリケーション層(L7)は、ユーザーが直接利用するプロトコルを提供します。 HTTP、DNS、SMTP、FTPなど、具体的なサービスを実現するプロトコルがこの層に属します。 ロードバランサーやプロキシはL7の情報(URLパス、ヘッダー等)を見て高度な制御を行います。

主要なL7プロトコル

HTTP/HTTPS

  • • Webの基盤プロトコル
  • • リクエスト/レスポンスモデル
  • • ステートレス(Cookieで状態管理)
  • • ポート: 80/443

DNS

  • • ドメイン名 → IPアドレス解決
  • • 階層的分散データベース
  • • キャッシュでパフォーマンス向上
  • • ポート: 53(UDP/TCP)

SMTP/IMAP/POP3

  • • メール送受信
  • • SMTP: 送信(25, 587)
  • • IMAP: 受信・同期(143, 993)
  • • POP3: 受信・ダウンロード(110, 995)

SSH/FTP

  • • SSH: セキュアリモートアクセス(22)
  • • FTP: ファイル転送(20, 21)
  • • SFTP: SSH上のファイル転送(22)

HTTPの進化

HTTP/1.1

Keep-Alive、パイプライン(Head-of-Line Blocking問題)

HTTP/2

多重化、ヘッダー圧縮(HPACK)、サーバープッシュ

HTTP/3

QUIC(UDP上)、0-RTT、改善されたHoL Blocking耐性

L7ロードバランシング

L7ロードバランサーは、HTTPヘッダーやURLパス、Cookie等のアプリケーション層の情報を見て高度なルーティングを行います。

L4 vs L7 ロードバランサー
L4 LB
  • • IP/ポートで振り分け
  • • 高速・低レイテンシ
  • • TCP/UDPコネクション単位
L7 LB
  • • URL/ヘッダーで振り分け
  • • コンテンツベースルーティング
  • • SSL終端、キャッシュ可能

L7ルーティング例

  • /api/* → APIサーバー群
  • /static/* → CDN/静的サーバー
  • Host: mobile.example.com → モバイル用サーバー
  • • Cookieのセッション値 → Sticky Session

プロキシ

フォワードプロキシ

クライアント側に配置。外部アクセスを代理。 キャッシュ、フィルタリング、匿名化。

クライアント → プロキシ → インターネット

リバースプロキシ

サーバー側に配置。バックエンドを隠蔽。 負荷分散、SSL終端、キャッシュ。

インターネット → プロキシ → サーバー群

SRE/インフラ観点

監視項目

  • HTTPステータスコード: 4xx/5xxエラー率
  • レイテンシ: P50/P90/P99応答時間
  • スループット: リクエスト/秒
  • DNSレイテンシ: 名前解決時間

主要なL7コンポーネント

  • Nginx: Webサーバー/リバースプロキシ
  • HAProxy: 高性能ロードバランサー
  • Envoy: サービスメッシュ用プロキシ
  • AWS ALB: マネージドL7 LB

セキュリティ考慮

  • • WAF(Web Application Firewall)でL7攻撃防御
  • • DDoS対策(レートリミット)
  • • TLS/SSL設定(HSTS、証明書管理)

トピック詳細