[Network] 로드밸런싱이란 ?

2022. 12. 27. 16:24

로드 밸런싱 Load balancing 

 

로드밸런싱(부하 분산) 은 컴퓨터 네트워크 기술의 일종으로 중앙처리장치 또는 저장장치와 같은 컴퓨터 자원들에게 작업을 분산하는 것을 의미한다. 

 

서버에 가해지는 부하(로드) 를 분산(밸런싱) 해주는 기술이다.

사업의 규모가 확장되고 클라이언트의 수가 증가하게 되면 기존 서버로 정상적인 서비스가 불가하게 되는 경우가 발생하는데, 이러한 증가 트래픽에 대처할 수 있는 방법은

 

1. Scale up: 서버자체의 성능을 높이는 것.

2. Scale out: 여러대의 서버를 두는 것.

 

이 있다. Scale out 방식은 여러대의 서버로 트래픽을 균등하게 분산하는 로드 밸런싱이 반드시 필요하다. 

 

 

주요 기능

  • NAT(Network Address Translation)
    • 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기
  • Tunneling
    • 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념
    • 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다.
  • DSR(Dynamic Source Routing protocol)
    • 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념

 

Load Balancer 종류 

 

L2

  • Mac주소를 바탕으로 Load Balancing

L3

  • IP주소를 바탕으로 Load Balancing

L4

  • Transport Layer(IP와 Port) Level에서 Load Balancing
  • TCP, UDP

L7

  • Application Layer (사용자 Request) Level에서 Load Balancing
  • Http, Https, ftp 

 

* Load Balancer는 어떤 기준으로 Server를 선택하나 ?

 

Round Robin

- 단순히 round robin으로 분산  

 

Least Connection

- 연결개수가 가장 적은 서버를 선택.

- 트래픽으로 인해 세션이 길어지는 경우 권장

 

Source

- 사용자의 IP를 hashing하여 분배하는 방식

- 사용자는 항상 같은 서버로 연결되는 것을 보장 

 

Load Balancer 장애대비

- Load balancer를 이중화 하여 장애를 대비할 수 있다. 

+ Recent posts