Load-balancer

android_z·2020년 11월 16일
0
post-thumbnail

Scale Up

서버 성능 향상

Scale Out

여러개의 서버

Load balancer

로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭한다.

Scale Out의 방식으로 서버를 증설하기로 결정했다면 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 반드시 필요하다.

클라이언트와 서버풀(Server Pool, 분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 한다.

Load balancer 종류
L7 Load balancer => ADC (Application Delivery Controller)

Load balancer 종류

Load balancer Algorithm

  • Round Robin(순차방식)

    요청을 순서대로 각 서버에 균등하게 분배하는 방식
    서버 커넥션 수나 응답시간에 상관없이 모든 서버를 동일하게 처리, 다른 알고리즘에 비해서 가장 빠르다

  • IP 해시 방식(IP Hash Method)

    클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식, 사용자의 IP를 해싱해(Hashing, 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것, 또는 그러한 함수) 로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장한다.

  • Least Connection(최소접속방식)

    서버에 연결되어 있는 Connection 개수만 갖고 단순비교하여 가장 적은곳에 연결

  • Weighted Least Connections(가중치 최소접속방식)

    서버에 부여된 Weight 값을 기반으로 Connection 수의 개수와 같이 고려하여 할당

  • Fastest Response Time(응답시간방식)

    가장 빨리 응답하는 서버에 이용자 요구를 연결하는 방법. 응답시간은 각 서버가 패킷 형태의 요구를 송수신하는데 걸리는 시간을 측정한 것이다.

  • Adaptive(최소대기방식)

    Open또는 Pending(계류중인) 커넥션을 적게 가지고 있는 서버로 네트웍 커넥션 방향을 지정한다. Pending 커넥션은 Full TCP Handshake를 완성하지 않은 것으로, 이것은 초당 클라이언트 Thread의 수가 증가할 때 더욱 잘 수행된다.

https://tech.kakao.com/2014/05/30/l4/

https://peemangit.tistory.com/197

profile
개발자

0개의 댓글