네트워크
로드 밸런싱(Load balancing)이란?
tioon
2023. 7. 20. 22:36
로드 밸런싱이란?
-컴퓨터 네트워크나 서버 환경에서 트래픽을 고르게 분산시키는 기술을 말합니다. 서버에 들어오는 다수의 요청을 여러대의 서버로 분산하여 부하를 균등하게 분배함으로써 시스템의 성능을 향상시키고 가용성을 향상시키는 기술입니다.
이는 로드 밸런서라는 장치로 구현될 수 있으며, 다양한 방법으로 구성이 됩니다.
로드밸런싱 특징
- 부하 분산
-로드 밸런스는 여러대의 서버를 동시에 관리하고 클라이언트로 부터 들어오는 요청을 서버들에게 균등하게 분배합니다.이를 활용해 서버의 부하를 줄일 수 있으며 서버 처리 속도를 높일 수 있습니다. - 가용성 증가
-로드 밸런스를 통해 여러개의 서버를 관리를 함으로써, 한대의 서버에 장애가 발생하더라고 다른서버들이 계속해서 작동합니다. 따라서, 시스템의 가용성을 향상시키고 서비스 중단 시간을 최소화합니다. - 시스템 확장 용이
-클라이언트 요청 증가로 서버 부하가 증가할 경우, 새로운 서버를 추가하고 로드 밸런싱을 구성함으로써 시스템의 확장이 용이합니다. - 트래픽 관리
-로드밸런스가 관리하는 서버들의 상태를 모니터링하고 트래픽 패턴을 분석하여 효율적으로 서버들에게 분배합니다. 이를 통해 트래픽 폭주 시에 서비스를 안정적으로 유지할 수 있습니다.
L4 로드 밸런스
-L4 로드밸런싱은 네트워크 계층(Transport Layer)인 4계층에서 동작합니다. 주로 ip주소, 포트 번호정보를 바탕으로 단순한 로드밸런스 내부에서 트래픽 분산을 시키며,내부의 데이터는 확인하지않고, ip주소와 포트번호만 확인합니다.
단순하기에 빠른 속도를 가졌지만, 세밀한 제어가 불가능합니다.
L7 로드 밸런스
-L7로드 밸런싱은 애플리케이션 계층(Application Layer)인 7계층에서 동작합니다.해당 트래픽의 세부 정보와 더불어 HTTP 헤더, 쿠기, URL등의 정보를 확인하여 이를 기반으로 트래픽을 분산시킵니다.
이를 활용해 클라이언트의 요청 정보를 기반으로 좀더 정밀하게 서버 분산을 할 수 있습니다.
L4 로드밸런스에 비해 좀더 트래픽을 자세히 분석하여 사용자에 맞게 서버를 분산할 수 있지만, 트래픽 내용을 분석하므로 속도가 비교적 느릴 수 있습니다.
L4 로드 밸런스 VS L7 로드 밸런스
L4 로드 밸런스 | L7 로드 밸런스 | |
계층 | 4계층(Transport Layer) | 7계층(Application Layer) |
분산 기준 | IP 주소, 포트번호 | IP주소, 포트번호, HTTP 헤더, 쿠키,URI |
기능 | 패킷 내부 데이터는 확인 X 패킷의 헤더 정보만 확인하여 트래픽 분산 |
패킷 내부 데이터 확인 내부 데이터를 기반으로 좀더 세밀한 트래픽 분산 |
성능 | 빠른 처리속도 | 비교적 느림 |
가격 | 낮은가격 | 높은가격 |
로드 밸런싱 알고리즘
-로드 밸런스 그룹에 들어오는 트래픽을 어떻게 각 서버에게 분산 시킬지 정하는 방법입니다. 서버의 상태, 성능 트래픽 특성등을 고려해 로드밸런싱 알고리즘을 달리 사용하여 최적화 합니다.
- 라운드 로빈(Round Robin)
-순환 방식을 사용함
-트래픽이 들어오는대로 서버들에게 순서대로 분배함
-모든 서버가 동일한 성능일 때 적절한 알고리즘임 - 가중치 라운드 로빈(Weighted Round Robin)
-각 서버에 가중치를 할당함
-가중치가 높은 서버에 더많은 트래픽을 분배함
-성능이 높은 서버가 가중치가 제일 높음 - 최소 연결(Least Connections)
-각 서버의 연결수를 실시간으로 측정함
-현재 연결수가 가장 적은 서버에게 트래픽을 분배 - 최소 응답시간(Least Response Time)
-응답 시간이 가장 짧은 서버에게 트래픽을 분배
-사용자의 응답 시간을 최소화 할 수 있음 - IP 해시(IP Hash)
-트래픽 IP주소의 해시 값을 구함
-결과 해시값을 기반으로 트래픽을 분배
-같은 IP주소일땐 항상 같은 서버에 연결됨