Network/Network Infrastructure

[Network] 로드 밸런서란? - What is Load Balancer?

Bans 2022. 8. 22. 00:57

로드 밸런서는 무엇이고, 왜 사용할까?

 

 

꼭 CS 분야가 아니더라도,

어느 분야의 특정 주체에게

여러 작업을 맡기는 것에는 한계가 있다.

그리고, 아무리 그 분야에 특출나다고 해도

분명히 '한계점' 은 존재하기 마련이다.

 

월급 수령은 나 혼자 할게. 양이 많더라도 충분히 견딜 수 있어

 

여기,

Balancing 을 고려하지 않은

Web Infrastructure의 간단한 파이프라인 구조가 있다.

 

(https://assets.digitalocean.com/articles/HAProxy/web_server.png)

 

User는, 인터넷 네트워크를 통해

Web Server (http://yourdomain.com/) 에 직접 접속하고 있다.

만약, 접속하는 User 의 수가 급격하게 늘어나

Web Server의 수용량한계에 다다르게 된다면,

Web Server 는 죽음을 택하게 될 것이고 (a.k.a 서버 터졌다)

이 서비스는 서버를 다시 살리기 전 까지

정상 운영을 할 수 없게 될 것이다.

 

이러한 상황을 방지하기 위한 여러 장치가 있는데, (Scale-up / Scale-out)

로드 밸런서는 그러한 기술 중 하나로 (on scale-out) , 작업량의 분산에 그 목적이 있다.

 

 

로드 밸런서 - Load Balancer 는

 

Load (압력, 작업량, '부하') 를

Balancing (균형을 맞추다 - 분산하다) 해주는 장치 혹은 그러한 기술을 통칭한다.

 

클라이언트 ( User ) 와,

서비스의 서버 풀 ( Server Pool ) 사이에 위치하고

한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리하여

서버 각각이 최적의 퍼포먼스를 보일 수 있도록 돕게 되는것이다.

 

이러한 로드 밸런서의 종류는

OSI 7 Layers 의 각 계층에 따른 분류를 통해 분류되기도 한다.

 

OSI 7 Layer Model 에 대하여

- OSI 7 Layer Model (Open Systems Interconnection Reference Model) OSI 7 계층이란? -> 개방된 통신 시스템간의 상호연결성을 부여하는 표준 OSI 7 계층 - 국제 표준화 기구(ISO)에서 정의한 통신의 7단계..

bans.tistory.com

 

대표적으로 L4 / L7 Load Balancer 가 사용되곤 한다.

(L2 - Mac addr 기반, L3 - IP addr 기반)

 

L4 Load Balancing ( use TCP/IP and PORT )
L7 Load Balancing ( use User req on Applicaion level )

 


 

또한, 이러한 로드 밸런서 자체의 down 을 방지하기 위해

로드밸런서 자체의 이중화를 통한

장애 방지를 도입하기도 한다.

 

 

참고 : 
https://www.digitalocean.com/community/tutorials/what-is-load-balancing#digitalocean-s-load-balancing-service

 

What is Load Balancing? | DigitalOcean

 

www.digitalocean.com

 

 

 

물론, 모든 상황에서

로드 밸런서가 무조건적인 정답이다! 라고 할 순 없다.

 

하지만,

로드 밸런서가 무엇이고

이걸 왜 사용하는 지를 알아야

언제, 어느 시기에 적절하게 이를 적용할 것인지

정하고 프로젝트에 적용할 수 있을 것이다! 😎