[CS] 26) 로드 밸런싱

songh·2024년 3월 10일
0

CS지식

목록 보기
27/35
post-thumbnail

로드 밸런싱과 로드 밸런서

로드밸런싱은 처리해야할 업무나 요청을 중앙처리장치나 저장장치 같은 컴퓨터자원에 작업을 분산하는 것을 의미한다. 클라이언트 요청을 일관성있게 응답하기 이해 외부로부터 오는 요청을 서버에 적절히 배분해 요청을 처리하도록 한다. 이렇게 배분해주는 행위를 로드밸런싱이라고 볼 수 있다. 다수의 서버가 작업을 나누어 처리하므로 지연없이 작업을 처리하고 속도를 낼 수 있다. 서버는 외부로부터 직접 요청을 받는 것이 아니라 로드밸런서가 받아서 서버에 적절히 나누어 준다.

Scale-up과 Scale-out

서버는 하나인데, 많은 사람들이 동시에 접속하는 경우, 부하를 감당하지 못할 가능성이 높다. 이 경우 장비를 업그레이드하는 Scale-up 하는 방식과 Scale-out하는 방식 중 하나로 해결한다. Scale-up은 서버 자체의 성능을 확장하는 것으로 문제없지만, Scale-out은 기존서버와 동일하거나 더 낮은 서버를 두 대이상 증설하는 것을 의미한다. Scale-out 방식으로 서버를 증설하기로 했다면, 여러 대의 서버로 트래픽을 균등하게 분산시키는 로드밸런싱이 반드시 필요하다.

만약 로드 밸런싱없이 Scale-out방식을 사용한다면,
100명의 사용자가 2대 서버에 접속한다고 했을때 99명의 사용자가 서버1에 접속하고, 1명의 사용자가 서버2에 접속하는 이슈가 발생할 수 있다. 이를 방지하기 위해 서버에 가해지는 부하를 적절히 분산시키는 작업인 로드밸런싱이 필요하다.

로드밸런서의 종류

OSI 7계층을 기준으로 어떻게 부하를 분산시키는지에 따라 종류를 나눈다. L1~L7까지 다양한 계층이 존재하는데, 상위계층에서 사용하는 장비는 하위계층의 기능을 모두 가지고 있고 상위계층으로 갈수록 섬세한 로드밸런싱이 가능한 만큼 가격도 비싸진다. 이중 L4, L7 로드밸런서를 가장 많이 사용한다. 한대 서버에서 다수의 서버 프로그램을 운영하는 경우, 최소 L4이상을 사용해야한다고 하니 L4, L7 두 로드밸런서에 대해 알아본다.

L4로드밸런서

L4계층에서 동작하고, 네트워크 계층이나 전송계층 정보를 바탕으로 로드밸런싱한다. IP주소, 포트번호, MAC주소, 전송 프로토콜에 따라 트래픽을 나눌 수 있다.

L7 로드밸런서

애플리케이션에서 로드밸런싱하므로 HTTP헤더, 쿠키 같은 사용자 요청을 기준으로 보다 세분화해서 서버에 전달할 수 있다. 특정 패턴을 지닌 바이러스를 감지하고 비정상적인 트래픽을 필터링할 수 있어서 네트워크 보안분야에서도 활용하고 있다.

로드밸런싱 방법

서버에 부하를 고르게 분산하는 것에도 여러 방법이 있다.

L4 로드밸런싱

1) 라운드 로빈

기본 로드밸런싱 설정이고 서버에 들어온 요청순으로 배정한다. 여러 대의 서버가 동일 스펙을 가지고 있고 서버연결(세션)이 오래 지속되지 않는 경우 사용한다. 서버를 순회하면서 서비스한다. 예를 들어 A,B,C 3개의 서버가 있다면, A->B->C->A 순으로 순회한다.

2) 최소 연결방식

요청이 들어온 시점에서 연결개수가 가장 적은 서버에 우선적으로 배분한다. 트래픽으로 세션이 자주 길어지는 경우 사용한다. 로드밸런싱 방법 중 가장 많이 사용하는 방법이다.

3) 가장 빠른 응답 시간

응답속도가 가장 빠른 서버에 우선적으로 배분된다. 각 서버들이 가용가능한 리소스와 성능. 처리중인 데이터가 다른 경우 적합한 방식이다.

4) 가중치 방식

라운드로빈 방식으로 분배하되 가중치가 높은 서버일 수록 더 많은 일을 처리하게 된다. 여러 서버가 같은 사양이 아니고 특정 서버 스펙이 월등히 좋다면 해당 서버의 가중치를 높게 줘서 처리량을 늘릴 수 있다.

5) 해시기반 스케줄링

사용자 IP를 해싱해 그 결과에 따라 서버로 요청을 분배하므로 특정 클라이언트는 특정 서버로만 할당하는 방식이다.

L7 로드밸런싱

1) URL 스위칭방식

URL 주소를 확인해 설정에 맞는 서버로 부하를 분산하는 방식이다. 별도의 스토리지에 있는 객체 데이터로 바로 연결되도록 구성할 수 있다.

2) 컨텍스트 스위칭 방식

클라이언트가 요청한 리소스에 따라 특정 서버로 연결할 수 있다.

3) 쿠키 지속성방식

쿠키 정보를 바탕으로 클라이언트가 연결했던 서버에 계속 할당해주는 방식이다. HTTP header 쿠키값 설정으로 스위칭할 서버를 결정한다.

로드밸런싱 단점과 해결방안

로드밸런서 사용시 한 대의 로드밸런스 서버가 여러 대의 서버로 요청을 분산하므로, 이 로드밸런스 서버에서 장애를 일으키면 서비스 전체가 정지된다는 단점이 있다. 보편적으로 사용하는 위의 형태외에 고가용성 로드밸런서를 사용하면 단점을 해결할 수 있다.

고가용성 로드밸런서는 두 대의 로드밸런스 서버가 마스터와 스탠바이 역할을 가진다. 마스터 서버가 로드밸런서를 담당하다가 장애를 일으키면, 대기상태의 스탠바이 서버가 로드밸런스를 담당하게 된다. 마스터 서버가 복구되면 스탠바이 서버는 다시 대기상태가 되는 안정적인 형태다.

0개의 댓글

관련 채용 정보