로드밸런싱

정의

로드밸런싱이란, 애플리케이션을 지원하는 리소스풀에 들어오는 네트워크 트래픽을 고르게 분산하는 것을 의미한다.

로드밸런서는 애플리케이션 서버 앞단에 위치하며, 클라이언트 요청을 지시하고 제어한다. 이를 통해서 애플리케이션의 가용성, 확장성, 보안 및 성능을 확보할 수 있다.

로드밸런싱 알고리즘

1. 라운드로빈 (RR)

  • 모든 방식이 순서대로 처리된다.

  • 구현이 쉬우며 고른 분산을 보장한다.

  • 서버 부하나 응답 시간을 고려하지 않고 서버의 처리 능력이 다른 경우 비효율적이다.

  • Nginx에서 기본 설정 알고리즘은 라운드로빈이다.

2. 가중치 라운드로빈

  • 라운드로빈 방식에 가중치 개념 추가

  • 각 서버는 처리 능력과 가용자원에 따라서 가중치를 할당 받게 된다.

  • 서버의 상태를 고려하지 못한다는 단점이 있다.

3. 최소 연결

  • 각 서버의 활성 연결 수를 모니터링 하고 있는 경우 사용 가능하다.

  • 가장 적은 활성 연결이 존재하는 서버에게 요청을 전달한다.

  • 각 서버의 처리 능력이 다른 경우 적합하지 않을 수 있다.

4. 가중치 최소 연결

  • 상대적으로 처리 능력이 큰 서버가 존재하는 경우, 가중치를 부여한다.

5. 최소 응답 시간

  • 각 서버의 응답 시간을 모니터링하고 있는 경우 사용 가능하다.

  • 응답 시간이 가장 빠른 서버에 요청을 전달한다.

  • 서버의 부하 샅애, 활성 연결 수와 같은 다른 요소는 고려하지 않는다.

6. IP 해시

  • 클라이언트 요청의 ip를 기반으로 요청을 전달한다.

  • 클라이언트와 서버간의 친화성 유지에 초점을 맞춘 방식이다.

  • 서버부하가 균등하게 이뤄지지는 않는다.

응용: 세션 불일치 문제에서 스티키 세션 방식을 사용할 경우 유용하게 활용할 수 있을 것이다.

Last updated