Load Balancing - 2
로드 밸런싱 알고리즘
- 로드 밸런싱 알고리즘은 로드 밸런서가 서로 다른 클라이언트 요청 각각에 가장 적합한 서버를 결정하기 위해 따르는 규칙 세트이다.
- 로드 밸런싱 알고리즘은 크게 2가지 범주로 나뉜다.
정적 로드 밸런싱
정적 로드 밸런싱 알고리즘은 고정된 규칙을 따르며 현재 서버 상태와 무관합니다.
1. Round Robin (라운드 로빈)
- 각 서버에 요청을 순차적으로 분배하는 가장 간단한 방법이다.
- 모든 서버가 동일한 가중치를 가진다.
- 서버가 추가되거나 제거되면 동적으로 대응할 수 있다.
장점
- 간단하며 구현이 쉽다.
- 모든 서버가 동일한 부하를 처리하므로 균형잡힌 분배가 이루어진다.
단점
- 서버의 성능이나 현재 부하를 고려하지 않기 때문에 효율성이 떨어질 수 있다
2. IP Hash
- 클라이언트의 IP 주소를 해시하여 특정 서버로 유지한다.
- 같은 클라이언트는 항상 같은 서버에 연결된다.
- 세션 일관성을 유지하는 데 사용될 수 있다.
장점
- 동일한 클라이언트는 항상 동일한 서버로 연결되어 세션 일관성을 유지할 수 있다.
단점
- 서버가 추가 또는 제거될 때 IP Hash가 변경되어 모든 클라이언트의 연결이 다시 분배될 수 있다.
3. Weighted Round Robin (가중 라운드 로빈)
- 서버에 가중치를 할당하여 트래픽을 분배한다.
- 높은 가중치를 갖는 서버는 더 많은 요청을 받는다.
장점
- 서버에 부하를 더 효과적으로 분배할 수 있다.
- 서버 간의 성능 차이를 고려하여 가중치를 조절할 수 있다.
단점
- 가중치를 정확하게 설정해야 하며, 서버의 동적인 변화에 적응하기 어려울 수 있다.
동적 로드 밸런싱
동적 로드 밸런싱 알고리즘은 트래픽을 배포하기 전에 서버의 현재 상태를 검사한다
1. Least Connections (최소 연결)
- 현재 연결 수가 가장 적은 서버에 트래픽을 전달한다.
- 서버의 현재 부하를 고려하여 효과적으로 분산한다.
- 각 서버에 할당된 가중치가 다를 수 있다.
장점
- 현재 연결 수가 적은 서버에 효과적으로 트래픽을 분배한다.
단점
- 서버의 실질적인 부하를 고려하지 않으므로 모든 서버가 동일한 성능을 가정한다.
2. Weighted Least Connections (가중 최소 연결):
- 서버에 가중치를 할당하고, 현재 연결 수를 고려하여 트래픽을 분산한다.
- 현재 부하를 고려하여 가중치가 부여된다.
장점
- 서버에 가중치를 부여하여 효과적으로 부하를 분배한다.
- 가중치를 통해 서버의 상대적인 성능을 반영할 수 있다.
단점
- 가중치를 올바르게 설정해야 하며, 서버의 동적인 변화에 적응하기 어려울 수 있다.
3. Least Response Time (최소 응답 시간)
- 서버가 가장 빠르게 응답하는 서버로 트래픽을 전송한다.
- 서버의 응답 시간을 측정하여 가장 빠른 서버를 선택한다.
장점
- 응답 시간이 가장 빠른 서버에 효과적으로 트래픽을 분배한다.
단점
- 서버의 응답 시간이 변동이 큰 경우 정확한 로드 밸런싱이 어려울 수 있다.
4. 리소스 기반 방법
- 리소스 기반 방법에서 로드 밸런서는 현재 서버 부하를 분석하여 트래픽을 배포한다.
- 에이전트라고 하는 특수 소프트웨어는 각 서버에서 실행되며 컴퓨팅 용량 및 메모리와 같은 서버 리소스의 사용량을 계산한다.
- 그런 다음 로드 밸런서는 해당 서버에 트래픽을 배포하기 전에 에이전트에 충분한 여유 리소스가 있는지 확인한다.
장점
- 서버의 현재 상태와 부하를 고려하여 트래픽을 분배한다.
- 가용 리소스에 따라 효율적으로 로드 밸런싱이 이루어진다.
단점
- 추가적인 리소스를 사용하여 서버 상태를 모니터링해야 하며, 구현이 복잡할 수 있다.
5. Random (랜덤)
- 요청을 무작위로 선택된 서버에 분배한다.
- 간단하며 모든 서버에 대한 부하를 균등하게 분산한다.
장점
- 단순하며 구현이 간단하다.
- 모든 서버에 대한 부하를 균등하게 분산할 수 있다.
단점
- 서버의 성능이나 현재 부하를 고려하지 않기 때문에 효율성이 떨어질 수 있다.
출처
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.