네트워크

로드 밸런싱(Load Balancing)에 대해 알아보겠습니다.

forward error correction Circle 2024. 8. 27. 08:19
반응형

Ⅰ. 로드 밸런싱(Load Balancing)이란?

 여러 서버에 걸쳐 네트워크 또는 애플리케이션 트래픽을 분산시키는 기술입니다. 로드 밸런서는 서버의 성능을 최적화하고 가용성을 높이며, 장애에 대비하는 역할을 합니다. 이를 통해 특정 서버에 과부하가 걸리는 것을 방지하고, 서비스의 안정성을 높이는 데 기여합니다.

Ⅱ. 로드 밸런싱의 특징

ⅰ. 고가용성(High Availability)

  트래픽을 여러 서버에 분산하여 특정 서버가 다운되더라도 다른 서버가 그 역할을 대신 수행할 수 있도록 하여 서비스의 가용성을 보장합니다.
ⅱ. 확장성(Scalability)

 트래픽이 증가할 때, 더 많은 서버를 추가하여 로드 밸런서가 이를 자동으로 인식하고 부하를 분산시킬 수 있습니다.
ⅲ. 효율성(Efficiency)

 서버 간의 부하를 균등하게 분산함으로써 자원을 최적화하고, 응답 시간을 줄이며, 성능을 향상시킵니다.
ⅳ. 유연성(Flexibility)

 다양한 분산 알고리즘을 지원하여, 트래픽 유형이나 애플리케이션 요구 사항에 따라 최적의 방법으로 부하를 분산할 수 있습니다.

Ⅲ. 로드 밸런싱의 원리

 클라이언트 요청을 여러 서버로 분산시켜, 각 서버에 가해지는 부하를 줄이고 트래픽을 효율적으로 관리하는 것을 목표로 합니다. 로드 밸런서는 클라이언트로부터 요청을 받아 가장 적합한 서버로 요청을 전달합니다. 이를 통해 각 서버의 성능과 안정성을 유지하며, 서비스의 응답 시간을 최소화합니다.

Ⅳ. 로드 밸런서 구현 방식

ⅰ. 소프트웨어 기반 로드 밸런서

 HAProxy, Nginx, Traefik과 같은 소프트웨어를 사용하여 로드 밸런싱을 수행합니다.
ⅱ. 하드웨어 기반 로드 밸런서

 F5 Networks, Cisco와 같은 회사에서 제공하는 전용 하드웨어 장치를 사용하여 로드 밸런싱을 수행합니다.

Ⅴ. 로드 밸런싱 방법

로드 밸런서는 다양한 알고리즘을 사용하여 트래픽을 분산할 수 있습니다. 
ⅰ. 라운드 로빈(Round Robin)

라운드 로빈(Round Robin)
특징  가장 단순한 로드 밸런싱 방법으로, 서버 리스트를 순환하며 각 서버에 요청을 차례대로 분산시킵니다.
원리 서버 3개(A, B, C)가 있을 때, 첫 번째 요청은 A로, 두 번째 요청은 B로, 세 번째 요청은 C로 전송되며, 그 다음 요청은 다시 A로 돌아갑니다.
장점 구현이 간단하며, 균등한 부하 분산이 가능합니다.
단점 서버의 성능 차이를 고려하지 않기 때문에 모든 서버에 동일한 부하가 가해지며, 성능이 낮은 서버가 과부하에 걸릴 수 있습니다.


ⅱ. 가중치 라운드 로빈(Weighted Round Robin)

가중치 라운드 로빈(Weighted Round Robin)
특징  각 서버에 가중치를 부여하여, 성능이 좋은 서버에 더 많은 요청이 분산되도록 합니다.
원리 서버 A의 가중치가 2, B가 1, C가 1이라면, A 서버는 B나 C보다 2배 더 많은 요청을 받게 됩니다.
장점 서버의 성능에 따라 부하를 균형 있게 분산할 수 있습니다.
단점 가중치를 설정하는 과정이 복잡할 수 있으며, 동적으로 서버의 성능이 변하는 경우 이를 반영하기 어렵습니다.


ⅲ. 해시 기반 로드 밸런싱(Hash-Based Load Balancing)

해시 기반 로드 밸런싱(Hash-Based Load Balancing)
특징  클라이언트의 IP 주소, 요청 URL, 또는 세션 ID 등 특정 값을 해시 함수로 변환하여 서버를 선택합니다.
원리 클라이언트 IP 주소를 해시하여 특정 서버로 매핑하는 방식입니다. 같은 클라이언트는 항상 동일한 서버로 연결되기 때문에 세션 유지를 쉽게 할 수 있습니다.
장점 세션 일관성을 유지하기 쉽고, 특정 서버에 고정된 트래픽 분산이 가능합니다.
단점 서버 추가 또는 삭제 시 해시 값이 변경되어 세션 유실이 발생할 수 있습니다.


ⅳ. 최소 연결(Least Connections)

최소 연결(Least Connections)
특징  현재 연결된 클라이언트 수가 가장 적은 서버로 요청을 보내는 방식입니다.
원리 각 서버의 현재 연결 수를 모니터링하고, 가장 적은 연결을 가진 서버에 새로운 요청을 전달합니다.
장점 현재 서버의 부하 상태를 고려하여, 실시간으로 트래픽을 분산할 수 있습니다.
단점 연결 수만 고려하기 때문에, 요청의 복잡도나 처리 시간을 반영하지 못할 수 있습니다.


ⅴ. 최소 응답 시간(Least Response Time)

최소 응답 시간(Least Response Time)
특징  가장 빠른 응답 시간을 보이는 서버로 요청을 보내는 방식입니다.
원리 각 서버의 응답 시간을 모니터링하고, 가장 빠른 서버에 새로운 요청을 전달합니다.
장점 실시간 서버 성능을 반영하여, 가장 빠른 응답을 보장할 수 있습니다.
단점 서버 성능 측정에 추가적인 오버헤드가 발생할 수 있습니다.


ⅵ. IP 해시(IP Hashing)

최소 응답 시간(Least Response Time)
특징  클라이언트의 IP 주소를 해시 함수에 입력하여 특정 서버에 연결되도록 하는 방식입니다.
원리 클라이언트 IP를 해시하여 해당 클라이언트의 요청을 항상 동일한 서버로 전달합니다.
장점 특정 클라이언트가 동일한 서버로만 연결되기 때문에, 세션 유지에 유리합니다.
단점 해시 충돌이나 특정 서버로의 트래픽 집중이 발생할 수 있습니다.

 

반응형