반응형

Load Balancer가 무엇인지 정의를 내리기 전, Client 요청에 응답하는 Server를 생각해본다.

 

Client가 한명일 경우, Server는 Client의 요청에 응답하는데 무리가 없을 것이다.

하지만 한명이 아닌 수백, 수천만명일 경우, Server는 모든 Client의 요청에 응답해줄 수 없게된다.

(정확히는 모든 Request에 대해 Response 하려고 하지만, 과부하로 인해 리소스가 소모되어 장애가 발생하게 된다.)

 

이런 문제를 해결하기 위한 방법으로 Load Balancing을 사용하는 것이다.

즉 Load Balancer란, Client의 요청을 다수의 자원(ex. Server)에 균등하게 작업을 나누어주는 역할을 하는 것이다.


부하 분산, 로드 밸런싱(Load Balancing)

위에서 언금한 것처럼 서버에 트래픽이 몰릴 경우, 서버는 모든 사용자들에게 응답을 해주다가 한계에 도달하여 장애 상황이 발생하게 될 수 있다.

이러한 상황을 방지할 뿐만아니라 응답 시간을 줄이고 서버의 효율을 높이기 위해 여러대의 자원(ex. Server)에게 균등하게 작업을 나누어(트래픽을 분산시켜) 진행하게 할 수 있는데, 이러한 기술을 Load Balancing 이라고 한다.

 

서버에 많은 트래픽이 몰리는 서비스를 제공할 경우, 로드 밸런싱은 필수적이다.

 

서버의 성능을 향상시키는 방법에는 Scale-Up과 Scale-Out이 있는데, Load Balancing은 Scale-Out 방식을 사용한다.

Scale-Up: 하드웨어 성능을 올리는 방법
Scale-Out: 여러개의 자원(ex.Server)이 나눠서 일을 하는 방법

Load Balancer의 이중화

아무리 비싸고 좋은 장비라도 안정적인 네트워크 환경 구성을 위해서는 장애 상황에 대비하기위해 이중화 구성이 필요하다. (즉, 장애 상황을 최소화하기 위해 대기상태인 Standby Load Balancer를 둔다.)

 

아래 그림처럼 Active Load Balancer와 Standby Load Balancer가 HeartBeat를 주고받으며 상태를 확인한다.

만약, Active Load Balancer의 장애 발생 시, Failover가 발생하여 Standby Load Balancer가 Active상태로 변경된다.

(Standby Load Balancer가 Active Load Balancer가 되어 트래픽을 처리하게 된다.)

반응형

'기초지식 > 네트워크(업무)' 카테고리의 다른 글

네트워크 - LLCF, Failover  (0) 2020.10.01
네트워크 - VPN  (0) 2020.10.01
네트워크 - IPSec, SSL, TLS  (0) 2020.09.27
네트워크 - Tunneling  (0) 2020.09.27
네트워크 - NAT  (0) 2020.09.27

+ Recent posts