1. 개요
Load Balancing컴퓨터 네트워크 상으로 들어오는 트래픽이 하나의 서버에 집중되지 않도록 서버의 기능을 분산 구성하고, 이를 통해 컴퓨터 자원을 나누는 일을 말한다. 주로 CPU 같은 연산 장치와 스토리지 같은 저장 장치가 분산 대상이 되며, 이들을 연결하는 내부 네트워크와 바깥 트래픽을 연결하는 외부 네트워크가 나뉜다. 보통 내부 서버들 끼리는 병렬처리를 통해 트래픽을 주고 받는 것이 보통이며, 이 때문에 바깥 트래픽을 받아서 내부 장치로 트래픽을 분산시켜주는 장치는 로드 밸런서(Load Balancer)라고 따로 말한다.
부하분산은 하드웨어[1]로도 할 수 있지만, 소프트웨어로도 수행할 수 있다.
서버 부하분산 기능도 있지만, 방화벽 부하분산[2] 기능도 있다. 그 외에도 IPSLB[3], VPNLB[4] 등 서버가 아닌 타 장비의 부하분산 기능도 있다.
2. 도입 필요성
단일 구성체인 메인프레임 서버는 트래픽 과부하 등으로 뻗으면 서버에 종속되어 있는 모든 모듈을 못 쓰게 된다. 이는 곧 서버 고장이 바로 클라이언트에 나타난다는 의미로, 시스템의 신뢰성 저하로 직결되게 된다.하지만 부하분산 시스템을 둬서 관리하면 하나의 모듈이 죽어도 다른 모듈은 그대로 자기 할 일을 처리할 수 있게 된다. 이는 곧 모듈 자체에 대한 핫스왑(Hot-swap)이 가능하다는 의미로, 내부 서버 고장을 숨길 수 있어 시스템의 신뢰성이 향상된다는 이점이 있다. 이 때문에 대다수 시스템에서는 진작에 도입하고 있으며, 메인프레임의 마지막 보루인 은행망마저 요즘은 로드 밸런서를 추가한 x86-64 시스템을 적극 도입하는 일이 많아졌다.
3. 단점
그러나 무작정 부하분산을 도입할 수도 없는 게, 병렬처리 특성상 암달의 법칙이 가로막고 있다. 내부 서버들끼리 트래픽을 주고받기 때문에 외부로 나갈 수 있는 트래픽에 제약이 생기게 되며, 이 트래픽으로 인해 전체 시스템의 성능 저하를 가져올 수 있다. 서버 개수 자체가 늘어나는 것이기 때문에 개별 보안에도 신경써야 하는데, 트래픽이 외부로 직접 나가는 경우는 특히 주의해야 한다.이러한 문제 때문에 클라우드 컴퓨팅을 전문으로 하는 게 아닌 이상 부하분산 시스템을 직접 도입하는 곳은 많지 않으며, 대부분의 기업이 이들 클라우드 서비스에서 자원을 끌어오는 것이 현실이다. 또한 은행망 같이 정말로 대용량 데이터를 안정적으로 처리해야 하는 곳에서는 여전히 단일 또는 소수 구성의 메인프레임 서버를 사용하기도 한다.
4. 참고문서
[1] 흔히 L4/L7 스위치로 불리고 있는 ADC가 필요하다.[2] Firewall Load Balancing. 줄임말로는 FLB 혹은 FWLB로 칭한다.[3] IPS Load Balancing[4] VPN Load Balancing