새소식

이론/네트워크

로드밸런싱(Load Balancing)

  • -

프로젝트를 진행하던 중 로드밸런싱 개념을 접하게 되었다.

로드밸런싱이란 단어는 종종 들어봐서 대충 어떤 뜻인지 알고있었지만, 이번 기회에 확실하게 이해하기 위해 글을 쓰게 되었다.

 

1. 등장 배경

 

오늘날 대다수의 서비스는 한 대의 서버에 여러 대의 클라이언트가 접속하는 클라이언트-서버 모델을 사용한다.

서비스 초기 단계에는 클라이언트(사용자) 수가 적기 때문에 한 대의 서버만으로도 트래픽 처리가 가능하다.

 

하지만 사업의 규모 확장에 따라 클라이언트 수가 증가하게 되면 어떻게 될까?

 

클라이언트가 100명에서 10000명으로 늘어날 경우, 한 대의 서버가 처리해야할 트래픽 또한 대폭 증가하게 된다.

이런 경우 기존 서버의 성능으로는 트래픽 처리가 어려워 원활한 서비스 제공이 불가능할 것이다.

 

이렇게 증가한 트래픽에 대응할 수 있는 방법2가지가 있다.

 

1. 스케일 업(Scale-up) : 기존의 서버 하드웨어 성능을 업그레이드 하는 것 (ex 램 4GB -> 16GB 변경)

2. 스케일 아웃(Scale-out) : 비슷한 사양의 서버를 추가하는 것 (ex 서버 1대 운영 -> 2대 증설 -> 3대 운영)

 

한 서버의 성능을 높이는 스케일업 작업은 비용 문제 등의 한계가 있기 때문에 보통 여러 대의 서버를 놓는 스케일 아웃 작업을 하게된다.

 

다수의 서버를 놓아도 한 대에만 트래픽이 몰리면 의미가 없기 때문에, 여러 대의 서버로 트래픽을 균등하게 분산해줄 필요가 있다.

이처럼 여러 대의 서버에 부하(Load)를 균등하게 분산(Balancing)해주는 기술을 로드 밸런싱(Load Balancing)이라고 한다.

 

 

2. 로드밸런서(Load Balancer)

 

로드밸런싱 기술을 제공하는 서비스 또는 장치를 로드밸런서라고 하며, 트래픽이 집중되는 클라이언트와 서버 사이에 위치하며 VIP(Virtual IP)와 함께 구성된다.

 

VIP(Virtual IP)란
로드밸런싱의 대상이 되는 여러 서버를 대표하는 가상의 IP

 

클라이언트는 서버의 IP로 직접 요청하는 것이 아니라 로드밸런서가 가지고 있는 VIP로 요청을 보내며, 로드밸런서는 설정된 부하 분산 방법에 따라 각 서버로 요청을 분산한다.

 

3. 로드밸런싱 알고리즘

 

구분 설명
라운드로빈 방식 - 클라이언트로 받은 요청을 서버에 순서대로 할당하는 방식 (ex 첫번째 요청은 첫 번째 서버에 할당)
- 서버와의 연결이 오래가지 않는 경우에 적합
가중 라운드로빈 방식 - 라운드 로빈 방식과 동일하지만 각 장비에 가중치를 두고 가중치가 높은 장비에 부하를 더 많이 분산하는 방식
- 서버별로 트래픽 처리 능력이 상이한 경우에 적합
IP 해시 방식 - 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
- 사용자의 IP를 해싱해 로드를 분배하므로 사용자가 항상 동일한 서버로 연결되는 것을 보장
* 해싱 : 임의의 길이를 가진 데이터를 고정된 길이의 데이터로 매핑하는 것
최소 연결 방식 - 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분하는 방식
- 동적인 분산 알고리즘으로 각 서버에 대한 현재 연결 수를 카운트할 수 있기 때문에 동적으로 변하는 요청에 대한 부하를 분산시킬 수 있음 

로드밸런서는 사전에 설정한 알고리즘을 통해 각 서버로 부하를 분산시키며, 위 표에 대표적인 알고리즘을 정리했다.

 

 

4. 참고사이트

[1] https://steady-coding.tistory.com/535 

[2] https://blog.bespinglobal.com/post/load-balancers/

'이론 > 네트워크' 카테고리의 다른 글

TCP/IP 모델  (0) 2020.09.07
네트워크 개요 - II  (0) 2020.09.07
DNS 캐시 테이블이란?  (0) 2020.09.04
ARP 캐시 테이블이란?  (0) 2020.09.04
MAC 주소란?  (0) 2020.03.05
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.