로드밸런서의 개념

younk·2024년 1월 9일
0

인프라

목록 보기
1/1

로드밸런싱


로드 밸런서는 다중서버 환경에서 서버에 가해지는 부하를 분산시켜주는 장치 혹은 기술을 통칭한다. 클라이언트와 서버풀 사이에 위치하며, 한대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 한다.

로드밸런스 방법론(알고리즘)

로드밸런싱을 하는 방법은 여러가지가 있다.

라운드로빈

요청 순서에 따라 배정되는 방식이다. 순서대로 로드밸런싱되기 때문에, 같은 스펙의 서버를 구축했을 때 사용하기 좋다. 단 서버와의 연결이 오래 지속되는 경우에는 적합하지 않다. 서버와의 연결이 계속 이어지고 있는데 라운드로빈방식으로 트래픽을 나눠준다면 비대칭화과 될것이다.

가중 라운드로빈

서버의 스펙이 모두 다를때는 가중치를 설정하여 라운드로빈을 활용할 수 있다.
만약 A서버와 B서버 2대를 가지고 로드밸런싱을 할때, A서버가 B서버보다 스펙이 2배 좋다면, 가중치를 A서버 2, B서버 1로 설정하여 A서버에게 2배로 요청을 하게한다.

IP해시

클라이언트의 IP주소를 특정 서버로 요청하는 방식이다. 예를들어 해외 IP는 A서버로, 국내 IP는 B 서버로 연결을 요청한다. 때문에 같은 IP로 들어온다면 매번 같은 서버로 연결되는 것이 보장된다.

최소연결

요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 요청하는 방식이다. 자주 세션처리가 늦어지거나, 서버의 연결시간을 예측하기 어려워 트래픽 분배가 어려운 경우에 적합하다. 예를들어 채팅 서비스는 서버와의 연결을 끊을지 지속할지 결정하는 주체가 클라이언트이다. 이럴땐 최소연결 방식을 고려하는 것이 좋다.

최소 리스폰 타임

서버의 현재 응답시간을 고려하여 트래픽을 분배하는 방식이다. 최소 연결방식과 응답속도를 함께 고려하기 때문에, 가장 적은연결 + 빠른 응답속도의 서버에 우선적으로 연결시킨다.

L4 로드밸런싱과 L7 로드밸런싱

로드밸런스 역할을 할 수 있는 네트워크 계층은 OSI 4,7 계층이다.

L4 로드밸런서는 4계층의 정보(TCP/UDP 포트정보)를 바탕으로 로드를 분산한다.
데이터 안을 들여보지 않고 패킷레벨에서만 로드를 분산하기 때문에 속도가 빠르고 효율이 높다.
데이터의 내용을 복호화할 필요가 없기에 안전함.
L7보다 가격이 저렴하다.

L7 로드밸런서는 7계층 위에서 동작하기 때문에, IP, Port 외에도 Url, payload, http header, cookie 등의 내용을 기준으로 부하를 분산한다. 그래서 콘텐츠기반 스위칭이라고도 한다. 상위 계층에서 로드를 분산하기 때문에 훨씬 더 섬세한 라우팅이 가능하다. 캐싱기능이 제공된다. 특정한 패턴을 지닌 바이러스를 감지하거나, Dos/DDos와 같은 비정상적인 트래픽을 사전에 필터링할 수 있어 서비스 안정성이 높다.
단 패킷의 내용을 복호화 해야하기 때문에 비용이 높다. 클라이언트와 로드밸런서가 인증서를 공유해야하기 때문에, 공격자가 로드밸런서를 통해 클라이언트 데이터에 접근할 위험성이 존재한다.

참고
로드밸런서의 개념과 특징

0개의 댓글