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、証明書管理)