티스토리 뷰

네트워크 장비가 아닌 소프트웨어로 로드밸런서를 구현할 때 많이 언급되는 HAProxy, Apache, NginX 3가지를 비교해봤습니다.

 

특징 HAProxy Apache Nginx
주요 사용 사례 전용 로드 밸런서 웹서버 + 로드 밸런싱 웹서버 + 로드 밸런싱
성능 높은 성능 - 로드 밸런싱에 최적화 보통 - 로드 밸런싱 전문은 아님 높은 성능 - 효율적인 아키텍처
설정의 용이성 보통 - 텍스트 기반 설정 보통 - 텍스트 기반 설정 쉬움 - 간단한 설정
지원 프로토콜 HTTP, TCP, UDP HTTP, HTTPS HTTP, HTTPS, TCP, UDP
로드 밸런싱 알고리즘 라운드로빈, 최소 연결 수 등 라운드로빈, 최소 연결 수 라운드로빈, 최소 연결 수, IP 해시
SSL 종료 지원 지원 지원 (모듈 필요) 지원
헬스 체크 지원 - 고급 체크 가능 지원 - 기본 체크 지원 - 좋은 지원
확장성 높은 확장성 제한적 - 웹 서버로 설계됨 높은 확장성
리소스 효율성 매우 효율적 보통 - HAProxy보다 무거움 효율적
추가 기능 연결 추적, 세부적인 메트릭 제공 웹 서버 전체 기능 캐싱, 리버스 프록시, 웹 서버 기능 제공
네트워크 레벨 지원 L4, L7 지원 L7만 지원 L4, L7 지원
설정 적용 방식 무중단 적용 가능 대부분 재기동 필요 무중단 적용 가능

 

Apache와 Nginx는 웹 서버로 설계되었지만, HAProxy는 로드밸런싱과 트래픽 관리에 특화된 소프트웨어입니다. 따라서 HAProxy는 웹 서버 기능이 없고 오로지 트래픽을 분산하고 서버 가용성을 유지하는데 목적이 있다는 차이점이 있습니다.

따라서 웹 서버 + 로드밸런싱이 필요하다면 Nginx를, 고성능의 로드밸런싱만 필요한 경우는 HAProxy를 이용하는 것이 적절해보입니다.

 

 

728x90