Network

Load Balancer에 대해 알아보자

숄구-ml 2022. 10. 3. 17:18

인터넷의 발달로 증가한 폭발적인 트래픽량을 서버 하나로 감당하기 힘들어지자 기업들은 서버를 추가로 구매하고 트래픽을 분산하게 되었다. 이를 위한 방법은 2가지가 있는데

1) Scale-up: 서버 자체의 성능을 업그레이드 하는 것

2) Scale-out: 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영하는 것

Load Balancing은 Scale-out 방식에서 필요한 기술로,  트래픽을 여러 대의 서버로 균등하게 분산해주는 역할을 수행한다.

 

 

 

 

 

Load Balancing 기법은 여러가지가 있다. 서버의 상황에 맞춰 적절한 방법을 사용해야 한다. 

1) Round Robin Method

서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식

서버와의 연결이 오래 지속되지 않는 경우에 활용하기 적합하다. 예를 들어, 라운드 로빈 방식으로 트래픽을 분산하고 있는데 특정 서버에 클라이언트가 오랫동안 접속해 있는 경우가 있다. 라운드 로빈 방식은 이런 상황을 고려하지 않고 순서대로 트래픽을 분배한다.

2) Weighted Round Robin Method

가중 라운드 로빈 방식으로 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분해주는 방법이다. 예를 들어, A 서버의 트래픽 처리 능력이 B 서버보다 월등하게 높을 경우 A 서버에 가중치를 더 높게 줌으로써 트래픽을 효과적으로 분산시킨다. 

3) IP Hash Method

클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식이다. 클라이언트의 IP를 Hashing(임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것) 하여 로드를 분배하기 때문에 클라이언트가 항상 동일한 서버로 연결되는 것을 보장한다.

4) Least Connection Method

최소 연결 방식으로 요청이 들어온 시점에 연결 상태가 가장 적은 서버에 우선적으로 트래픽을 배분하는 방법

세션이 자주 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합한 방식이다. 

5) Least Response Time Method

최소 응답 시간 방식으로 서버와의 연결 상태와 응답 시간(서버에 요청을 보내고 최초 응답을 받을 때까지 걸리는 시간)을 모두 고려하여 트래픽을 배분하는 방법. 

 

 

 

 

 

부하 분산에 주로 사용되는 Load Balancer에는 L4 Load Balancer 와 L7 Load Balancer가 있다. 

L4, L7 이 앞에 붙은 이유는 Transport Layer (L4) 프로토콜과 Application Layer (L7) 프로토콜의 헤더를 Load Balancing에 이용하기 때문이다. 

L4 Load Balancer는 IP와 Port를 활용하여 로드밸런싱 한다. 뿐만 아니라 TCP와 UDP의 특징을 이용해 해당 프로토콜의 행동을 제어한다. 예를 들어, TCP의 3-way-handshake를 제어하거나 커넥션을 언제 끊을 것인지, 얼마나 유지할 것인지, Time out에 도달하면 어떻게 할 것인지 등을 제어한다.

L4 Load Balancer는 데이터 안을 들여다보지 않고 패킷 레벨에서만 로드를 분산하기 때문에 속도가 빠르고 효율이 높다. 또한 데이터의 내용을 복호화할 필요가 없기 때문에 안전하다. 단점은 패킷의 내용을 볼 수 없기 때문에 섬세한 라우팅은 불가능 하고 사용자의 IP가 빈번히 변경되는 경우라면 연속적인 서비스를 제공하기 어렵다. 

 

L7 Load Balancer는 IP와 Port를 사용하여 로드밸런싱 하는 것은 같으나 Layer 7의 프로토콜을 사용해 사용자 정의 로드밸런싱을 실시하거나 Layer 7의 프로토콜 헤더를 조작, 활용할 수 있다는 특징이 있다. Layer의 상위 계층은 하위 계층의 프로토콜을 해석할 수 있다는 것을 이해한다면, L7 Load Balancer가 L4 Load Balancer와 같이 TCP와 UDP를 활용해 프로토콜을 설정할 수 있다는 것을  알 수 있다. 뿐만아니라 HTTP 헤더 (URL, 쿠키, 컨텐츠, 브라우저 정보 등)를 분석하여 클라이언트의 요청에 맞게 섬세한 로드밸런싱이 가능하다. 

L7 Load Balancer는 비정상적인 트래픽을 사전에 필터링 할 수 있어 서비스 안전성이 높다. 단점은 패킷의 내용을 복호화해야 하기에 더 높은 비용을 지불해야 하고, 클라이언트가 로드밸런서와 인증서를 공유 해야하기 때문에 공격자가 로드밸런서를 통해서 클라이언트 데이터에 접근할 수 있어 보안 상의 위험이 있다. 

 

 

 

 

 

 

참고 사이트) https://aws-hyoh.tistory.com/entry/L4L7-%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%8B%B1-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

L4/L7 로드밸런싱 쉽게 이해하기

이번 문서 'L4/L7 로드밸런싱 쉽게 이해하기'와 '서버 부하 분산 쉽게 이해하기', 'L4 스위치 쉽게 이해하기'는 L4/L7 Network Swtich인 'F5 Networks' 장비를 기준으로 설명합니다. Alteon(Radware), Brocade, Ci..

aws-hyoh.tistory.com

참고 영상) https://www.youtube.com/watch?v=sCR3SAVdyCc 

https://www.youtube.com/watch?v=kMRgNCnwt0Y 

 

728x90