컴퓨터 지식/네트워크

[네트워크]로드밸런서의 개념과 실제 구현까지

나맘임 2026. 6. 28. 09:24

로드밸런서에 대한 개념과 구현을 어떻게 하는지 학습한 내용을 정리했습니다.


로드밸런서(Load Balancer)?

로드밸런서(Load Balancer)는 클라이언트로부터 들어오는 네트워크 트래픽을 여러 백엔드 서버로 분산시키는 장치 또는 소프트웨어다. 교통경찰처럼 수많은 요청(차량)을 각 서버(도로)로 적절히 흘려보내, 특정 서버에 트래픽이 몰려 죽는 일을 방지한다. 현대 서비스에서 고가용성(HA), 수평 확장(Scale-out), 무중단 배포는 로드밸런서 없이는 불가능하다.

 

핵심 이점은 다음과 같다:

 

  • 가용성(Availability): 특정 서버 장애 시 나머지 서버로 즉시 트래픽 전환
  • 확장성(Scalability): 서버를 추가하는 것만으로 처리 용량 증가
  • 보안(Security): DDoS 방어, SSL 터미네이션 오프로드
  • 성능(Performance): 응답 시간 개선 및 사용자 경험 향상

 

플로우

[Client]
   │
   ▼
[Frontend IP / VIP]  ← 클라이언트는 이 주소만 알고 있음
   │
   ▼
[Load Balancer]  ← 알고리즘으로 서버 선택
   │       │       │
   ▼       ▼       ▼
[Server1][Server2][Server3]  ← Backend Pool
   │
   ▼
[Health Check]  ← 죽은 서버는 풀에서 자동 제거

웹 플로우를 말할 때 흔히 말하는 프론트엔드, 백엔드 단어가 로드밸런서에도 존재한다.

로드밸런서는 프론트엔드 구성, 백엔드 구성으로 구분한다.

 

프론트엔드 구성

프론트엔드는 클라이언트가 실제로 접근하는 진입점이다.

클라이언트는 뒤에 서버가 몇 대인지 전혀 모르고, 오직 이 IP 하나로만 통신한다.

구성 요소 설명
VIP (Virtual IP) 클라이언트가 접속하는 공인 또는 사설 IP
Frontend Port 수신할 프로토콜/포트 정의(ex. TCP 80, TCP 443)
SSL Termination HTTPS를 LB에서 끊고 백엔드엔 HTTP로 전달
Inbound NAT Rule 특정 프론드엔드 포트 -> 특정 백엔드 서버 직접 매핑 (ex. SSH 관리용)

 

당연하게도 백엔드 서버의 공인 IP는 제거해야만 한다.

내부망에 존재해야 한다는 의미이다.

공인 IP가 노출되어 있으면 로드밸런서를 우회할 수 있기 때문에 로드밸런서의 의미가 없어진다.

백엔드 구성

구성 요소 설명
Backend Pool 트래픽을 수신하는 서버 인스턴스 집합
Health Check 주기적으로 서버 생존 여부 확인, 비정상 서버는 풀에서 자동 제거
Load Balancing Rule 어떤 프로토콜/포트로 백엔드에 전달할지 정의
Session Persistence(Sticky Session) 동일 클라이언트를 동일 서버로 고정(IP Hash 또는 쿠키 기반)

 

내부의 서버를 연결하기 위한 구성들이다.

서버 인스턴스들이 여러 개를 있고 장애는 언제든지 생길 수 있기 때문에 헬스 체크와 로드 밸런싱 룰은 필연적 과정이다.

세션 유지는 구현하고자 하는 기능에 따라 사용 여부가 결정된다.

만약, 사용자가 해당 서버 인스턴스에 처리하고 있는 작업 또는 처리했던 메모리에 접근할 필요가 있으면 사용하면 된다.

 

로드밸런싱 알고리즘

알고리즘 동작 방식 장점 단점 적합한 상황
Round Robin  순서대로 순환 구현 단순 서버 성능 차이 무시 동일 사양 서버,
짧은 요청
Weighted Round Robin 가중치 비율만큼 분배 이기종 서버 대응 실시간 부하 미반영 서버 스펙이 다른 환경
Least Connections  현재 연결 수 최소 서버 선택 실시간 부하 반영 연결 수 추적
오버헤드
처리 시간이
가변적인 요청
Weighted Least Connections  연결 수 ÷ 가중치가 최소인
서버
성능+부하 모두 고려 구현 복잡 이기종 서버 + 가변 요청
IP Hash  클라이언트 IP 해시
→ 고정 서버
세션 지속성 보장 트래픽 편중 가능 장바구니,
로그인 세션
Least Response Time  응답시간+연결수 복합
최소 서버
최고의 UX 지속 모니터링 오버헤드 금융, 실시간 서비스
Least Bandwidth  대역폭 사용량이 최소인
서버 선택
네트워크 리소스 최적화 순간 변동에 민감 CDN,
비디오 스트리밍

자주 쓰는 툴 & 서비스

소프트웨어 로드밸런서

특징 주요 사용처
Nginx  HTTP/TCP 프록시, 정적 파일 서빙 겸용, 설정 간단 웹 서비스 표준
HAProxy 고성능 L4/L7, 상세한 통계 대시보드, 금융권 선호 고트래픽, 금융
Traefik  Kubernetes/Docker 네이티브, 자동 서비스 디스커버리 컨테이너 환경
Envoy Istio의 기반, L7 관찰성(Tracing/Metrics) 탁월 서비스 메시, 클라우드 네이티브

 

Nginx 설정 예시

http {
  upstream backend_servers {
    # 기본: 라운드 로빈
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;

    # 가중치 라운드 로빈
    # server backend1.example.com weight=3;

    # 최소 연결
    # least_conn;

    # IP 해시 (세션 고정)
    # ip_hash;
  }

  server {
    listen 80;
    location / {
      proxy_pass http://backend_servers;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }
}

 

클라우드 관리형 LB

서비스 설명
AWS ELB/ALB/NLB  L7(ALB), L4(NLB), 자동 스케일링 연동
Azure Load Balancer  프론트엔드 IP + 백엔드 풀 + 상태 프로브 구조
GCP Cloud Load Balancing 글로벌 분산, Anycast IP 지원
Kubernetes Service (LoadBalancer type) 클라우드 LB와 자동 연동, 외부 IP 자동 할당

 

하드웨어 로드밸런서

고성능과 안정성이 최우선인 환경에서는 F5 Networks, Citrix ADC, A10 Networks 같은 전용 어플라이언스를 사용한다.

초기 비용이 매우 높고 확장성에 제약이 있어 최근엔 클라우드 네이티브 환경에서 점점 대체되는 추세다.

 

 

 

출처

https://www.cloudv.kr/others/lb.html

 

'컴퓨터 지식 > 네트워크' 카테고리의 다른 글

HTTPS에 대하여  (0) 2025.01.13