⚖️ LoadBalancer란?

정의

LoadBalancer는 들어오는 요청을 여러 서버로 분산하여 처리하는 장치 또는 소프트웨어이다. 특정 서버에 부하가 몰리지 않도록 나눠 주고, 서비스 가용성을 높이는 데 사용한다.

🧭 역할

  • 요청을 여러 서버로 분산한다.
  • 특정 서버 장애 시 다른 서버로 우회한다.
  • 상태가 좋은 서버만 선택하도록 도울 수 있다.
  • 서비스 확장성을 높인다.

🧱 주요 기능

  • 트래픽 분산
  • 헬스 체크
  • 장애 서버 제외
  • 세션 유지
  • SSL 종료
  • 라우팅 정책 적용

포인트

로드밸런서는 단순히 요청을 나누는 것만이 아니라 정상 서버만 골라 보내는 운영 장치이기도 하다.

🔀 분산 방식

Round Robin

  • 요청을 순서대로 번갈아 분배한다.

Least Connection

  • 현재 연결 수가 가장 적은 서버로 보낸다.

IP Hash

  • 클라이언트 IP를 기준으로 같은 서버로 보내는 방식이다.

Weighted 방식

  • 서버 성능에 따라 가중치를 다르게 둔다.

🧩 계층 기준

L4 LoadBalancer

  • TCP/UDP 계층에서 분산한다.
  • 빠르고 단순하다.

L7 LoadBalancer

  • HTTP 같은 애플리케이션 계층에서 분산한다.
  • 경로, 헤더, 쿠키 기준 라우팅이 가능하다.

구분

L4는 전송 계층 중심이고, L7은 애플리케이션 계층 중심이다.

🛠️ 실무에서 고려할 점

  • 헬스 체크 주기를 어떻게 둘지
  • 세션을 유지할지 여부
  • SSL 종료를 어디서 할지
  • 장애 서버를 얼마나 빨리 제외할지
  • 라우팅 규칙을 어디까지 세밀하게 둘지

✅ 활용 예시

  • 웹 서버 앞단 요청 분산
  • WAS 다중화
  • 무중단 운영
  • 서비스 확장
  • 장애 복구

⚠️ 주의할 점

  • 로드밸런서가 있어도 애플리케이션 자체 병목은 해결되지 않는다.
  • 세션 공유가 없으면 사용자 경험이 깨질 수 있다.
  • 헬스 체크가 부정확하면 정상 서버를 잘못 제외할 수 있다.

[!important] 정리 LoadBalancer는 성능과 가용성을 함께 고려하는 분산 지점이다. 어떤 방식으로 분산할지보다 먼저 서비스의 특성과 세션 구조를 이해해야 한다.


연결문서

댓글남기기