Load Balancer의 개념과 동작 방식

문준일·2025년 3월 27일
post-thumbnail

프로젝트 배포 중에, 백엔드 서버에 도메인을 연결하면 깔끔한 API 주소 관리가 가능하고, 프론트 단에서도 도메인 기준으로 환경을 나누기 쉽고, 로드 밸런싱 등 나중에 확장하기도 좋다고 한다. 로드 밸런싱이 정확히 무엇일까? 이번 글에서는 로드 밸런서의 개념과 동작 방식에 대해 다뤄보고자 한다.


1️⃣ 로드 밸런서(Load Balancer)란?

서비스 트래픽이 많아지면 단일 서버로는 모든 요청을 감당하기 어렵다. 이때 등장하는 것이 바로 로드 밸런서(Load Balancer)이다.

로드 밸런서는 여러 서버에 트래픽을 분산시켜 주는 트래픽 분산 장치로서, 가용성과 확장성을 높이기 위해 필수적인 인프라 구성 요소이다.
로드 밸런서는 클라이언트의 요청을 받아서 백엔드 서버 중 하나로 적절하게 분배하는 역할을 한다.

  • 클라이언트 → 로드 밸런서 → 백엔드 서버 A/B/C...

🎯 주요 목적

  • 성능 향상
  • 장애 대응 (Failover)
  • 시스템 확장성 확보
  • 트래픽 균형 유지

놀이공원 입구에 있는 직원이 손님을 줄이 덜 선 입장로로 안내해 주는 것과 비슷하다.
손님은 어떤 게이트로 들어가는지 신경 쓸 필요 없이, 안내자만 따르면 된다. 이때 이 안내자가 바로 로드 밸런서이다.


2️⃣ 로드 밸런싱 알고리즘

로드 밸런서는 단순히 무작위로 트래픽을 보내지 않고 여러 가지 알고리즘에 따라 요청을 분산한다.

알고리즘설명
Round Robin서버를 순서대로 돌아가며 요청을 분배
Weighted Round Robin서버마다 가중치를 두고 비율에 따라 분배
Least Connections현재 연결 수가 가장 적은 서버에 전달
IP Hash클라이언트 IP를 해싱해서 특정 서버로 고정
Random랜덤하게 서버 선택




3️⃣ 밸런서의 종류

1. 하드웨어 로드 밸런서

  • Cisco, F5 등의 장비
  • 고성능, 높은 비용
  • 기업용 대규모 트래픽 처리에 사용

2. 소프트웨어 로드 밸런서

  • Nginx, HAProxy, Apache 등
  • 설정 유연, 오픈소스
  • 중소 규모 또는 클라우드 환경에서 주로 사용

3. 클라우드 로드 밸런서

  • AWS ELB, GCP Load Balancing 등
  • 자동 확장, 관리형 서비스
  • 사용한 만큼 과금

4️⃣ L4 vs L7 Load Balancer

로드 밸런서는 OSI 7계층 중 어디서 작동하느냐에 따라 나뉜다.

구분설명예시
L4 (Transport Layer)IP, Port 기반 분산TCP, UDP
L7 (Application Layer)URL, 쿠키, 헤더 등 HTTP 레벨 분산Nginx, ALB

📌 L4 특징

  • 속도가 빠르고 단순
  • 클라이언트의 IP와 포트만 보고 라우팅하기 때문에 설정이 간단
  • 단점은 애플리케이션 계층 정보를 알 수 없어 세밀한 트래픽 제어가 어렵다.

📌 L7 특징

  • HTTP, HTTPS와 같은 애플리케이션 프로토콜을 이해한다.
  • 요청의 경로(/api, /images), 쿠키, 헤더 등을 기준으로 라우팅할 수 있어 정교한 분기가 가능하다.
  • L4보다 오버헤드가 크고 설정이 복잡할 수 있다.

5️⃣ 로드 밸런서와 보안

로드 밸런서는 단순히 트래픽만 분산시키는 도구가 아니다.
보안 측면에서도 매우 중요한 역할을 한다.

✅ 보안 기능 예시

  • DDoS 공격 완화: 로드 밸런서가 앞단에서 요청을 필터링함으로써 과도한 요청을 막아 서버 과부하를 방지한다.
  • SSL 인증서 종료 (TLS Termination): HTTPS로 암호화된 요청을 로드 밸런서에서 복호화하여 백엔드 서버는 HTTP로 통신하게 할 수 있다 (보안성과 성능을 동시에 확보할 수 있다)
  • 방화벽 역할: 특정 IP 차단, 경로 제한 등을 통해 불필요하거나 악의적인 요청을 차단할 수 있다.
  • WAF(Web Application Firewall)와 연동 가능: SQL Injection, XSS 등 애플리케이션 공격을 탐지하고 차단할 수 있다.

예시: Nginx로 로드 밸런서 구성

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://backend;
        }
    }
}

위 예시는 backend1, backend2 두 서버로 트래픽을 분산하는 간단한 Round Robin 구성이다.


✅ 정리

  • 로드 밸런서는 트래픽을 여러 서버에 효율적으로 분산
  • 성능, 가용성, 확장성, 보안 향상
  • 다양한 알고리즘과 계층 구조 존재
  • 클라우드 환경에서도 매우 중요한 역할

🔚 마무리

실무 환경에서는 로드 밸런서 없이 안정적인 서비스 운영이 어렵다.
특히 Nginx, AWS ELB 등은 백엔드 개발자라면 반드시 익숙해져야 할 도구다. 단순 개념을 넘어서, 직접 설정하고 테스트해보는 것도 좋은 학습이 될 것이라고 생각한다.

profile
하나씩 실천하는 개발자

0개의 댓글