2014. 12. 17. 13:43

DNS Round Robin vs Load Balancer


- DNS Round Robin은 웹 서버마다 공인 IP를 할당하여 운영되는 반면에 Load Balancer는 하나의 IP주소에 대해 요청을 복수의 서버로 분산할 수 있다. DNS Round Robin은 별도의 Failover에 대한 처리가 필요하지만 Load Balancer는 내장된 기능으로 처리된다.


Load Balancer


- 동작

: 로드밸런서는 서비스용 공인IP를 가진 가상적인 서버로서 동작한다. 클라이언트로부터 전송되어 온 요청을 Real Server로 중계함으로써 마치 자신이 AP 서버인 것처럼 동작한다.


- 기능

: 로드밸런서는 여러 대의 Real Server중에 한 대를 선택해서 처리를 중계한다. 이 때, 헬스체크가 실패하는 서버는 선택되지 않는다. 따라서 서버 한 대가 정지해 있더라도 정상적으로 가동하고 있는 서버가 있는 한 서비스가 정지하지 않는다.


- 종류

case 1) L4 switch (Layer 4 - 트랜스포트 계층)

: IP 주소나 PORT에 따라 분산대상 서버를 지정한다.

: Linux의 IP Virtual Server(IPVS) 모듈을 이용해서 구성 가능.


L4 구성안 1) Network Address Translation(NAT)

: L4는 요청이 들어오면 수신지 주소(L4 IP)를 선택된 리얼서버 주소로 변경하여 요청을 전송 후 응답이 도착하면 송신지(리얼서버) 주소를 L4 IP로 되돌려서 클라이언트로 전송한다.


L4 구성안 2) Direct Server Return(DSR)

: L4는 요청이 들어오면 선택된 리얼서버로 패킷을 그대로 전송하고 리얼서버는 요청을 처리 후 클라이언트로 Direct로 응답을 전송한다.

: 로드발랜서의 병목이 되는 것을 걱정하거나 높은 트래픽에 견디는 부하분산환경이 필요할 경우 사용한다.


case 2) L7 switch (Layer 7 - 어플리케이션 계층)

: Layer 4 ~ Layer 7까지 패킷을 분석하여 분산대상 서버를 지정한다.

: Reverse Proxy를 이용해서 구성 가능.


Load Balancer - Scheduling Algorithm


- Round-Robin(rr)

: Real Server를 차례로 선택한다. 모든 서버에 균등하게 처리가 분산된다.


- Weighted Round-Robin(wrr)

: 가중치를 가미해서 Round-Robin이 수행된다. 가중치가 높은 서버일수록 빈번하게 선택되므로 처리


- Least-Connection(lc)

: 접속수가 가장 적은 서버를 선택한다.


- Weighted Least-Connection(wlc)

: 가중치를 가미해서 Least-Connection을 수행한다. 고성능 장비에 가중치를 크게하면 효율이 좋다.


- Shorted Expected Delay(sed)

: 가장 응답속도가 빠른 서버를 선택한다. 그렇다고 해도 서버에 패킷을 날려 응답시간을 계측하는 것은 아니다. 상태가 ESTABLISHED인 접속수가 가장 적은 서버를 선택하는 것일 뿐이다. wlc와 거의 동일하게 동작하지만 wlc에서는 ESTABLISHED 이외의 상태(TIME_WAIT, FIN_WAIT 등)인 접속수를 더한다는 점이 다르다.


- Never Queue(nq)

: Shorted Expected Delay와 동일한 알고리즘이지만 ESTABLISHED 접속수가 0인 서버를 최우선으로 선택한다.










'server/Infra' 카테고리의 다른 글

DNS Round Robin  (0) 2014.12.17
용어  (0) 2014.12.17
Posted by 짱가쟁이