본문 바로가기

카테고리 없음

[Server] 로드 밸런서(Load Balancer)

반응형

 로드 밸런서(Load Balancer)란 ?

서버에 가해지는 부하(Load)를 분산해주는 장치 또는 기술. 

 

그렇다면 프로젝트를 수행함에 있어서 항상 로드밸런서를 해줘야 하는 것일까 ? 

대답은 '그렇지 않다.' 이다. 왜냐하면 로드밸런서 자체가 서버에 가해지는 부하를 분산해주는 기술이기 때문에 부하가 적거나 부하가 적은 초기 프로젝트인 경우 또는 프로토타입에서도 필요가 없을 것이다.

 

 

 트래픽에 대처 하는 방법

1. Scale-Up 

서버의 규모(Scale)을 키운다(UP).라고 생각하면 이해가 편하다. 예를 들어 처음에 CPU가 i5가 하나를 썼는데 스케일업을 하면 i7(i5이상)로 쓴다. 

2. Scale-Out

스케일 업과 반대로 성능을 올리는 것이 아닌 갯수를 늘리는 방식이다. 처음에 i5 1개를 썼다고 가정하고 스케일아웃을 하면 i5 2개(2개이상)를 쓴다.

 

 

 로드 밸런싱 알고리즘

  • 라운드 로빈 (Round Robin)
  • 가중 라운드 로빈 (Weighted Round Robin)
  • IP Hash
  • 최소 연결 (Least Connection)
  • Least Response Time

간단하게 설명하자면 라운드로빈은 들어온 순서대로 처리하는 방식, 

가중 라운드 로빈은 가중치가 높은 순서대로 처리하는 방식, ip hash는 ip주소를 특정 클라이언트에 매핑하여 요청을 처리하는 방식,

최소연결은 가장 적은 연결 순서대로 처리하는 방식, Least Response Time은 서버의 현재 연결 상태와 respone시간을 고려하여 처리하는 방식이다.

 

 

로드 밸런싱의 종류

 

1. L2

Mac 주소를 바탕으로 로드 밸런싱

 

2. L3

IP주소를 바탕으로 로드밸런싱

 

3. L4

IP주소나 포트 번호, Mac주소, 전송프로토콜에 따라 트래픽을 나눔. IP,IPX(네트워크 계층), TCP, UDP(트랜스포트 계층)의 정보를 바탕으로 로드를 분산한다.

 

4. L7

HTTP, FTP, SMTP(애플리케이션 계층)에서 로드를 분산(TCP, UDP도 가능)

 

 

L4로드 밸런싱부터 Port정보로 로드를 분산하는 것이 가능하기 떄문에 가장 많이 쓰인다고 한다. 또한 한대의 서버에 각기 다른 포트 번호를 부여해서 다수의 서버 프로그램을 운영하는 경우라면 최소 L4로드 밸런싱이상을 사용해야 한다.

 

 

 

 

끝!


 

 

현재 진행중인 프로젝트가 서버구성을 잘못한거 같아 로드밸런서에 대해 알아보고 활용해볼 예정입니다 ㅎ..ㅎ

실제로 적용을 못해봐서 정리 안된 글들 읽어 주셔서 감사합니다. 

 

모두들 열코하세여 ~!~! 혁이는 코딩중 ~~

반응형