로드 밸런서

기술노트

⚖️ 로드 밸런서 (Load Balancer)

로드 밸런서는 여러 대의 서버가 처리해야 할 작업(로드, Load)을 여러 서버에 효율적으로 나누어주는(밸런싱, Balancing) 장비 또는 소프트웨어입니다. 이를 통해 특정 서버에 트래픽이 집중되는 것을 막고, 전체 시스템의 안정성과 처리량을 향상시킵니다.

마치 고속도로 톨게이트에서 여러 개의 요금소가 차량을 나누어 처리하여 정체를 해소하는 것과 같은 원리입니다.


🧐 로드 밸런서의 주요 기능

  • 부하 분산 (Load Balancing) : 들어오는 요청을 여러 서버에 균등하게 분배합니다.
  • 상태 확인 (Health Check) : 주기적으로 서버의 상태를 확인하여, 정상적으로 동작하는 서버에만 요청을 보냅니다. 특정 서버에 장애가 발생하면, 해당 서버를 트래픽 분배 대상에서 자동으로 제외합니다.
  • 가용성 보장 (High Availability) : 일부 서버에 장애가 발생하더라도, 다른 정상 서버로 요청을 보내 서비스가 중단되지 않도록 합니다.
  • 확장성 향상 (Scalability) : 트래픽이 증가하면 새로운 서버를 추가하는 것만으로 간단하게 전체 시스템의 처리 용량을 늘릴 수 있습니다.

⚙️ 로드 밸런싱 알고리즘

로드 밸런서는 다양한 알고리즘을 사용하여 트래픽을 분배합니다.

  • 라운드 로빈 (Round Robin) : 요청을 서버에 순서대로 번갈아 가며 분배하는 가장 간단한 방식입니다.
  • 최소 연결 (Least Connection) : 현재 연결 수가 가장 적은 서버에 요청을 보내는 방식입니다.
  • IP 해시 (IP Hash) : 클라이언트의 IP 주소를 해싱하여 특정 서버에만 요청을 보내는 방식입니다. 이를 통해 한 사용자는 항상 같은 서버에 접속하도록 보장할 수 있습니다.
  • 가중 라운드 로빈 (Weighted Round Robin) : 서버의 성능에 따라 가중치를 부여하여, 성능이 좋은 서버에 더 많은 요청을 보내는 방식입니다.

💡 개발자 핵심 Point

  • 현대적인 웹 서비스 아키텍처에서 로드 밸런서는 안정성과 확장성을 위한 필수 구성 요소입니다.
  • 로드 밸런서는 네트워크 계층에 따라 L4 로드 밸런서와 L7 로드 밸런서로 나뉩니다. L4는 IP와 포트 정보를, L7은 URL, 쿠키 등 더 상세한 정보를 바탕으로 트래픽을 분배할 수 있어 더 정교한 제어가 가능합니다.
  • AWS의 ELB, Google Cloud Load Balancing 등 클라우드 서비스 제공업체(CSP)들은 관리형 로드 밸런서 서비스를 제공하여, 개발자가 쉽게 로드 밸런싱 환경을 구축할 수 있도록 지원합니다.