사내에 개발한 서비스를 패치할 때 항상 사람들이 없는 시간인 7시...8시...가 넘어가서야 시작을 했다. 그 이유는 이미 서버가 이중화가 되어있지만, 이는 물리적 서버를 이중화하였고, 해당 트래픽에 대한 연결 서버에 대해서는 자체관리가 아닌 정보 관리팀의 관리가 필요한 부분이었다. 그래서 이에 대한 해결법으로 Load-Balancer 기능을 제공하는 HAProxy를 이용하기로 하였다.
로드밸런싱(Load-Balancing)은 여러 요청들에 대해서 서버에 부하가 오지 않도록 네트워크 트래픽을 분산시키는 것이다.
간단하게 말하면 식당에서 손님들이 들어오면 웨이터가 빈 테이블로 안내하는 것이라고 생각하면 된다.
HAProxy는 오픈소스로 제공되는 로드밸런서이다. 기존의 하드웨어 형태의 로드밸런서와 달리 소프트웨어 로드밸런서이다.
네트워크 스위치에서 제공하는 L4, L7 기능 및 로드밸런서 기능을 제공하고 있다.
L4 로드 밸런서는 전송 계층에서 작동하며, 주로 TCP 및 UDP 프로토콜을 기반으로 클라이언트와 서버 간의 트래픽을 분산시킨다. IP 주소와 포트, 서버의 IP 주소와 포트를 기반으로 로드 밸런싱을 수행한다.
L7 로드 밸런서는 애플리케이션 계층에서 작동하며, 주로 HTTP 및 HTTPS 프로토콜을 기반으로 클라이언트와 서버 간의 트래픽을 분산시킨다. L7 로드 밸런서는 요청 내용(URL, 헤더, 쿠키 등)을 기반으로 로드 밸런싱을 수행한다.