기타/DevOps

로드 밸런서란?

시뻘건 튼튼발자 2024. 8. 28. 23:48
반응형

로드 밸런서는 네트워크 트래픽을 여러 서버에 효율적으로 분산하여 시스템의 성능과 가용성을 향상시킬 수 있다. 구체적으로, 로드 밸런서는 다음과 같은 주요 기능을 수행한다.

  1. 트래픽 분산: 클라이언트로부터 들어오는 요청을 여러 서버에 고르게 분배하여 각 서버에 과부하가 걸리지 않도록 한다. 이를 통해 시스템 전체의 처리 능력을 향상시키고, 트래픽이 급증해도 안정적인 서비스를 제공할 수 있다.
  2. 장애 조치: 서버 중 하나가 장애를 일으키면, 로드 밸런서는 자동으로 해당 서버로의 트래픽을 차단하고 다른 정상적인 서버로 트래픽을 전환하여 서비스가 지속적으로 운영되도록 할 수 있다.
  3. 세션 유지: 일부 로드 밸런서는 특정 클라이언트의 요청을 동일한 서버로 보내도록 세션을 유지하는 기능을 제공한다.
 

클라이언트로부터 들어오는 요청을 여러 서버에 고르게 분배하는 데 사용되는 기준은 로드 밸런싱 알고리즘에 따라 달라질 수 있다. 로드 밸런서는 다양한 알고리즘을 사용하여 요청을 분배하며, 각 알고리즘은 특정한 조건이나 목표에 맞게 설계되어 있다. 주요 로드 밸런싱 알고리즘은 다음과 같다.

  1. 라운드 로빈 (Round Robin):
    • 각 서버에 순차적으로 요청을 분배합니다. 첫 번째 요청은 첫 번째 서버로, 두 번째 요청은 두 번째 서버로, 이렇게 계속 반복한다.
    • 서버들이 대체로 동일한 성능을 가지고 있으며, 각 요청이 서버에 비슷한 부하를 주는 경우 적합하다.
  2. 가중치 라운드 로빈 (Weighted Round Robin):
    • 각 서버에 가중치를 할당한 후, 가중치에 따라 요청을 분배한다. 성능이 더 좋은 서버는 더 많은 요청을 처리하게된다.
    • 서버의 성능이 다를 때, 더 강력한 서버가 더 많은 트래픽을 처리하도록 할 때 적합하다.
  3. 최소 연결 (Least Connections):
    • 현재 연결된 클라이언트 수가 가장 적은 서버로 요청을 분배한다.
    • 서버에 걸리는 부하가 비슷하지 않고, 일부 요청이 다른 요청보다 더 오랜 시간 동안 지속되는 경우에 적합하다.
  4. 최소 응답 시간 (Least Response Time):
    • 서버의 현재 응답 시간을 모니터링하여 가장 빠른 응답 시간을 가진 서버로 요청을 분배한다.
    • 성능이 가변적인 서버들 사이에서 가장 빠른 서비스 제공을 원할 때 적합하다.
  5. IP 해시 (IP Hash):
    • 클라이언트의 IP 주소를 해시하여 특정 서버에 할당한다. 같은 클라이언트는 항상 같은 서버로 연결된다.
    • 세션을 유지해야 하는 경우, 예를 들어 사용자가 로그인된 상태를 유지해야 하는 웹 애플리케이션에서 사용하기 적합하다.
  6. 가중치 최소 연결 (Weighted Least Connections):
    • 가중치 라운드 로빈과 최소 연결 알고리즘을 결합한 방식이다. 가중치에 따라 더 적은 연결을 가진 서버로 트래픽을 분배한다.
    • 서버 성능과 현재 부하를 모두 고려해야 하는 복잡한 환경에서 사용하기 적합하다.
  7. URL 해시 (URL Hash):
    • 요청된 URL을 해시하여 특정 서버에 요청을 할당한다.
    • 특정 URL이나 리소스에 대해 캐싱 효과를 극대화하고자 할 때 적합하다.
반응형