기타/DevOps
로드 밸런서란?
시뻘건 튼튼발자
2024. 8. 28. 23:48
반응형
로드 밸런서는 네트워크 트래픽을 여러 서버에 효율적으로 분산하여 시스템의 성능과 가용성을 향상시킬 수 있다. 구체적으로, 로드 밸런서는 다음과 같은 주요 기능을 수행한다.
- 트래픽 분산: 클라이언트로부터 들어오는 요청을 여러 서버에 고르게 분배하여 각 서버에 과부하가 걸리지 않도록 한다. 이를 통해 시스템 전체의 처리 능력을 향상시키고, 트래픽이 급증해도 안정적인 서비스를 제공할 수 있다.
- 장애 조치: 서버 중 하나가 장애를 일으키면, 로드 밸런서는 자동으로 해당 서버로의 트래픽을 차단하고 다른 정상적인 서버로 트래픽을 전환하여 서비스가 지속적으로 운영되도록 할 수 있다.
- 세션 유지: 일부 로드 밸런서는 특정 클라이언트의 요청을 동일한 서버로 보내도록 세션을 유지하는 기능을 제공한다.
클라이언트로부터 들어오는 요청을 여러 서버에 고르게 분배하는 데 사용되는 기준은 로드 밸런싱 알고리즘에 따라 달라질 수 있다. 로드 밸런서는 다양한 알고리즘을 사용하여 요청을 분배하며, 각 알고리즘은 특정한 조건이나 목표에 맞게 설계되어 있다. 주요 로드 밸런싱 알고리즘은 다음과 같다.
- 라운드 로빈 (Round Robin):
- 각 서버에 순차적으로 요청을 분배합니다. 첫 번째 요청은 첫 번째 서버로, 두 번째 요청은 두 번째 서버로, 이렇게 계속 반복한다.
- 서버들이 대체로 동일한 성능을 가지고 있으며, 각 요청이 서버에 비슷한 부하를 주는 경우 적합하다.
- 가중치 라운드 로빈 (Weighted Round Robin):
- 각 서버에 가중치를 할당한 후, 가중치에 따라 요청을 분배한다. 성능이 더 좋은 서버는 더 많은 요청을 처리하게된다.
- 서버의 성능이 다를 때, 더 강력한 서버가 더 많은 트래픽을 처리하도록 할 때 적합하다.
- 최소 연결 (Least Connections):
- 현재 연결된 클라이언트 수가 가장 적은 서버로 요청을 분배한다.
- 서버에 걸리는 부하가 비슷하지 않고, 일부 요청이 다른 요청보다 더 오랜 시간 동안 지속되는 경우에 적합하다.
- 최소 응답 시간 (Least Response Time):
- 서버의 현재 응답 시간을 모니터링하여 가장 빠른 응답 시간을 가진 서버로 요청을 분배한다.
- 성능이 가변적인 서버들 사이에서 가장 빠른 서비스 제공을 원할 때 적합하다.
- IP 해시 (IP Hash):
- 클라이언트의 IP 주소를 해시하여 특정 서버에 할당한다. 같은 클라이언트는 항상 같은 서버로 연결된다.
- 세션을 유지해야 하는 경우, 예를 들어 사용자가 로그인된 상태를 유지해야 하는 웹 애플리케이션에서 사용하기 적합하다.
- 가중치 최소 연결 (Weighted Least Connections):
- 가중치 라운드 로빈과 최소 연결 알고리즘을 결합한 방식이다. 가중치에 따라 더 적은 연결을 가진 서버로 트래픽을 분배한다.
- 서버 성능과 현재 부하를 모두 고려해야 하는 복잡한 환경에서 사용하기 적합하다.
- URL 해시 (URL Hash):
- 요청된 URL을 해시하여 특정 서버에 요청을 할당한다.
- 특정 URL이나 리소스에 대해 캐싱 효과를 극대화하고자 할 때 적합하다.
반응형