Load Balancer

로드 밸런서는 클라이언트 요청을 다수의 서버에 분산하여 시스템의 과부하를 방지하고, 고가용성, 확장성, 장애 대응성을 확보하는 핵심 인프라 구성 요소이다.

네트워크 계층 (L4) 또는 애플리케이션 계층 (L7) 에서 동작하며, 라운드로빈, 최소 연결, IP 해시 등의 알고리즘을 통해 요청을 최적의 서버로 전달한다. 또한, 헬스 체크, 세션 유지, SSL 종료, 콘텐츠 기반 라우팅, 자동 장애 조치 등의 기능을 제공하며, NGINX, HAProxy, Envoy 같은 소프트웨어 기반이나 AWS ALB, GCP Load Balancer 같은 클라우드 서비스, F5 같은 하드웨어 장비 형태로 구현된다.

대규모 트래픽을 처리하는 현대 웹 아키텍처에서 필수 요소로 활용된다.

등장 배경 및 발전 과정

1990 년대 후반 인터넷 서비스의 급속한 성장과 함께 단일 서버로는 증가하는 트래픽을 처리할 수 없는 한계에 직면했다. 이로 인해 서버 클러스터링과 트래픽 분산 기술의 필요성이 대두되었다.

등장 배경

발전 과정

목적 및 필요성

목적

  1. 성능 향상: 트래픽을 여러 서버에 분산하여 응답 시간 단축
  2. 고가용성 확보: 서버 장애 시 자동 장애 조치로 서비스 연속성 보장
  3. 확장성 제공: 서버 추가/제거를 통한 동적 확장
  4. 자원 최적화: 서버 자원의 효율적 활용

필요성

핵심 개념

Load Balancer (로드 밸런서) 는 클라이언트 요청을 여러 백엔드 서버에 분산하여 처리하는 네트워크 장비 또는 소프트웨어이다. 트래픽 분산을 통해 단일 서버의 과부하를 방지하고 시스템 전체의 성능과 안정성을 향상시킨다.

항목설명
L4 Load Balancer전송 계층 (TCP/UDP) 수준에서 클라이언트 요청을 포트/IP 기반으로 분산
L7 Load Balancer애플리케이션 계층 (HTTP/HTTPS) 수준에서 URL, 쿠키, 헤더 등에 따라 분산
헬스 체크서버의 상태를 지속적으로 확인하고, 장애 시 트래픽 우회
세션 지속성특정 사용자의 요청을 동일 서버로 유지 (Sticky Session)
SSL 종료TLS 복호화를 로드 밸런서에서 수행하여 백엔드 서버의 부담을 줄임

실무 연관성

주요 기능 및 역할

기능설명역할
트래픽 분산요청을 여러 서버에 고르게 할당과부하방지, 레이턴시 감소
장애 감지 및 조치서버 상태 헬스 체크, 장애 발생시 자동 경로 변경무중단 서비스, 장애 자동복구
세션 스티키동일 클라이언트 요청을 동일 서버로 할당로그인/세션 포함 서비스 적합
SSL 오프로딩암호화된 트래픽을 L4/L7 에서 해독서버 부하 감소, 보안 강화
트래픽 라우팅URL/IP/path 등 조건별 맞춤 라우팅마이크로서비스 등 복잡한 아키텍처 지원

특징

핵심 원칙

주요 원리 및 작동 방식

flowchart LR
    Client-->|요청|LB[Load Balancer]
    LB-->|Server-A로 분산|A[Application Server 1]
    LB-->|Server-B로 분산|B[Application Server 2]
    LB-->|Server-C로 분산|C[Application Server 3]
    A-->|응답|LB
    B-->|응답|LB
    C-->|응답|LB
    LB-->|클라이언트에게 최종 응답|Client

구조 및 아키텍처

graph TB
    subgraph "클라이언트 계층"
        A[웹 브라우저]
        B[모바일 앱]
        C[API 클라이언트]
    end
    
    subgraph "로드 밸런서 계층"
        D[L7 로드 밸런서]
        E[L4 로드 밸런서]
        F[Health Check 모듈]
        G[SSL 터미네이션]
    end
    
    subgraph "백엔드 서버 계층"
        H[웹 서버 1]
        I[웹 서버 2]
        J[웹 서버 3]
        K[애플리케이션 서버]
    end
    
    A --> D
    B --> D
    C --> E
    D --> H
    D --> I
    E --> J
    F --> H
    F --> I
    F --> J

구성요소

구성 요소구분기능역할특징
알고리즘 엔진필수트래픽 분산 로직 처리클라이언트 요청에 대한 서버 선택 결정라운드로빈, 최소 연결, IP 해시 등 다양한 알고리즘 지원
Health Check 모듈서버 상태 모니터링장애 서버 감지 및 트래픽에서 제외능동적 (주기적 핑/요청), 수동적 (실패 감지) 검사 지원
세션 관리자클라이언트 세션 추적세션 지속성 (sticky session) 보장쿠키, IP, 헤더 등 다양한 세션 유지 방식 지원
SSL 터미네이션 모듈선택SSL/TLS 암복호화 처리백엔드 서버의 암호화 부하 경감인증서 중앙 집중 관리, HTTPS 종단 처리
캐싱 모듈정적 콘텐츠 캐싱응답 속도 향상, 백엔드 요청 최소화메모리/디스크 기반 캐싱 전략 적용 가능
압축 모듈응답 데이터 압축전송 데이터 크기 축소 및 네트워크 최적화gzip, brotli 등 다양한 압축 알고리즘 지원

구현 기법 및 방법

카테고리기법/방식정의 및 특징대표 적용 사례 / 기술
계층 기반 (OSI)L4 (Transport Layer)TCP/UDP 기반. 빠른 성능과 낮은 처리 지연 제공AWS NLB, HAProxy (mode tcp), LVS
L7 (Application Layer)HTTP/S, URL, 쿠키 등 콘텐츠 기반 트래픽 제어NGINX, AWS ALB, Istio Envoy, API Gateway
라우팅 알고리즘Round Robin순차적 서버 할당. 단순한 균등 분산 방식기본 설정 (NGINX 기본 모드)
Least Connections연결 수가 적은 서버에 우선 배분. 트래픽 가변성 대응동적 API 서버, 채팅 서비스 등
Weighted Round Robin/Least Conn서버별 성능 차이 반영하여 가중치 적용HAProxy, NGINX 가중치 설정
IP Hash클라이언트 IP 기반 해싱으로 분산. 세션 유지용게임 서버, 스티키 세션 유지 요구 서비스
Content-based RoutingURL/헤더 기반 트래픽 분기. 마이크로서비스 계층 분산에 적합API Gateway, L7 Proxy
Geo-based Routing사용자 위치 기반 최적 서버로 연결Route 53, GSLB, CDN DNS Routing
구현/배포 유형하드웨어 Load Balancer전용 장비 기반 초고속 처리. 고가의 엔터프라이즈 환경 적용F5 BIG-IP, Citrix NetScaler
소프트웨어 Load Balancer범용 서버 + 소프트웨어. 유연하고 경제적인 설정 가능NGINX, HAProxy, Apache, LVS
클라우드 매니지드 서비스클라우드 환경에 최적화된 자동 확장형 서비스. 운영 부담 감소AWS ELB(ALB/NLB), GCP Load Balancer
서비스 메시 기반 LB사이드카 방식으로 MSA 간 라우팅/정책 적용. 트래픽 분산과 보안, 관측성 통합Istio + Envoy, Linkerd, Cilium
DNS 기반 Load BalancerDNS 응답을 기반으로 지역/상태 기반 라우팅 수행Amazon Route 53, Akamai GSLB
세부 구현 기능Health Check백엔드 서버 상태를 주기적으로 검사하여 비정상 노드 제외모든 로드 밸런서 공통 (NGINX, HAProxy 등)
SSL TerminationTLS 종료를 로드밸런서가 처리 → 서버 부하 감소, 중앙 집중 인증ALB, NGINX, HAProxy
DSR (Direct Server Return)응답 경로를 서버가 직접 반환해 로드밸런서 부하 분산Facebook Katran, 고성능 데이터센터 구조
Active-Passive Failover메인 서버 장애 시 백업 서버로 자동 전환고가용성 시스템 구성 시 사용
XDP/eBPF 기반 커널 LBLinux 커널 수준에서 L4 로드밸런싱 수행. 초고속, 경량화된 성능Katran, Cilium
구성/연동 구조Edge + Origin 구성CDN/LB 조합으로 정적/동적 콘텐츠 처리 최적화웹사이트 + API + CDN
LB + API Gateway 연동트래픽 라우팅 및 인증, 라우팅 정책 통합ALB + Kong/Envoy 구성
LB + Auto Scaling트래픽 기반 자동 서버 추가/제거AWS ALB + ASG, GCP Backend Service

요약

목적적용 기법/기술 예시
간단하고 빠른 분산Round Robin, NGINX, LVS
가변 트래픽 대응Least Connections, Weighted, Auto Scaling
세션 유지IP Hash, Cookie 기반 스티키 세션
콘텐츠 기반 분산URL/헤더 기반, API Gateway, L7 Proxy
글로벌 최적화DNS 기반, Geo Routing, Route 53, Akamai
고가용성 보장Health Check, Active-Passive, Multi-LB 구조
보안/오프로드SSL Termination, 인증 처리 분리, Edge TLS
최고 성능 처리eBPF/XDP 기반, DSR, 하드웨어 LB

장점

카테고리항목설명
1. 고가용성 (Availability)장애 자동 감지 및 복구Health Check 및 자동 Failover 기능으로 장애 시 빠른 복구 가능
트래픽 자동 전환서버/지역 장애 시 가장 가까운 정상 노드로 트래픽 자동 전환
다중 PoP 구성다양한 지리적 위치의 에지 서버를 통해 서비스 중단 없이 지속 제공
2. 확장성 (Scalability)탄력적 서버 확장자동 또는 수동으로 서버 인프라 확장이 가능하여 트래픽 급증에 대응
글로벌 분산 구조지역별 에지 서버를 통해 글로벌 트래픽 수용과 성능 저하 최소화
3. 성능 최적화 (Performance)부하 분산다양한 로드 밸런싱 알고리즘을 통해 서버 간 트래픽 분산
응답 속도 개선사용자 근접 에지 서버를 활용한 정적 콘텐츠 캐싱 및 동적 콘텐츠 가속
프로토콜 최적화HTTP/2, HTTP/3, QUIC 등의 지원으로 요청 처리 효율 증대
4. 보안 강화 (Security)TLS/SSL 종료TLS 터미네이션을 에지에서 처리하여 백엔드 서버의 부하 감소 및 안전한 통신 제공
WAF 및 DDoS 보호CDN 통합 보안 기능으로 트래픽 공격 방어 및 필터링 기능 제공
토큰 인증 및 접근 제어서명된 URL, 토큰 기반 인증 등을 통해 정교한 콘텐츠 접근 제어 가능
5. 운영 효율성 (Operational Efficiency)중앙 집중형 트래픽 관리모든 트래픽을 중앙에서 정책 기반으로 제어 가능하여 운영 편의성 증가
설정 자동화 및 배포API 기반 설정 변경, CI/CD 와 통합하여 빠른 설정 배포 가능
로그 및 모니터링 통합실시간 성능 분석, 에러 탐지, SLA 추적 등 관측성 확보를 위한 통합 로그 시스템 연동
6. 비용 효율성 (Cost Optimization)오리진 부하 감소캐시를 통해 백엔드 요청을 줄여 트래픽 비용 절감
리소스 최적 사용불필요한 서버 증설 없이 캐시 및 엣지 컴퓨팅을 통해 인프라 비용 절감
FinOps 대응상세 비용 분석을 통한 운영 전략 수립 가능

CDN 장점별 실무 적용 사례

장점 카테고리적용 기술/기능대표 사례 (벤더)설명
고가용성Health Check, FailoverAWS CloudFront + Lambda@Edge오리진 서버 장애 시 자동으로 대체 오리진 또는 지역별 최적 PoP 로 요청 라우팅
Anycast RoutingGoogle Cloud CDN, Cloudflare글로벌 Anycast IP 기반으로 가장 가까운 PoP 로 사용자 라우팅
확장성Auto Scaling, Global PoPsAkamai CDN전 세계 4 천 개 이상의 PoP 에서 트래픽 분산 처리
Serverless Edge ExecutionCloudflare Workers, Fastly Compute@Edge코드 실행을 엣지에서 수행하여 무제한 확장 및 로컬 최적화 구현
성능 최적화HTTP/3 (QUIC), Brotli CompressionFastly CDNHTTP/3, Brotli 압축 기본 활성화로 동적/정적 콘텐츠 속도 개선
Real-time Caching OptimizationCloudflare Smart CachingAI 기반으로 콘텐츠 인기도 예측, TTL 자동 조정
보안 강화WAF, Bot MitigationCloudflare, AWS Shield + WAF실시간 룰 기반 공격 방어 및 봇 트래픽 차단
TLS Termination at EdgeAkamai Edge TLS클라이언트 TLS 종료를 에지에서 수행하여 백엔드 보안 및 성능 강화
운영 효율성API 기반 구성 자동화AWS CloudFormation + CloudFrontIaC 기반 CDN 설정 자동화
Observability / AnalyticsDatadog + Cloudflare LogpushCDN 로그를 실시간 수집, 시각화하여 SLA 추적 및 이슈 분석
비용 효율성Cache Miss 비용 절감Google CDN + Cache Hit Ratio MonitoringCache hit 율을 기준으로 비용 최적화 모니터링 구성
Edge Logic 최적화Vercel Edge Functions서버리스 실행을 통해 오리진 비용 절감 및 사용자 지연 최소화

CDN 장점별 아키텍처

고가용성 및 장애 자동 복구
graph TD
  Client --> CDN[CDN PoP]
  CDN --> Check{Health Check}
  Check -->|Healthy| Origin1
  Check -->|Unhealthy| Origin2[Failover Origin]
확장성 및 글로벌 분산 처리
graph TD
  User1[User - Asia] --> PoP1[PoP - Singapore]
  User2[User - US] --> PoP2[PoP - Virginia]
  User3[User - EU] --> PoP3[PoP - Frankfurt]
  PoP1 --> Origin
  PoP2 --> Origin
  PoP3 --> Origin
성능 최적화 (캐시 + 압축 + 최신 프로토콜)
graph TD
  Browser --> CDN
  CDN -->|Cache Hit| Response[Serve from Cache]
  CDN -->|Cache Miss| Origin
  CDN -.-> Compress[Brotli / Gzip Compression]
  CDN -.-> Protocol[HTTP/2 / HTTP/3]
보안 아키텍처
graph TD
  User --> TLS[Edge TLS Termination]
  TLS --> WAF
  WAF --> BotFilter[Bot Mitigation]
  BotFilter --> CDN
  CDN --> Origin[Origin Server]
운영 및 관측
graph TD
  CDN --> Metrics[Logpush / Analytics]
  Metrics --> Dashboard[Observability Platform]
  Dashboard --> Alerts[SLI/SLO Alerts]
비용 최적화 (Edge Compute + Cache 우선 전략)
graph TD
  Request --> CDN
  CDN -->|Match| Cache[Serve from Cache]
  CDN -->|No Match| EdgeFn[Edge Function 처리]
  EdgeFn --> Origin

단점과 문제점 그리고 해결방안

단점

구분항목설명해결 방안
구성 복잡성다층 구조 관리 복잡성다양한 L4/L7 계층 도입 시 구성/운영 난이도 증가IaC(Infrastructure as Code), 통합 모니터링 대시보드 도입
비용 부담고성능 장비 및 이중화 비용고가 장비 사용 또는 Active-Active 구성 시 비용 상승OSS 기반 도구 (HAProxy 등) 도입, 클라우드 매니지드 서비스 활용
지연 발생암호화 처리, Layer 7 분석TLS 종료, HTTP 헤더 분석 등 추가 오버헤드 발생TLS 종료 최적화, CDN/캐시 레이어와 병행 최적화
단일 실패점LB 자체가 SPOFLB 하나만 존재할 경우 장애 시 전체 서비스 중단이중화 구성 (Active-Active/Passive), 클러스터링
상태 의존성세션 관리 필요성세션 유지가 필요한 시스템에서는 특정 인스턴스 고정 요구세션 공유 (Sticky Session), Redis 기반 중앙 세션 저장소

문제점

문제 유형항목원인영향탐지 및 진단 방법해결 방안 및 기법
헬스 체크 문제잘못된 설정/타이밍 문제비정상 응답을 놓치거나 정상 서버를 오탐지함비정상 서버로 라우팅, 서비스 품질 저하헬스체크 로그, 대시보드 알림다중 조건 검사, 지능형 상태 체크 (HTTP 코드, 응답시간, 패턴 등)
세션 불일치Sticky 설정 미적용요청이 임의 서버로 전달되어 세션 정보 유실로그인 상태 끊김, 사용자 경험 저하세션 추적, 사용자 로그 분석Sticky Session, Redis 기반 세션 중앙 저장소 적용
부하 불균형정적 라우팅, 가중치 오류서버 성능/부하 고려하지 않은 라우팅특정 서버 과부하, 지연 발생Prometheus, Grafana 로 CPU/RT 분석동적 가중치 조절, AI 기반 트래픽 분산 로직 적용
병목 현상TLS 처리, 고비용 라우팅 알고리즘연산 복잡도 높은 라우팅 또는 TLS 복호화 비용 발생응답 지연, 처리량 감소APM, 트레이스 분석 도구TLS 오프로드, 캐시 레이어 도입, FastPath 적용
장애 대응 실패Active 상태 감지 실패LB 가 중단되었으나 백업 LB 로 자동 전환되지 않음서비스 중단, Failover 실패장애 시나리오 테스트, 로그 분석Heartbeat 기반 상태 감시, Keepalived, VRRP 구성 등
트래픽 급증예측 불가 트래픽 스파이크초단기적 요청 증가에 탄력적으로 대응하지 못함전체 시스템 병목, 요청 실패 발생Rate 기반 모니터링, SLA 모니터링Auto Scaling + Load Balancer 연동 구성

도전 과제

카테고리도전 과제원인 및 배경영향해결 방안 및 대응 전략
1. 고가용성단일 지점 장애 (SPOF)LB 자체 장애 발생 시 전체 서비스 영향서비스 중단, SLA 위반이중화 구성 (Active-Active/Passive), VRRP, 클러스터링
글로벌 지연사용자와 LB 간 물리적 거리응답 속도 저하Anycast 라우팅, GSLB, GeoDNS, CDN 연계
2. 세션 일관성상태 저장 애플리케이션 처리LB 가 요청을 임의 서버로 분산하여 세션 유실로그인 해제, 장바구니 초기화 등 UX 저하Session Affinity (Sticky), JWT 기반 무상태화, Redis 기반 세션 스토어
3. 확장성과 유연성컨테이너 환경에서 동적 디스커버리컨테이너가 수시로 재배포되며 IP, 포트 변경트래픽 분산 실패 또는 장애Kubernetes Ingress, Service Mesh (Istio, Linkerd), Envoy + xDS
실시간 트래픽 급증 대응트래픽 예측 어려움, 수동 확장응답 지연 또는 시스템 다운오토스케일링, AI 기반 예측, 지능형 트래픽 라우팅
4. 성능 최적화TLS 처리 비용 및 지연L7 SSL Termination 은 CPU 소모 큼지연 증가, 처리량 감소TLS Pass-through, Hardware Accelerator (e.g., NIC offload), Edge TLS Termination
LB 자체 성능 한계부하 증가에 따른 Throughput 병목전체 시스템 성능 저하Layer4 로드밸서 분산, Multi-tier LB 구조 (Edge → App → DB)
5. 알고리즘/정책분산 알고리즘 비효율트래픽 패턴이 예측 불가능하거나 불균형 발생특정 서버 과부하, 자원 낭비AI 기반 분산 (Traffic Prediction), Adaptive Load Balancing
비동기 아키텍처 대응 어려움이벤트 기반 시스템에서 요청과 응답 매칭 어려움응답 지연, 처리 실패메시지 큐 기반 Load Balancing, Queue-aware LB 설계
6. 보안과 인증TLS 인증서 자동화멀티 리전/멀티 도메인 인증서 갱신/적용 어려움보안 사고, 인증서 만료Cert Manager, ACME 프로토콜, Wildcard 인증서 적용
DDoS 및 악성 트래픽 대응Edge 에 모든 요청 집중, 취약한 L7 공격서비스 다운, 트래픽 오염Web Application Firewall, Bot Protection, Rate Limiting
7. 운영/관측정책 동기화 및 감사 로깅 부족다수의 LB 구성 시 정책 불일치 및 관리 복잡규칙 누락/충돌, 보안 허점중앙 관리 플랫폼 (e.g., Consul, Istio Control Plane), Config as Code, Audit Logging
트래픽 흐름 추적 어려움분산된 환경에서 End-to-End 모니터링 부족장애 원인 추적 불가, SLA 미달eBPF 기반 패킷 추적, OpenTelemetry 기반 분산 트레이싱
8. 비용 최적화L7 고기능 LB 도입 시 비용 증가고성능 기능일수록 리소스와 라이선스 비용 증가운영비용 상승L4/L7 하이브리드 구성, 경량 L7 프록시 도입 (e.g., Traefik, NGINX Unit)

현대 시스템에서의 Load Balancer 확장 방식

  1. Global Load Balancing (글로벌 로드 밸런싱)

    • 다수의 지역 (Region, POP) 에 분산된 서버 간 트래픽을 분배
    • DNS 기반 (예: Route 53), Anycast IP 방식
    • 주로 다국적 서비스, CDN, 게임 트래픽 등에 활용
  2. Load Balancer Chaining (다단계 로드 밸런서 구성)

    • 외부 L7 LB → 내부 L4 LB → 서비스 메쉬 Proxy (Envoy)
    • 보안/트래픽 제어/세션 처리 등의 계층적 분리
    • 단일 LB 성능 한계 극복 + 기능 분산 설계
  3. Service Mesh 기반 라우팅

    • Istio, Linkerd 등의 사이드카 패턴
    • 트래픽 분산, 보안 정책, 텔레메트리 통합
    • K8s 환경에서 마이크로서비스 간 로드 밸런싱 고도화

로드 밸런서 설계 시 안티 패턴 (Anti-Patterns)

항목설명영향해결 방안
단일 LB 구성로드 밸런서 하나만 존재SPOF (Single Point of Failure)Active-Active 이중화
세션 서버 종속서버 내 세션 저장세션 이동 시 로그인 끊김외부 세션 저장소 사용 (Redis 등)
과도한 헬스체크1 초 미만 간격 반복 요청서버 과부하 발생간격 조정 및 동시 요청 제한
L7 에서 무조건 TLS 종료내부에 재암호화 없이 통신내부 보안 위험 증가TLS 재암호화 + 내부 인증 적용
메트릭 미수집트래픽 상태 모니터링 안됨문제 탐지 지연Prometheus, Grafana 등 통합 필요

단일 LB 구성 (Single Point of Failure)

문제: 로드 밸런서 인스턴스가 하나일 경우, 해당 인스턴스 장애 시 전체 서비스 중단 (SPOF) 발생

해결 방안: Active-Active 이중화

flowchart TB
  Client1 --> DNS
  DNS --> LB1
  DNS --> LB2
  LB1 --> App1
  LB1 --> App2
  LB2 --> App1
  LB2 --> App2
  LB1 <--> LB2
  subgraph Load Balancers
    LB1[Load Balancer A]
    LB2[Load Balancer B]
  end
  subgraph App Layer
    App1[Backend Server 1]
    App2[Backend Server 2]
  end

구현 예시:

Kubernetes 기반 YAML 구성 예시:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# MetalLB config for static IP allocation (L2 mode)
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: pool1
spec:
  addresses:
  - 192.168.1.100-192.168.1.101

---

apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: l2adv

세션 서버 종속 (Session Stickiness by Local Storage)

문제: 세션 정보가 로컬 서버에 저장되면 요청이 다른 서버로 분산될 때 로그인 상태 끊김 발생

해결 방안: 외부 세션 저장소

sequenceDiagram
  participant Client
  participant LB as Load Balancer
  participant App1 as App Server 1
  participant App2 as App Server 2
  participant Redis

  Client->>LB: HTTP 요청
  LB->>App1: 요청 전달
  App1->>Redis: 세션 저장
  Client->>LB: 다음 요청
  LB->>App2: 요청 전달
  App2->>Redis: 세션 조회
  App2-->>Client: 응답 (세션 유지됨)

구성 예시:

Kubernetes 기반 YAML 구성 예시:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: express
        image: myorg/express-app:latest
        env:
        - name: REDIS_HOST
          value: redis-master
        - name: SESSION_SECRET
          valueFrom:
            secretKeyRef:
              name: session-secret
              key: secret
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# Redis StatefulSet
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: redis
spec:
  serviceName: "redis"
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - name: redis
        image: redis:6.2
        ports:
        - containerPort: 6379

과도한 헬스체크 (Aggressive Health Check)

문제: 짧은 주기로 헬스체크를 수행하면, 실제 트래픽 외에도 과부하를 유발

해결 방안: 주기 조정 및 Concurrency 제한

구현 예시:

L7 에서 무조건 TLS 종료 (TLS Termination Only at LB)

문제: L7 LB 에서 TLS 를 종료한 후, 내부 서버 간은 평문 HTTP 로 통신 → 보안 문제 발생

해결 방안: TLS 재암호화 및 내부 인증

flowchart LR
  Client --> LB[Application Load Balancer]
  LB -->|TLS Termination| TLSProxy[TLS Proxy Layer]
  TLSProxy -->|Mutual TLS| App1[Internal App Server]
  TLSProxy -->|Mutual TLS| App2[Internal App Server]

적용 예시:

Kubernetes 기반 YAML 구성 예시:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# PeerAuthentication: enforce mTLS between sidecars
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: backend-mtls
  namespace: default
spec:
  selector:
    matchLabels:
      app: backend
  mtls:
    mode: STRICT
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# Gateway for external TLS termination
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: my-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    tls:
      mode: SIMPLE
      credentialName: my-cert
    hosts:
    - "example.com"

메트릭 미수집 (Lack of Observability)

문제: 로드 밸런서 상태와 트래픽 흐름을 실시간으로 파악하지 못해 장애 감지 및 분석 지연

해결 방안: 메트릭 수집 및 시각화 도구

통합 예시:

분류 기준에 따른 종류 및 유형

분류 기준유형설명 및 특징대표 예시
1. 계층 구조 (OSI)L4 (전송 계층)TCP/UDP 기반 분산, 빠른 처리, 포트/IP 단위 분산AWS NLB, LVS, iptables
L7 (애플리케이션 계층)HTTP/HTTPS 기반, 콘텐츠 라우팅, 쿠키/헤더 기반 정책 가능NGINX, Envoy, AWS ALB
2. 구현 방식하드웨어 기반물리적 장비 기반, 고성능/고신뢰성, 높은 비용F5 BIG-IP, Citrix ADC
소프트웨어 기반일반 서버에 설치, 유연성·확장성 좋음, 오픈소스 많음HAProxy, NGINX, Envoy, Traefik
클라우드 매니지드클라우드 제공자가 관리, 자동 확장·장애 대응, 설정 단순AWS ELB, GCP Load Balancer, Azure LB
3. 배포 위치내부 (Internal)서비스 간 통신용, 클러스터 내 또는 VPC 내 트래픽 분산Kubernetes ClusterIP, AWS Internal ELB
외부 (External)인터넷으로부터 유입되는 외부 트래픽 처리AWS Internet-facing ELB, Ingress Controller
글로벌 (GSLB)지리적으로 분산된 사용자에게 가까운 리전으로 분산Cloudflare Load Balancing, NS1, AWS Route 53
4. 알고리즘라운드 로빈 (Round Robin)순차적으로 요청 분산, 간단하고 균등 분산기본 라우터 로직 (Nginx, HAProxy 등)
최소 연결 (Least Connection)연결 수가 가장 적은 서버로 분산, 비동기 처리 시스템에 유리HAProxy, Envoy
가중치 라운드 로빈서버별 가중치 부여로 성능차 보정 가능Nginx weight 파라미터
최소 응답 시간 (Least Response Time)평균 응답 시간이 가장 빠른 서버 선택, 실시간 성능 기준 분산고성능 분석/모니터링 기반 시스템
해시 기반 (IP/URL/Cookie Hash)요청 특성 (IP, URL 등) 에 따라 특정 서버 고정, 세션 지속성 유지에 효과적IP Hash: Sticky Session
5. 세션 관리Stateless상태를 저장하지 않음, 수평 확장성 유리대부분의 REST API 구조
Sticky Session동일 사용자 요청을 항상 같은 서버로, 로그인 유지 등 사용자 경험 보장L7 기반 Load Balancer 에서 주로 사용
세션 복제 (Session Replication)세션 데이터를 여러 서버에 복제, 장애 허용성과 Sticky Session 효과 동시 달성Redis, Shared DB 기반
6. 형태/플랫폼On-Premise자체 IDC, 프라이빗 클라우드 환경에서 직접 설치 및 운영물리 서버 + F5/NGINX
클라우드퍼블릭 클라우드 상에서 서비스형 로드밸런서 사용AWS, GCP, Azure 등
하이브리드IDC + 클라우드 통합 운영, 글로벌 서비스에 유리GSLB + 내부 L7 구성
7. 특수 기능서비스 메시 연동사이드카 프록시와 연동된 트래픽 제어 및 정책 적용Istio, Linkerd + Envoy
Ingress ControllerKubernetes 환경에서 Ingress 리소스를 통한 L7 트래픽 제어NGINX-Ingress, Traefik, AWS ALB Controller
CDN+LB 통합콘텐츠 전송과 트래픽 분산을 통합하여 엣지 처리 및 최적화Cloudflare, Akamai, Fastly

로드 밸런서 아키텍처 유형

유형설명사용 사례
Single Layer LB1 개의 L4 or L7 LB 만 구성단순 트래픽 분산
Multi-Layer LB외부 L7 + 내부 L4 구성이중 역할 분리 (보안 + 성능)
Global + Regional LBGeo DNS + 리전별 LB 구성글로벌 사용자 대상 서비스
Hybrid LB클라우드 + 온프레미스 연계Gradual Migration, Hybrid Cloud

각 구성은 다음 상황에 맞춰 선택하면 된다:

상황추천 구조
단순 내부 시스템 분산Single Layer
인증/보안 처리 + 성능 분산Multi-Layer
글로벌 서비스Global + Regional
점진적 이전 / 하이브리드 운영Hybrid

Single Layer LB

flowchart LR
  Client --> LB1[L4 or L7 Load Balancer]
  LB1 --> App1[Application Server 1]
  LB1 --> App2[Application Server 2]

📌 단일 LB 로 간단한 트래픽 분산 구성 (예: 소규모 서비스, 단일 AZ)

Multi-Layer LB (L7 + L4)

flowchart LR
  Client --> L7["L7 Load Balancer (HTTPS)"]
  L7 --> L4["L4 Load Balancer (TCP)"]
  L4 --> App1[App Instance 1]
  L4 --> App2[App Instance 2]

📌 L7 은 인증, 라우팅, WAF 처리 / L4 는 내부 서비스로 TCP 기반 분산.
예: Cloudflare + NGINX → 내부 Redis, GRPC 서버 등

Global + Regional LB

flowchart LR
  Client1[Asia Client] --> GeoDNS
  Client2[US Client] --> GeoDNS
  GeoDNS --> LB-Asia[🇰🇷 Regional LB - Asia]
  GeoDNS --> LB-US[🇺🇸 Regional LB - US]
  LB-Asia --> App-KR1[KR App 1]
  LB-Asia --> App-KR2[KR App 2]
  LB-US --> App-US1[US App 1]
  LB-US --> App-US2[US App 2]

📌 지역별 로드 밸런서로 트래픽을 분산.
예: AWS Route53 GeoDNS + 각 리전 ALB

Hybrid LB (클라우드 + 온프레미스 연동)

flowchart LR
  Client --> LB-Cloud[Cloud L7 Load Balancer]
  LB-Cloud --> App-Cloud[Cloud App Service]
  LB-Cloud --> LB-OnPrem[On-Prem L4 Load Balancer]
  LB-OnPrem --> App-OnPrem1[Legacy App 1]
  LB-OnPrem --> App-OnPrem2[Legacy App 2]

📌 일부 트래픽은 클라우드로, 일부는 온프레미스로 전달.
예: Gradual Migration, Disaster Recovery

로드 밸런서 vs. 관련 컴포넌트 비교

항목Load BalancerAPI GatewayReverse ProxyService Mesh
주요 목적트래픽 분산API 라우팅, 인증, 요금제 관리요청 중계MSA 내 트래픽 정책 관리
레이어L4/L7L7L7L7 (L4 도 일부)
보안 기능SSL 종료, WAF 연동인증, Rate Limit, JWTSSL 종료mTLS, ACL
주요 기술Nginx, HAProxy, ELBKong, Apigee, AWS API GWNginx, EnvoyIstio, Linkerd
대상 범위외부 및 내부 요청API 중심 요청일반 HTTP 요청MSA 내부 통신

요약:

API Gateway vs. Load Balancer

항목API GatewayLoad Balancer
주요 목적API 요청의 라우팅, 인증, 속도 제한, 로깅 등 API 관리 기능 제공트래픽을 여러 서버로 분산하여 고가용성과 확장성 확보
계층애플리케이션 계층 (L7)네트워크 계층 (L4) 또는 애플리케이션 계층 (L7)
기능인증 및 권한 부여, 요청 변환, 속도 제한, 로깅, 모니터링 등트래픽 분산, 헬스 체크, 세션 지속성 등
사용 사례마이크로서비스 아키텍처에서 API 관리 및 보안 강화웹 서버 앞단에서 트래픽 분산 및 서버 부하 분산
예시AWS API Gateway, Kong, ApigeeNGINX, HAProxy, AWS ELB

로드 밸런서와 서비스 메시의 통합 전략

서비스 메시는 마이크로서비스 간의 통신을 관리하는 인프라 계층으로, 로드 밸런서와 함께 사용하여 트래픽 관리, 보안, 관찰 가능성 등을 향상시킬 수 있다.

예를 들어, Istio 와 같은 서비스 메시를 사용하면 로드 밸런서를 통해 외부 트래픽을 클러스터로 전달하고, 클러스터 내에서는 서비스 메시가 트래픽을 세밀하게 제어한다. 이를 통해 트래픽 분할, A/B 테스트, 회로 차단기 등의 고급 트래픽 관리 기능을 구현할 수 있다.

실무에서 효과적으로 적용하기 위한 고려사항 및 주의할 점

카테고리핵심 항목설명권장사항 / 실무 가이드
1. 설계 전략트래픽 예측 및 용량 계획트래픽 피크 대비 버퍼링 및 여유 설계최대 요청량 기준 + 30% 이상 여유 확보, Auto Scaling 연동 고려
로드 밸런서 유형 선택TCP/UDP 기반 또는 HTTP 기반 분산 유형 선택L4: 단순/속도 중시, L7: 정교한 정책 적용 가능 (URL, 헤더, 쿠키 기반)
알고리즘 결정서비스 특성과 서버 리소스 기준으로 분산 알고리즘 선택동일한 리소스 → Round-Robin, 불균등 리소스 → Weighted, 지연 민감 → Least Connection 등
2. 고가용성 구성이중화 아키텍처 구성단일 장애점 (SPOF) 제거를 위한 LB 이중화Active-Active 또는 Active-Passive 구성, DNS 기반 페일오버 또는 VIP 이중화 적용
다중 리전/Zone 분산리전 간 또는 가용 영역 간 분산 배치로 장애 격리GSLB, AWS Multi-AZ ELB, Azure Zone-redundant LB 등 활용
3. 헬스 체크체크 주기 및 조건 설정과도한 헬스 체크는 false positive 발생 가능, 너무 느리면 감지 지연5~15 초 간격 + 실패 임계값 (ex. 3 회 실패 시 제외), 어플리케이션 전용 /health 엔드포인트 구성
고급 상태 감지단순 ping 외에 포트 열림, HTTP 상태 코드, 응답 시간 측정 등 포함HTTP 200 응답 기반 체크, DB 연결 여부 포함 가능
4. 세션 관리상태 유지 여부 판단세션 기반 서비스는 Sticky Session 고려 필요Cookie Affinity, IP Hash 또는 Redis 등 외부 세션 저장소 구성
세션 일관성 유지 전략다중 인스턴스 간 세션 일관성 확보Session Replication, Central Session Store 적용
5. 보안SSL/TLS 처리 위치인증서 및 암호화 처리 위치가 보안/성능에 영향LB 에서 SSL 종료 (Termination) + 백엔드 평문 or 내부 인증서 재암호화
DDoS 및 WAF 연동공격 대응을 위해 프런트 단에 방어 계층 배치L7 WAF 적용, TLS 최신화, Cloudflare, AWS Shield 연동 등
접근 제어 및 인증로드 밸런서에서 접근 제한, 인증 적용인증 프록시 연동, IP 화이트리스트, OAuth2 인증 연계
6. 모니터링/로깅성능 및 장애 지표 수집요청 수, 지연 시간, 에러율, 처리량 등 수집 및 알림 설정Prometheus, Grafana, ELK, CloudWatch, Datadog 등과 연동
감사 로그 및 추적 설정사용자 요청 흐름 추적 및 장애 조사 가능X-Forwarded-For, Trace ID 삽입, OpenTelemetry 연동
7. 운영 관리자동화 및 IaC 적용수동 설정은 오류 위험, 코드 기반 자동화로 일관성 확보Terraform, Pulumi, AWS CDK 등 사용하여 로드밸런서 리소스 코드화
인증서/구성 관리 자동화SSL 갱신, 설정 변경 등을 자동화하여 운영 부담 감소Let’s Encrypt, ACM, Secret Manager 기반 자동화
비용 최적화트래픽과 사용량 기반 리소스 조정예약 인스턴스, 스팟 인스턴스, 요청 기반 요금제 분석

마이그레이션 시 고려사항

항목설명권장 사항
IP 고정성LB 변경 시 클라이언트 DNS 갱신 필요TTL 최소화, Blue/Green 적용
세션 마이그레이션쿠키 기반 세션의 연속성 유지 필요Session Affinity 설정 or 외부 저장소 사용
인증서 관리SSL 인증서 이전 필요ACM(AWS Certificate Manager) 자동화 권장
트래픽 스웜전환 직후 트래픽 급증 가능성Canary 방식 점진적 분산 권장

실무적 관점에서 로드 밸런서 구성 전략

구성 전략목적핵심 기능실무 예시
외부 L7 Load Balancer외부 클라이언트 요청 처리TLS 종료, WAF, URL 기반 라우팅, 세션 유지, 리다이렉션AWS ALB+WAF, Cloudflare
서비스 메시 (Envoy+Istio)내부 마이크로서비스 보안 통신mTLS, 장애 차단, 리트라이, 정책 기반 라우팅, 중앙 관찰 가능Istio mTLS Strict 적용
외부 트래픽 처리 전략 (L7 중심)
1
Client ──→ DNS ──→ WAF ──→ L7 Load Balancer ──→ Application Layer
내부 마이크로서비스 간 통신 전략 (L4 + 메쉬)
1
Service A ──→ Sidecar (Envoy) ──→ Istio Mesh ──→ Sidecar (Service B)

로드 밸런서 기반 블루 - 그린 배포 및 카나리 배포 전략

블루 - 그린 배포는 두 개의 환경 (블루와 그린) 을 유지하면서 새로운 버전을 배포하고, 트래픽을 새로운 환경으로 전환하는 방식이다.
카나리 배포는 새로운 버전을 소수의 사용자에게 먼저 배포하여 문제가 없는지 확인한 후 전체 사용자에게 확장하는 방식이다.

로드 밸런서를 사용하면 트래픽을 특정 버전의 서비스로 분산시켜 이러한 배포 전략을 구현할 수 있다.

로드 밸런서 자동화

**Infrastructure as Code (IaC)**와 GitOps를 활용하여 로드 밸런서 구성을 자동화할 수 있다.

예를 들어, Terraform 을 사용하여 AWS 의 Application Load Balancer(ALB) 를 정의하고, Argo CD 를 통해 Git 리포지토리의 변경 사항을 자동으로 클러스터에 적용할 수 있다.
이를 통해 인프라 변경의 추적 가능성과 일관성을 확보할 수 있다.

기술 적용 예시

Terraform 예시 (AWS ALB 설정):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
resource "aws_lb" "app" {
  name               = "my-app-lb"
  internal           = false
  load_balancer_type = "application"
  subnets            = var.public_subnets
  security_groups    = [aws_security_group.lb.id]
}

resource "aws_lb_target_group" "app_tg" {
  name     = "app-target-group"
  port     = 80
  protocol = "HTTP"
  vpc_id   = var.vpc_id
}

최적화하기 위한 고려사항 및 주의할 점

카테고리항목설명권장 사항 / Best Practice
1. 연결 및 네트워크 최적화Keep-Alive / 연결 풀링백엔드 서버와의 연결을 효율적으로 유지하여 성능 향상Keep-Alive 활성화, 연결 풀 크기 조절, 타임아웃 설정
네트워크 지연 최소화지역 간 Latency 및 오버헤드로 인한 지연 발생Edge LB 배치, 내부망/외부망 분리, MTU 최적화, Anycast 활용
HTTP/2 / QUIC 활용멀티플렉싱, 헤더 압축 등으로 요청 처리 효율 증대HTTP/2, HTTP/3 지원 LB 구성, 백엔드 호환성 확인
2. 트래픽 처리 및 분산 알고리즘분산 알고리즘 선택트래픽 유형 및 서비스 특성에 따라 효율적 로드 분산 방식 선택Round Robin, Least Connection, IP Hash, AI 기반 Adaptive 방식
요청 우선순위 지정중요 요청에 우선 자원을 할당하여 QoS 확보QoS 큐 설정, 트래픽 필터 기반 우선순위 정책 적용
과부하 보호과도한 요청 또는 DoS 상황에서 서버 보호 필요Rate Limiting, Queue Length 제한, Backpressure 적용
3. 콘텐츠 처리 및 캐싱 최적화캐싱 전략정적 콘텐츠 캐싱을 통한 응답 시간 단축 및 백엔드 부하 감소TTL 설정, CDN 연계, ETag/Last-Modified 기반 캐시 무효화 정책 구현
콘텐츠 압축네트워크 트래픽 최적화를 위한 압축 사용Gzip 또는 Brotli 압축 설정, 압축 유형 및 수준 조절, CPU 사용량 밸런스
버퍼 최적화대용량 콘텐츠 처리 시 효율적인 버퍼 관리 필요요청/응답 버퍼 크기 조정, 메모리 모니터링, Chunked Encoding 사용
4. TLS/SSL 최적화SSL 종료 위치암호화 해제 위치에 따라 성능 및 보안 영향L7 LB 에서 종료 → 백엔드 오프로드, TLS 재암호화 여부 판단
TLS 성능 최적화암복호화는 CPU 자원을 크게 소모함TLS 세션 재사용, OCSP 스테이플링, TLS offload (HW 가속기 or NIC 활용)
인증서 관리 자동화인증서 갱신/배포가 지연되면 장애 발생 가능Cert Manager, ACME 기반 자동화, Wildcard 인증서 적용
5. 리소스 및 인프라 계획리소스 할당인스턴스, CPU, 메모리 등 자원 효율 분배사용률 기반 가중치 설정, 스케줄러/워커 분리, 서버 스레드 튜닝
오토스케일링트래픽 급증 시 자동 확장 대응CPU/Memory 임계치 기반 Horizontal Pod Autoscaler 또는 Cloud LB Auto-Scaling 연동
Capacity Planning최대 트래픽/사용량 대비 여유 자원 확보피크 대비 +30~50% 리소스 확보, 정기적 재산정
6. 운영 관리 및 관측성Health Check / 장애 감지느린 헬스체크는 장애 서버에 트래픽을 지속적으로 보낼 수 있음2~3 회 실패 시 제거, TCP/HTTP 등 다중 방식 체크 구성
로깅 및 모니터링실시간 로깅은 성능에 영향, 지연 발생 가능비동기 로깅, Fluent Bit, Loki, Prometheus/Grafana 통합, OpenTelemetry 기반 트레이싱 도입
정책 및 구성 일관성다수 LB 운영 시 정책 충돌 또는 누락 발생GitOps 기반 Config 관리, Audit Log 도입, 통합 Config Control Plane 활용

로드 밸런서와 CDN 연계 아키텍처 설계

CDN (Content Delivery Network) 은 정적 콘텐츠를 전 세계 엣지 서버에 캐싱하여 사용자에게 빠르게 전달한다.
로드 밸런서와 함께 사용할 경우, 다음과 같은 방식으로 협력한다:

  1. CDN → Load Balancer → Backend
  2. CDN 은 정적 콘텐츠 처리
  3. LB 는 동적 콘텐츠 및 세션 기반 요청 처리

아키텍처 설계 예시

flowchart LR
    User --> EdgeCDN[Cloudflare CDN / Akamai / AWS CloudFront]
    EdgeCDN --> LB["Load Balancer (ALB/Nginx)"]
    LB --> App1[Web App Server]
    LB --> App2[API Server]

구성 전략

항목설명
TLS 종료CDN 에서 SSL 종료 후 → LB 까지 TLS 재암호화 가능
캐시 정책정적 리소스 (HTML/CSS/JS) 는 CDN 캐시 / API 는 BYPASS
도메인 전략www.domain.com → CDN, api.domain.com → LB 직접
오리진 보호CDN 에서만 LB 에 접근 가능하도록 방화벽 제어

실무 팁

멀티 클라우드 환경에서의 글로벌 로드 밸런서 설계

멀티 클라우드 (Global) 환경에서 로드 밸런싱은 Region 간 트래픽 분산 + DR (Disaster Recovery) 전략을 포함해야 한다.
핵심 요소는:

  1. DNS 기반 지리 라우팅 (Geo DNS)
  2. Anycast 기반 글로벌 LB
  3. Cross-region HA 구성

예시 아키텍처: AWS-GCP 혼합 환경

flowchart TD
    User --> GeoDNS
    GeoDNS --> AWS_GL[AWS Global Accelerator]
    GeoDNS --> GCP_LB[GCP Global HTTP LB]

    AWS_GL --> AWS_App1[us-east-1 App]
    GCP_LB --> GCP_App2[asia-east1 App]

주요 구성 요소 및 전략

항목설명
DNS 라우팅Route 53, Cloud DNS → 지리 기반/헬스 기반 라우팅
글로벌 트래픽 분산AWS Global Accelerator, GCP Global LB
복제데이터베이스 복제/동기화 고려 (Aurora Global DB 등)
장애 대응각 클라우드에 기본/보조 배포 + 자동 전환 정책
보안각 클라우드 간 IAM 정책 통합 또는 Zero Trust 설계

실무 팁

실무 사용 예시

분야시스템 대상사용 기술 / 구성 요소적용 방식주요 효과
웹 서비스웹 서버 클러스터NGINX, HAProxy, Apache, AWS ALBL7 HTTP 기반 트래픽 분산, 정적/동적 콘텐츠 분리고가용성 확보, 응답 속도 향상, 트래픽 급증 대응
API 서비스마이크로서비스 API 게이트웨이Kong, Apigee, AWS API Gateway, EnvoyAPI Gateway 통한 라우팅, 인증, 속도 제한, 로깅인증/보안 강화, 마이크로서비스 분리 구조 대응, 호출 분산
DB/StorageRDBMS (MySQL, PostgreSQL)ProxySQL, MySQL Router, HAProxy읽기 전용 요청 복제본으로 분산, 쓰기 요청은 마스터로 고정읽기 확장성 증가, 마스터 보호, 페일오버 기반 고가용성
실시간 서비스스트리밍 서버, 게임 서버Wowza, NGINX RTMP, HAProxy, LVS, WebRTCTCP/UDP 기반 분산 처리, 지역별 사용자 트래픽 우선 라우팅지연 시간 최소화, 버퍼링 감소, 높은 동접 대응
CDN/Edge정적 자산 / 글로벌 사용자Cloudflare, Akamai, Fastly, Anycast + GeoDNS사용자의 지리 기반 라우팅, 에지 서버 캐싱지연 최소화, DDoS 보호, 오리진 부하 감소
Kubernetes/컨테이너컨테이너화된 MSA 환경Ingress Controller, Istio, Linkerd, Gateway API서비스 디스커버리 + L7 트래픽 라우팅 (Path, Header, Weight)선언형 구성, 트래픽 세분화, 카나리/블루그린 배포 지원
서버리스 및 이벤트Lambda, Cloud FunctionsAWS ALB + Lambda, EventBridgeHTTP 트리거 기반 호출 분산, 서버리스 오토스케일 처리비용 절감, 이벤트 기반 병렬 처리 최적화
하이브리드 클라우드온프레미스 + 퍼블릭 클라우드F5 BIG-IP, Citrix ADC, GSLB여러 인프라 환경 간 트래픽 균형, 재해 복구용 이중화클라우드 벤더 독립성 확보, DR 구축, 자원 효율성 증대
금융/보안 강화인증 서버, 보안 APINGINX (mTLS), Redis 세션 클러스터, WAF 연동TLS 종료, 세션 공유, Bot 방어, 요청 필터링 적용보안 강화, 세션 일관성 유지, 인증 성능 향상

활용 사례

사례 1: API 서비스 기반 L7 Load Balancer 활용

구성: 외부 클라이언트 → L7 Load Balancer → REST API 서버 3 대

Workflow:

  1. Client 가 HTTP 요청 → L7 Load Balancer 가 요청 경로/쿠키 등 분석
  2. Health Check 통과 서버만을 대상으로 분산
  3. 스티키 세션 (flask_login 등) 필요 시 쿠키 기반 할당
  4. 서버 장애시 자동 제외, 응답시간 모니터링
flowchart TD
    Client-->|HTTP 요청| LB[L7 Load Balancer]
    LB-->|분산| API1[API Server1]
    LB-->|분산| API2[API Server2]
    LB-->|분산| API3[API Server3]
    API1-->|응답| LB
    API2-->|응답| LB
    API3-->|응답| LB
    LB-->|최종 응답| Client

LB 적용 vs 미적용 차이:

사례 2: SaaS 플랫폼의 글로벌 트래픽 분산 및 API 서비스 가용성 확보

flowchart LR
  subgraph Users
    U1["User A (Asia)"]
    U2["User B (EU)"]
  end
  DNS[DNS / GSLB]
  subgraph Region Asia
    NLB1["TCP LB (NLB)"]
    ALB1["App LB (ALB)"]
    AppA1[Service A]
    AppA2[Service A]
  end
  subgraph Region EU
    NLB2[TCP LB]
    ALB2[App LB]
    AppB1[Service A]
    AppB2[Service A]
  end

  U1 --> DNS
  U2 --> DNS

  DNS --> NLB1
  DNS --> NLB2

  NLB1 --> ALB1
  NLB2 --> ALB2

  ALB1 --> AppA1 & AppA2
  ALB2 --> AppB1 & AppB2

Workflow:

  1. 글로벌 유저 요청 → GSLB 기반 각 지역 NLB 로 라우팅
  2. L7 LB(ALB) 통해 API 핸들링, TLS 처리, 쿠키/헤더 기반 라우팅 수행
  3. 헬스 체크 실패 시 자동 리전 장애 전환
  4. 모니터링 지표 기반 용량 예측 및 오토스케일 운영

사례 3: 모바일 뱅킹 서비스

시나리오: 모바일 뱅킹 앱에서 사용자가 로그인 및 거래를 수행할 때, 고가용성과 세션 유지를 보장해야 한다.

시스템 구성:

graph TD
    Client(Mobile App)
    LB[AWS ALB]
    Proxy[Nginx L7 Proxy]
    Auth1[Auth Server 1]
    Auth2[Auth Server 2]
    Redis["Session Store (Redis)"]

    Client --> LB --> Proxy
    Proxy --> Auth1
    Proxy --> Auth2
    Auth1 --> Redis
    Auth2 --> Redis

Workflow:

역할:

유무에 따른 차이점:

구현 예시 (Nginx 설정):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
http {
    upstream auth_backend {
        server auth1.internal:8080;
        server auth2.internal:8080;
    }

    server {
        listen 443 ssl;
        server_name bank.example.com;

        location /login {
            proxy_pass http://auth_backend;
            proxy_set_header Host $host;
            proxy_cookie_path / "/; HttpOnly; Secure";
        }
    }
}

사례 4: E-commerce 플랫폼의 로드 밸런싱 구현

시스템 구성:

graph TB
    subgraph "사용자"
        A[웹 브라우저]
        B[모바일 앱]
    end
    
    subgraph "AWS Cloud"
        C[Route 53 DNS]
        D[CloudFront CDN]
        E[Application Load Balancer]
        
        subgraph "Auto Scaling Group"
            F[웹 서버 1]
            G[웹 서버 2]
            H[웹 서버 3]
        end
        
        I[RDS MySQL Master]
        J[RDS MySQL Read Replica]
    end
    
    A --> C
    B --> C
    C --> D
    D --> E
    E --> F
    E --> G
    E --> H
    F --> I
    G --> I
    H --> I
    F --> J
    G --> J
    H --> J

Workflow:

  1. DNS 해석: Route 53 을 통한 도메인 해석
  2. CDN 처리: CloudFront 에서 정적 콘텐츠 서빙
  3. 로드 밸런싱: ALB 에서 동적 콘텐츠 요청을 서버 클러스터로 분산
  4. 오토 스케일링: 트래픽 증가 시 자동으로 서버 인스턴스 추가
  5. 데이터베이스 분산: 읽기 요청은 Read Replica 로, 쓰기 요청은 Master 로 분산

로드 밸런서의 역할:

로드 밸런서 유무에 따른 차이점:

구현 예시:

로드 밸런서 관련 최신 기술 동향

기술설명적용 사례
eBPF 기반 LB커널 우회 경량 분산 처리Cilium LB, Facebook Katran
QUIC 지원 LBHTTP/3 기반의 UDP 전송Cloudflare, Google Edge LB
AI 기반 분산 전략트래픽 흐름을 예측 기반으로 분산Netflix, Azure
Zero Trust LBTLS 기반 보안 접속 제어 강화Zscaler, Google BeyondCorp
Service Mesh LBL7 제어 + 보안 정책 적용 가능Istio, Consul Connect

주목할 내용

카테고리항목설명실무적 의의 / 고려점
분산 알고리즘라운드로빈 / Least Connection요청을 순차 또는 최소 연결 수 기준으로 분산기본적인 L4/L7 분산 방식, 트래픽 패턴에 따라 적절한 선택 필요
AI/ML 기반 분산예측 기반의 동적 라우팅 적용 가능AI 기반으로 트래픽 급증/이상 감지 → 자동 분산 최적화 가능
지리 기반 분산 (GeoDNS)사용자의 위치를 기반으로 가장 가까운 서버에 트래픽 유도글로벌 서비스에서 Latency 최소화
트래픽 제어콘텐츠 기반 라우팅 (L7)URL, 쿠키, 헤더 값에 따라 라우팅A/B 테스트, 사용자 그룹별 분산 등에 활용
요청 우선순위 및 QoS 설정고우선 요청 처리 보장, 트래픽 급증 시 중요 트래픽 우선 처리B2B API, 알림 시스템 등 중요 서비스에 적용
세션 일관성 (Sticky Session)클라이언트 요청을 동일 서버로 유지로그인 세션, 쇼핑카트 등 상태 정보 유지 필요 서비스에 중요
운영 자동화헬스 체크 및 Failover비정상 서버 자동 제외 및 트래픽 리디렉션High Availability 유지, 무중단 운영의 핵심
Auto Scaling 연계Target Group 과 연계하여 자동 스케일 인/아웃Kubernetes, AWS ALB 등에서 탄력적 운영 구현
자가 치유 시스템헬스 이상 시 자동 조치 (다시 배포, 우회, 알림)MSA/Cloud 환경에서 점점 필수화
보안 기능SSL/TLS 종료 및 재암호화LB 에서 SSL 종료 후 내부 재암호화 또는 오프로드 처리내부 보안 수준에 따라 구성 (예: mTLS, TLS passthrough)
WAF 및 DDoS 방어 통합LB 에 Web Application Firewall 및 봇 방어 기능 연동Cloudflare, AWS WAF, NGINX App Protect 등 연계 가능
제로 트러스트 인증 (mTLS)마이크로서비스 간 통신 시 상호 인증서비스 메시와 함께 적용되며, 내부 위협 대응 강화
관찰 가능성 (O11y)메트릭 수집 및 대시보드응답 지연, QPS, 오류율 등 실시간 성능 모니터링Prometheus, Grafana, DataDog 연계 중요
분산 추적 (Tracing)요청 흐름을 추적하여 병목 위치 식별Istio + Jaeger / OpenTelemetry 표준화 흐름에 연계 가능
합성 모니터링실제 시나리오 기반 요청 테스트로 사용자 경험 측정외부 관점의 SLA 보장, CDN-LB-API 전경로 테스트 가능
아키텍처 확장성이중화 구성 (Active-Active)로드 밸런서 및 백엔드 서버 모두 이중화로 구성SPOF 방지, 다중 AZ 구성 시 표준
글로벌 GSLB / Edge LB전 세계 사용자 위치 기반으로 가장 빠른 지점에서 응답Cloudflare, AWS Global Accelerator, NS1 등 활용 가능
Kubernetes Ingress / Gateway서비스 Mesh 또는 컨테이너 네이티브 로드 밸런싱 방식Istio, Envoy, Gateway API 등 다양한 구현체와 통합 가능
기술 진화eBPF 기반 로드 밸런싱커널 수준에서 트래픽 필터링 및 라우팅 구현 가능CPU 오버헤드 줄이고 성능 극대화 가능, Cilium 등에서 실사용 증가
HTTP/3 + QUIC 지원UDP 기반 연결 설정 속도 향상 + 헤더 압축 + 멀티플렉싱 지원최신 웹 프로토콜 채택시 필수 고려사항
서버리스 연계 로드 밸런싱Lambda 등 이벤트 기반 아키텍처에서도 LB 구성 가능ALB + Lambda, API Gateway 연계 시 적용 가능
비용 최적화트래픽 기반 Auto-scaling트래픽 흐름에 따라 LB 자체 인스턴스를 자동으로 확장/축소GCP 의 Global LB, AWS ALB 등에서 지원
캐싱 및 압축 기능L7 로드 밸런서에서 gzip/Brotli 캐싱 적용 가능불필요한 백엔드 부하 제거, 정적 리소스 전달 최적화

반드시 학습해야할 내용

상위 카테고리주제학습 항목 예시실무 적용 관점 요약
1. 네트워크 기초OSI 모델/계층 이해L4(TCP/UDP), L7(HTTP/HTTPS) 작동 차이로드 밸런서 계층 선택 및 트래픽 라우팅 구조 설계에 필수
TCP/IP, HTTP 프로토콜TCP 핸드셰이크, 세션 지속, HTTP 헤더 기반 라우팅 등세션 유지 정책, L7 로직 설계, 성능 튜닝의 기반 지식
2. 부하 분산 알고리즘Routing AlgorithmRound Robin, Least Connection, Weighted, IP Hash, Consistent Hash서비스 패턴별 최적화된 부하 분산 전략 구현을 위한 핵심 요소
동적 가중치 알고리즘서버 상태, 응답 시간 기반 동적 가중치 조정Auto-scaling 환경, 동적 처리량 대응 구조에 필요
콘텐츠 기반 라우팅URL, 쿠키, 헤더 기반 조건 라우팅A/B 테스트, 멀티 테넌시 서비스, 정밀 라우팅 필요 시 적용
3. 보안 및 가용성TLS 종료 및 재암호화SSL Termination, 인증서 관리, mTLS보안 정책 구현, 암호화 처리 분산, 클라우드 오프로딩 구성
DDoS/WAF 통합WAF, Rate Limiting, Geo-blocking, Bot FilteringAPI Gateway 또는 L7 LB 와 연동하여 엣지 보안 강화
세션 관리 전략Sticky Session, Cookie Affinity, 중앙 세션 저장소상태 유지 서비스 대응, Redis 기반 세션 스토리지 등과 연계
고가용성 이중화Active-Active / Active-Passive 구성, 다중 AZ 배포SPOF 방지, 헬스 체크와 자동 Failover 구성
4. 클라우드 및 인프라클라우드 LB 서비스AWS ALB/NLB/ELB, GCP LB, Azure Load Balancer각 클라우드 환경의 특성과 한계 이해, 매니지드 서비스 선택 기준 정립
Kubernetes IngressIngress Controller (NGINX, Traefik, Istio)K8s 기반 애플리케이션의 HTTP/TCP 라우팅 처리 핵심
서비스 메시 통합Envoy, Istio, Linkerd 등 사이드카 기반 아키텍처마이크로서비스 간 동적 트래픽 분산 및 정책 기반 라우팅 적용
재해 복구 아키텍처GSLB, Anycast DNS, Backup Region글로벌 분산, 장애 발생 시 리전/네임서버 자동 전환
엣지 컴퓨팅 및 CDNWebRTC, Lambda@Edge, Workers, eBPF, Chunked Transfer실시간/저지연 콘텐츠 제공을 위한 고성능 분산 구조 구성
5. 관측성과 운영헬스 체크 구성주기 설정, 실패 조건, 탐지 엔드포인트 구성불필요한 장애 감지 방지, 실제 애플리케이션 상태 기반 라우팅 안정화
모니터링 & 메트릭Prometheus, Grafana, CloudWatch, latency/error/throughput운영 이상 탐지, 서비스 품질 SLA 유지, 대시보드 기반 대응
분산 트레이싱Zipkin, Jaeger 등과 연동L7 라우팅 경로 확인, 오류/지연 병목 위치 시각화 분석 가능
로깅 및 실시간 분석ELK, Fluent Bit, Splunk 등 로그 분석 파이프라인 구성이상 징후 조기 탐지, 장애 원인 추적, 보안 감시에 필수
부하 테스트 / 카오스 테스트JMeter, Locust, Chaos Monkey 등시스템 안정성 검증, 과부하 대응력 평가, 용량 계획 수립

용어 정리

카테고리용어설명
1. 구조 및 계층Layer 4 (L4)전송 계층 (TCP/UDP) 에서 작동하는 로드 밸런싱. 속도가 빠르지만 콘텐츠 기반 라우팅은 불가.
Layer 7 (L7)애플리케이션 계층 (HTTP/HTTPS) 에서 작동. URL/헤더 기반 라우팅 가능.
Reverse Proxy클라이언트 요청을 대신 받아 내부 서버에 전달하는 중개 서버 역할. 대부분의 L7 LB 는 리버스 프록시 방식.
Ingress ControllerKubernetes 환경에서 HTTP(S) 기반 트래픽을 라우팅하는 L7 컴포넌트. (예: NGINX, Istio 등)
Virtual IP (VIP)LB 에서 사용하는 가상 IP 주소. 클라이언트는 이 주소를 통해 서비스에 접근함.
Backend Pool로드 밸런서가 트래픽을 분산시키는 대상 서버 그룹.
2. 분산 알고리즘Round Robin서버에 순차적으로 요청을 분배하는 가장 기본적인 방식.
Least Connections현재 연결 수가 가장 적은 서버로 요청을 보내는 방식.
Weighted Round Robin서버별 가중치를 적용하여 요청을 분배. 서버 성능 차이를 반영할 때 사용.
IP Hash클라이언트 IP 해시값을 기반으로 특정 서버에 요청을 고정할 수 있음.
3. 세션 및 지속성Sticky Session (Session Affinity)동일 클라이언트의 요청을 항상 같은 서버로 라우팅. 세션 일관성 유지 필요 시 사용됨.
Session Persistence위 용어와 동일 의미. 보통 쿠키 또는 IP 기반으로 구현됨.
4. 보안 및 암호화SSL Termination (TLS Termination)LB 에서 암호화된 트래픽을 복호화한 후 내부로는 평문 전송. 서버 부하 감소 효과.
WAF (Web Application Firewall)애플리케이션 계층의 공격 (XSS, SQLi 등) 을 방지하기 위한 보안 필터. 보통 L7 LB 와 통합됨.
Proxy Protocol클라이언트의 원래 IP 주소를 백엔드 서버에 전달하는 프로토콜. 보안, 로깅 등에 필요.
5. 고가용성 및 장애 대응Health Check주기적으로 백엔드 서버 상태를 점검하여 장애 서버를 트래픽 대상에서 제외함.
Failover장애 발생 시 자동으로 다른 정상 노드로 트래픽 전환.
Active-Active모든 LB 또는 서버 인스턴스를 동시에 활성화하여 트래픽 분산.
Active-Passive한 인스턴스는 활성 상태, 다른 인스턴스는 대기 상태로 운영. 장애 발생 시 전환됨.
High Availability (HA)시스템이 장애 없이 지속적으로 서비스 제공 가능한 상태를 유지함.
6. 트래픽 최적화 및 확장성SSL OffloadLB 에서 SSL 복호화를 처리하여 백엔드 부하 경감.
Auto Scaling트래픽 증가/감소에 따라 서버 수를 자동 조절하는 기능.
Anycast동일 IP 를 여러 지점에 배포하여 지리적으로 가까운 서버에 트래픽 분산.
GSLB (Global Server LB)지리적으로 분산된 데이터센터 간 트래픽을 분산시키는 글로벌 로드 밸런싱 방식.
7. 기타 및 연계 기술Service Discovery동적으로 서버 목록을 감지하고 반영. Kubernetes, Consul 등에서 사용.
Content Switching요청의 URI, 헤더 등 콘텐츠 기반으로 백엔드 선택.
Circuit Breaker특정 서버 장애 감지 시, 추가 요청을 차단해 전체 시스템 보호.
Edge Server사용자 가까운 위치에서 요청을 처리하여 지연을 줄이는 서버 구성. (CDN 과 유사)
API Gateway인증, 속도 제한, 로깅 등을 처리하며 백엔드 API 로 요청을 전달. 마이크로서비스 아키텍처에서 자주 사용됨.

참고 및 출처

확장성 & 로드 밸런서 개념

NGINX 기반 로드 밸런서 설계

AWS Elastic Load Balancing & Kubernetes 연동

GSLB & 글로벌 PoP 구성

NGINX 일반 정보