OSI Layer 7

소개

네트워크 OSI Layer 7에 대해 간략한 설명을 적었다.

기본 구조

계층이름주요 역할주요 프로토콜/기술실무적 포인트 (SaaS/AI)
L7 (Application)응용사용자 인터페이스, 데이터 형식 정의HTTP/HTTPS, WebSocket, gRPCAPI 설계, Token 최적화, 인증(JWT)
L6 (Presentation)표현데이터 암호화, 압축, 인코딩SSL/TLS, JSON, JPEG비용 절감을 위한 데이터 압축 및 보안
L5 (Session)세션통신 세션 유지 및 복구NetBIOS, RPCRedis를 활용한 세션 관리 및 상태 유지
L4 (Transport)전송포트 간 데이터 전송 및 신뢰성TCP, UDPLoad Balancing, 성능 최적화
L3 (Network)네트워크최적의 경로 설정 (라우팅)IP, ICMPVPC 설정, 서브넷 구성, 클라우드 보안
L2 (Data Link)데이터 링크물리적 매체 간 데이터 전송Ethernet, MAC 주소스위칭, 로컬 네트워크 통신
L1 (Physical)물리전기적 신호 전송케이블, 허브, 리피터하드웨어 인프라 (클라우드에서는 추상화됨)

Load Balancer

구분L4 Load BalancerL7 Load Balancer
동작 계층Transport Layer (TCP/UDP)Application Layer (HTTP/HTTPS 등)
판단 기준IP + PortURL, Header, Cookie 등
요청 이해❌ 불가능 (데이터 내용 모름)✅ 가능 (요청 내용 해석)
라우팅 방식단순 분산 (Round Robin 등)Path / Host / Header 기반
성능🔥 매우 빠름 (오버헤드 적음)⚡ 상대적으로 느림 (파싱 필요)
확장성매우 좋음로직 복잡도에 영향 받음
TLS 처리보통 passthroughTLS termination 가능
Sticky Session제한적다양하게 지원 (Cookie 등)
보안 기능거의 없음WAF, Rate Limit, 인증 가능
주요 사용처DB, 게임 서버, TCP 서비스웹 서비스, API Gateway

L4

L4는 데이터의 내용을 보지 않고 목적지 IP와 포트만 보고 던져줍니다.

  • 장점: 데이터 복호화 과정이 없어서 부하가 적고 빠릅니다. TCP/UDP 프로토콜 기반이라면 무엇이든 처리 가능합니다.
  • 단점: 패킷 내용을 모르기 때문에 사용자별 맞춤형 서비스나, 특정 URL(예: /api/ai-inference)만 따로 떼어서 관리하기 어렵습니다.

L7

  • 콘텐츠 기반 라우팅: /v1/chat 요청은 GPU 서버로, 단순 이미지 정적 리소스는 S3/CDN으로 보내는 식의 정교한 분기가 가능합니다.
  • 보안성 강화: HTTP 헤더의 조작 여부를 확인하거나, 특정 패턴의 공격을 차단하는 WAF(Web Application Firewall) 기능을 수행할 수 있습니다.
  • SSL 오프로딩: 서버(Spring Boot/FastAPI)가 복호화 부담을 갖지 않도록 LB단에서 HTTPS를 처리해 버림으로써 백엔드 서버의 리소스를 아낄 수 있습니다.

NGINX LB 예시

L4 로드밸런싱 (Transport Layer)

NGINX의 stream 블록을 사용합니다. 데이터의 내용을 보지 않고 IP와 Port 기반으로 패킷을 전달만 합니다.

  • 설정 특징: http 블록 밖에서 stream 블록을 정의합니다.
  • 장점: * HTTP가 아닌 프로토콜(예: 데이터베이스 연결, MQTT, DNS)을 분산할 때 유리합니다.
    • 데이터 분석을 안 하므로 CPU 사용량이 매우 낮아 가성비가 좋습니다.
  • 단점: URL 경로 기반 분기나 쿠키 확인이 불가능합니다.
bash
# L4 설정 예시 (MariaDB 연결 분산) stream { upstream mariadb_nodes { server 10.0.1.10:3306; server 10.0.1.11:3306; } server { listen 3306; proxy_pass mariadb_nodes; } }

L7 로드밸런싱 (Application Layer)

우리가 흔히 쓰는 http 블록 설정입니다. 요청의 URI, Header, Cookie 등을 보고 지능적으로 분기합니다.

  • 설정 특징: location 블록을 통해 세밀하게 제어합니다.
  • 장점:
    • AI 토큰 최적화: 특정 패턴의 무분별한 API 호출을 L7 단에서 limit_req로 차단하여 비용을 절감합니다.
    • SSL Termination: HTTPS 인증서를 NGINX에서 관리하고, 백엔드(Spring Boot/FastAPI)와는 가벼운 HTTP로 통신하여 서버 부하를 줄입니다.
  • 단점: 패킷을 열어봐야 하므로 L4보다 메모리/CPU 소모가 큽니다.
bash
# L7 설정 예시 (AI SaaS 서비스 분기) http { upstream api { server 10.0.2.10:8080; # FastAPI (AI Inference) } upstream ai_api { server 10.0.2.20:8000; # FastAPI (AI Inference) } upstream static_web { server 10.0.2.30:3000; # Next.js } server { listen 443 ssl; # Next.js 프론트엔드 처리 location / { # updstream으로 사용하는 경우 proxy_pass http://static_web; # updstream으로 사용하지 않는 경우 proxy_pass http://10.0.2.30:3000; # IP White 리스트 정책이라면 allow 192.168.1.1; deny all; # IP 차단만 사용한다면 deny 192.168.10.1; } # API 호출 처리 location /api/v1 { # updstream으로 사용하는 경우 proxy_pass http://api; # updstream으로 사용하지 않는 경우 proxy_pass http://10.0.2.10:8080; } # AI API 호출 처리 location /ai/v1/ { # updstream으로 사용하는 경우 proxy_pass http://ai_api; # updstream으로 사용하지 않는 경우 proxy_pass http://10.0.2.20:8000; } } }

정리

구분L4 모드 (Stream)L7 모드 (HTTP)
주요 용도DB(MariaDB, Redis) 부하 분산Web Service, AI API API Gateway
분기 기준오직 Port (e.g. 3306, 6379)URL (e.g. /chat, /login), Header
보안IP 화이트리스트 기반 차단WAF 연동, JWT 검증, DDoS 방어
성능/비용리소스 소모 극소 (고대역폭 유리)분석 비용 발생 (지능적 처리 위주)