본문 바로가기
Programming/Network

[Network] 로드밸런싱(load balancing) - 부하분산

by prinha 2021. 4. 30.
반응형

로드 밸런싱(load balancing) 또는 부하분산

컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. 

 

 

아무리 성능이 뛰어난 서버라고 해도 모든 트래픽을 감당할 수는 없다.

이에 서버를 추가로 구비하고 여러 대의 서버에 동일한 데이터를 저장해 수많은 트래픽을 효과적으로 분산하게 한다.

여러 대의 서버를 구축하여 운영한다고해도 모든 클라이언트의 요청에 일관성있게 응답할 수는 없다.

이때 필요한 기술이 로드 밸런싱이다.

 

정적인 처리를 하는 WEB서버와 달리 WAS는 서버단에서 어플리케이션이 동작할 수 있도록 동적인 처리를 담당하는데, 때문에 WEB서버에 비해 상대적으로 부하가 많고, 가용성 또한 중요하다.

로드 밸런싱이라는 기술을 사용하여 WEB서버에 들어온 요청들을 다수의 WAS서버에 분산하여 부하가 덜 가도록 하며,

여러 개의 서버 중 한대에 장애가 발생하더라도 서비스가 계속 될 수 있도록 가용성을 보장한다.

 

로드밸런싱 방법에는 크게 두 가지가 있는데, L4를 이용한 웹서버 로드밸런싱과 WAS 로드밸런싱이 있다.

L4를 이용한 로드밸런싱은 하드웨어 영역까지 컨트롤해야하며 상당히 난이도가 있는 작업인 반면, 

WAS 로드밸런싱은 아파치에서 제공하는 모듈을 이용하여 좀 더 간단하게 설정할 수 있다.

AJP를 이용한 로드밸런싱은 톰캣의 부하증가나 이중화시에도 이용할 수 있다.

(아파치 = WEB서버, 톰캣에서는 로드밸런싱 지원하지않음)


세션 클러스터링(session clustering)

세션 정보를 해당 서버에만 보존하는 것이 아니라, 로드밸런싱한 다른 서버들에도 공유하여 동일한 세션으로 관리하는 것을 뜻한다.

여러 개의 서버 중 하나의 서버에 장애가 오더라도 해당 세션 정보값을 그대로 다른 서버에서 이어받아 서비스를 지속할 수 있게 하는 기능이다.

 

반응형