load balancer

newhyork·2022년 4월 23일
0

load balancer


  • 서버에 가해지는 부하(작업)를 분산시킨다.
    즉, 서버’들’에게 클라이언트로부터의 요청을 나눠준다.
  • Nginx 와 같은 WS을 통한 reverse proxying 등의 소프트웨어 load balancing과
    하드웨어 load balancing이 있다.

L4 load balancing


  • 요청 받은 데이터의 IP주소&포트번호에 대한 정보를 통해,
    해당 포트번호를 담당하고 있는 서버들 중 하나에 할당한다.
  • L4(transport layer)에서 load balancing이 이루어지는 것으로, L4 스위치를 통한 것이다.
    (L2에서의 스위치와는 다른 개념이다.)
  • L4 스위치에서 virtual 서버를 통해 real 서버에 트래픽을 나눠 분담하도록 한다.
    즉, 클라이언트는 서버에게 직접이 아닌 외부망인 L4 스위치에 요청을 보내게 되고,
    L4 스위치가 내부망에 있는 서버들에게 분산해서 요청을 전달하는 것이다.
  • L4 스위치는 virtual IP주소를 가지고 있고, 여러 port(80, 443 등)를 가질 수 있는데,
    사용자의 어떤(http, https 등) 요청이냐에 따라 담당하는 그룹으로 나눠져 있고,
    그룹 내에서는 여러 서버들로 분산 되어 전달된다.
    • 분산은 알고리즘 및 서버의 부하 상태에 따라 이루어진다.
    • real 서버는 192.168.1.XXX 등의 형태로 된 real IP주소 및 port가 할당된다.
      • 각 서버가 여러 개의 port를 담당하는 형태도 가능하다.
      • real 서버는 port마다 서로 다른 virtual IP주소를 할당 시켜 설정할 수도 있다.L4 스위치도 여러 개의 virtual IP주소, 즉 virtual 서버를 가질 수 있다는 말이다.
      • real 서버의 port는 virtual IP주소의 port와 반드시 일치해야 하는그런 것은 아니고, 매핑하기 나름이다.

L7 load balancing


  • 요청 받은 데이터의 HTTP헤더(URL)에 대한 정보를 통해,
    해당 URL을 담당하고 있는 서버들 중 하나에 할당한다.
  • L7(application layer)에서 load balancing이 이루어지는 것으로,
    proxy로써 ADC(Application Delivery Controller)를 통한 것이다.

0개의 댓글