서비스 이용자가 늘어나면 하나의 서버로는 모든 요청을 처리하기 어려워집니다. 이때 여러 대의 서버에 트래픽을 고르게 분산시켜주는 기술이 바로 로드 밸런싱입니다.

로드 밸런싱이 필요한 이유

단일 서버에 장애가 발생하면 서비스 전체가 중단될 수 있습니다. 여러 서버에 트래픽을 분산하면 하나의 서버가 다운되더라도 나머지 서버가 요청을 처리해 서비스 가용성을 유지할 수 있습니다.

대표적인 로드 밸런싱 알고리즘

  • 라운드 로빈(Round Robin): 요청을 순서대로 각 서버에 균등하게 분배합니다.
  • 최소 연결(Least Connections): 현재 연결 수가 가장 적은 서버로 요청을 보냅니다.
  • IP 해시(IP Hash): 클라이언트의 IP를 기준으로 항상 같은 서버로 요청을 보내 세션을 유지합니다.
  • 가중 라운드 로빈(Weighted Round Robin): 서버의 성능에 따라 가중치를 부여해 트래픽 비율을 조정합니다.

L4 vs L7 로드 밸런서

L4 로드 밸런서는 IP와 포트 정보만으로 트래픽을 분산하기 때문에 속도가 빠릅니다. 반면 L7 로드 밸런서는 HTTP 헤더나 URL 경로까지 확인해 더 정교한 라우팅이 가능하지만 처리 부하가 다소 높습니다.

클라우드 환경에서의 로드 밸런서

AWS의 ALB(Application Load Balancer), GCP의 Cloud Load Balancing처럼 클라우드 업체들은 관리형 로드 밸런서 서비스를 제공합니다. 직접 Nginx나 HAProxy로 구성할 수도 있지만, 관리형 서비스를 사용하면 헬스체크, 오토스케일링과의 연동을 훨씬 간편하게 처리할 수 있습니다.

마무리

로드 밸런싱은 서비스 규모가 커질수록 반드시 고려해야 하는 핵심 인프라 요소입니다. 알고리즘의 특성을 이해하고 서비스 성격에 맞는 방식을 선택하는 것이 중요합니다.