본문 바로가기
INFRA/NW

[NW]로드밸런싱(Round Robin, hash)

by 근현대사 2023. 7. 20.
반응형

L4 로드 밸런싱은 네트워크 트래픽을 여러 대상 서버 또는 서비스로 균등하게 분산하는 기술입니다. OSI (Open Systems Interconnection) 모델의 4번째 계층인 전송 계층 (Transport Layer)에서 로드 밸런싱이 이루어집니다. 이로 인해 서비스의 가용성을 향상시키고 부하를 균형있게 분산하여 서버의 성능을 최적화할 수 있습니다.

일반적으로 로드 밸런서는 클라이언트와 서버 사이에 위치하여 클라이언트 요청을 받고 이를 여러 대상 서버로 전달합니다. 로드 밸런서는 다양한 방식으로 트래픽을 분산시킬 있습니다

 

라운드 로빈(Round Robin) 방식:

라운드 로빈 방식은 클라이언트 요청을 순서대로 서버 목록에 있는 서버들에게 번갈아가며 할당하는 방식입니다. 로드 밸런서는 첫 번째 클라이언트 요청에는 첫 번째 서버를 할당하고, 두 번째 클라이언트 요청에는 두 번째 서버를 할당하는 식으로 계속하여 트래픽을 분산시킵니다. 이 방식은 간단하고 구현하기 쉽습니다. 그러나 서버들의 성능이나 리소스가 동일하다고 가정할 때만 공평하게 작동합니다. 서버들 간의 성능 차이가 크면 효과적인 부하 분산을 보장하지 못할 수 있습니다.

 

가중치 기반 로드 밸런싱(Weighted Load Balancing):

가중치 기반 로드 밸런싱은 각 서버에 가중치를 할당하여 트래픽을 더 많이 분산시키거나 줄이는 방식입니다. 서버의 가중치는 해당 서버의 성능, 용량 또는 처리 능력에 따라 설정됩니다. 성능이 우수한 서버는 더 높은 가중치를 갖게 되어 더 많은 트래픽을 처리하게 됩니다. 예를 들어, 서버 A가 서버 B보다 빠른 응답 시간과 더 많은 리소스를 가지고 있다면, 서버 A에 더 높은 가중치를 할당하여 더 많은 클라이언트 요청을 전달할 수 있습니다.

 

최소 연결 방식 (Least Connections):

최소 연결 방식은 현재 연결된 클라이언트 수가 가장 적은 서버에게 새로운 요청을 할당하는 방식입니다. 로드 밸런서는 현재 연결된 클라이언트 수를 모니터링하고, 가장 적은 연결을 갖고 있는 서버에 요청을 보냅니다. 이를 통해 각 서버의 부하를 균등하게 분산할 수 있습니다. 그러나 클라이언트가 장시간 동안 연결을 유지하는 경우에는 불균형한 상태가 발생할 수 있으므로, 특정 상황에서는 다른 방식과 함께 사용하는 것이 좋습니다.

 

최소 응답 시간 (Least Response Time):

최소 응답 시간 로드 밸런싱은 서버의 응답 시간이 가장 짧은 서버에 요청을 할당하는 방식입니다. 로드 밸런서는 각 서버의 응답 시간을 모니터링하고, 가장 빠른 응답 시간을 갖고 있는 서버에 트래픽을 우선적으로 보냅니다. 이를 통해 가장 빠른 응답을 제공하는 서버에 트래픽을 집중시켜 성능을 최적화할 수 있습니다. 그러나 서버의 응답 시간을 측정하고 모니터링하는 추가적인 오버헤드가 발생할 수 있습니다.

 

IP 해시 방식 (IP Hash):

IP 해시 로드 밸런싱은 클라이언트의 IP 주소를 해시하여 고유한 값으로 변환한 뒤, 해당 값을 서버 목록의 인덱스로 사용하여 특정 클라이언트가 항상 동일한 서버로 연결되도록 합니다. 이 방식은 세션 유지가 필요한 경우에 유용합니다. 특정 클라이언트가 항상 동일한 서버에 연결되므로, 세션 데이터 유지가 간단하고 일관성을 유지하기 용이합니다. 그러나 클라이언트의 IP 주소가 바뀌면 다른 서버에 연결되기 때문에, 일부 클라이언트가 다른 서버로 리디렉션될 수 있습니다.

 

해시 임의의 길이의 데이터를 고정된 길이의 고유한 값으로 변환하는 함수입니다. 해시 함수를 사용하면 입력 데이터의 크기나 형태에 상관없이 항상 고정된 길이의 해시 값을 얻을 있습니다.

해시 함수에는 MD5, SHA-1, SHA-256, SHA-3 등이 있으며, 안전한 보안 요구 사항을 충족하기 위해 보다 강력한 해시 함수가 권장되고 있습니다. 해시 함수는 데이터 무결성 검사, 암호화, 디지털 서명, 데이터베이스 검색 다양한 분야에서 중요한 역할을 수행합니다.

 

지역성 기반 로드 밸런싱 (Geo-Location Load Balancing):

지역성 기반 로드 밸런싱은 클라이언트의 지리적 위치에 따라 가장 가까운 서버에 요청을 할당하여 지연 시간을 최소화하는 방식입니다. 로드 밸런서는 클라이언트의 IP 주소 또는 기타 지역 정보를 기반으로 가장 가까운 서버를 식별하고, 해당 서버에 트래픽을 보냅니다. 이를 통해 지역적으로 가까운 서버를 사용하여 트래픽을 처리하므로 성능 향상을 기대할 수 있습니다. 글로벌 서비스에서 전 세계 사용자에게 더 나은 성능을 제공하는 데 도움이 됩니다.

 

동적 로드 밸런싱:

동적 로드 밸런싱은 트래픽 또는 서버의 상태에 따라 로드 밸런싱 알고리즘을 동적으로 조정하는 방식입니다. 로드 밸런서는 서버의 상태 변화를 지속적으로 모니터링하고, 부하가 서버에는 적은 트래픽을 보내고, 부하가 낮은 서버에는 많은 트래픽을 보내는 적응적으로 트래픽을 분산합니다. 이를 통해 서비스의 부하에 따라 적절하게 대응하여 성능과 가용성을 유지할 있습니다. 동적 로드 밸런싱은 서비스가 급격한 변화 또는 트래픽 증가 등과 같은 상황에서 특히 유용합니다.

반응형

'INFRA > NW' 카테고리의 다른 글

[NW]프로토콜에 대하여  (0) 2023.07.04
[NW]OSI 7 계층  (0) 2023.06.24
RX/TX 란  (0) 2022.04.17