로드밸런서

백현균·2022년 2월 28일
0

- 로드밸런서란?

 * 서버에 가해지는 부하를 분산해주는 장치 혹은 기술을 통칭
 * 클라이언트와 서버풀(서버들의 그룹)사이에 위치하며, 한 대의 서버가 부하가 집중되지 않도록 트래픽을 관리하여 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 하기 위함

- 주요기능

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

- 알고리즘 방식

* 라운드로빈 방식
  - 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
  - 클라이언트의 요청을 분배하므로, 여러 대의 서버가 동일한 스펙을 갖고 있으며, 서버와의 연결이 오래 지속되지 않는 경우에 적합
* 기중 라운드로빈 방식
  - 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분하는 방식으로 서버의 트래픽 처리 능력이 상이한 경우 사용되는 부하 분산하는 방식
  - ex) A서버가 5의 가중치를 갖고, B서버가 2가중치를 갖는 경우 로드 밸런서는 라운드로빈 방식으로 A서버에 5개, B서버에2개의 클라이언트 요청을 전달
* IP 해시 방식
  - 클라이언트의 IP주소를 특정 서버로 매핑하여 요청을 처리하는 방식
  - 사용자의 IP를 해싱하여 로드를 분배하기 떄문에 사용자가 항상 동일한 서버로 연결되는 것을 보장
    * 해싱: 임의의 길이를 가진 데이터를 고정된 길이의 데이터로 매핑하는 것
* 최소 연결 방식
  - 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 클라이언트 요청을 배분하는 방식
  - 연결이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않는 경우 적힙
* 최소 리스폰 타임
  - 서버의 현재 연결상태와 응답시간을 모두 고려하여 클라이언트 요청을 배분하는 방식
  - 가장 적은 연결상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 배분
  

- 종류

* L4 로드밸런서
  - IP, TCP, UDP 등의 정보를 바탕으로 분산하는 방법
  - IP주소, 포트번호, MAC주소, 전송 프로토콜에 따라 트래픽을 나누는 것이 가능
    * IP주소만을 기준으로 나누는것은 L3 로드 밸런서
* L7 로드밸런서
  - 클라이언트의 어플리케이션 계층(HTTP, FTP 등)에서 분산
  - 사용자 요청정보의 HTTP헤더, 쿠키 등을 기준으로 특정 서버에 분산하는 것이 가능
L4로드밸런서L7로드밸런서
네트워크 계층전송 계층(layer4)응용계층(layer7)
특징IP/TCP/UDP 포트 정보를 바탕으로 분산IP/TCP/UDP정보는 물론 HTTP의 URI, FTP의 파일명, 쿠키정보 등을 바탕으로 분산
장점데이터 내부를 보지않고, 패킷 레벨에서만 분산하기 때문에 속도가 빠르고, 효율이 높음 데이터의 내용을 복호화할 필요가없어 안전함 L7로드밸런서보다 비용이 저렴L4보다 상위계층에서 분산하기 때문에 더 섬세한 라우팅이 가능 캐싱기능을 제공 비정상적인 트래픽을 사전에 필터링할 수 있어 서비스의 안정성이 높음
단점패킷의 내용을 살펴볼 수 없기때문에 섬세한 라우팅이 불가능하며, 사용자의 IP가 수시로 바뀌는 경우라면 연속적인 서비스를 제공하기 어려움패킷의 내용을 복호화해야 하기 때문에 높은 비용을 지불해야됨 클라이언트가 로도밸런서와 인증서를 공유해야하기 때문에 공격자가 로드밸런서를 통해서 클라이언트 데이터에 접근할 위험성이 존재

이미지 및 표 참조: https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903

0개의 댓글