로드밸런싱
정의
로드밸런싱이란, 애플리케이션을 지원하는 리소스풀에 들어오는 네트워크 트래픽을 고르게 분산하는 것을 의미한다.
로드밸런서는 애플리케이션 서버 앞단에 위치하며, 클라이언트 요청을 지시하고 제어한다. 이를 통해서 애플리케이션의 가용성, 확장성, 보안 및 성능을 확보할 수 있다.
로드밸런싱 알고리즘
1. 라운드로빈 (RR)
모든 방식이 순서대로 처리된다.
구현이 쉬우며 고른 분산을 보장한다.
서버 부하나 응답 시간을 고려하지 않고 서버의 처리 능력이 다른 경우 비효율적이다.
Nginx에서 기본 설정 알고리즘은 라운드로빈이다.
2. 가중치 라운드로빈
라운드로빈 방식에 가중치 개념 추가
각 서버는 처리 능력과 가용자원에 따라서 가중치를 할당 받게 된다.
서버의 상태를 고려하지 못한다는 단점이 있다.
3. 최소 연결
각 서버의 활성 연결 수를 모니터링 하고 있는 경우 사용 가능하다.
가장 적은 활성 연결이 존재하는 서버에게 요청을 전달한다.
각 서버의 처리 능력이 다른 경우 적합하지 않을 수 있다.
4. 가중치 최소 연결
상대적으로 처리 능력이 큰 서버가 존재하는 경우, 가중치를 부여한다.
5. 최소 응답 시간
각 서버의 응답 시간을 모니터링하고 있는 경우 사용 가능하다.
응답 시간이 가장 빠른 서버에 요청을 전달한다.
서버의 부하 샅애, 활성 연결 수와 같은 다른 요소는 고려하지 않는다.
6. IP 해시
클라이언트 요청의 ip를 기반으로 요청을 전달한다.
클라이언트와 서버간의 친화성 유지에 초점을 맞춘 방식이다.
서버부하가 균등하게 이뤄지지는 않는다.
응용: 세션 불일치 문제에서 스티키 세션 방식을 사용할 경우 유용하게 활용할 수 있을 것이다.
Last updated