로드 밸런싱(Load balancing) 은 여러대의 장비에 분산되어 있는 WAS(Web Appication Server) 를 하나의 포인트로 접근할 수 있게끔 해주는 솔루션입니다.
자원 활용의 최적화, 처리량 개선, 응답시간 최소화, 특정 리소스의 오버헤드를 방지하는 목적으로 사용됩니다.
HAProxy
HAProxy 는 오픈소스 로드 밸런싱 소프트웨어 중 가장 많이 알려진 솔루션 중 하나이며, 고가용성, 프록시 기능을 제공합니다.
HAProxy 는 트래픽이 많은 웹사이트에 특히 필요하며, 여러 서버로 구성 된 웹 서비스의 신뢰성과 성능을 증가시켜줍니다.
설치 (HAProxy 1.6)
1. yum(패키지 관리자) 을 이용한 설치
$ sudo yum install haproxy
2. 소스코드 컴파일을 이용한 설치
의존 패키지를 설치합니다.
$ sudo yum install wget gcc pcre-static pcre-devel -y
HAProxy 소스 코드를 다운로드 받고, 압축을 해제합니다.
$ wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.8.tar.gz
압축 해제한 HAProxy 파일을 컴파일 합니다.
$ cd ~/haproxy-1.6.8
$ make TARGET=linux2628
# 여기서 TARGET 옵션은 리눅스 종류에 맞춰 지정합니다.
- linux22 for Linux 2.2
- linux24 for Linux 2.4 and above (default)
- linux24e for Linux 2.4 with support for a working epoll (> 0.21)
- linux26 for Linux 2.6 and above
- linux2628 for Linux 2.6.28, 3.x, and above (enables splice and tproxy)
- solaris for Solaris 8 or 10 (others untested)
- freebsd for FreeBSD 5 to 10 (others untested)
- netbsd for NetBSD
- osx for Mac OS/X
- openbsd for OpenBSD 3.1 and above
- aix51 for AIX 5.1
- aix52 for AIX 5.2
- cygwin for Cygwin
- generic for any other OS or version.
- custom to manually adjust every setting
최종적으로 설치 명령을 수행합니다.
$ sudo make install
haproxy 명령어를 사용할 수 있도록 설치된 파일들을 /usr/sbin 디렉토리에 링크를 걸고, service 에 등록합니다.
$ sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
$ sudo cp ~/haproxy-1.6.8/examples/haproxy.init /etc/init.d/haproxy
$ sudo chmod 755 /etc/init.d/haproxy
haproxy 를 정상적으로 실행하기 위해서는 haproxy 계정을 시스템 계정으로 등록되어 있어야 합니다.
$ sudo useradd -r haproxy
설치가 완료되면 hproxy 를 실행하여 정상적으로 설치되었는지 확인합니다.
$ sudo haproxy -v
HA-Proxy version 1.6.8 2016/08/14
Copyright 2000-2015 Willy Tarreau <willy@haproxy.org>
로드 밸런서 설정
로드 밸런싱을 위해 설정은 매우 간단합니다. 기본적으로 HAProxy 가 어떤 종류의 커넥션을 리스닝 하고 있어야 하는지 그리고 어떤 서버로 중계할 것인지를 설정해야 합니다.
설정 파일은 /etc/haproxy/haproxy.cfg 에 정의합니다.
$ sudo vi /etc/haproxy/haproxy.cfg
global
maxconn 256
defaults
mode http
timeout connect 5000ms
timeout client 60000ms
timeout server 60000ms
frontend http-in
bind *:8888
default_backend servers
backend servers
balance source
server <server-name> <hostname>:<port> check
server <server-name> <hostname>:<port> check
설정을 완료한 후, haproxy 를 재시작 합니다.
$ service haproxy restart
How to Install HAProxy Load Balancer on CentOS - https://www.upcloud.com/support/haproxy-load-balancer-centos/
'System > Linux' 카테고리의 다른 글
centos - 일반 계정 sudoer 만들기 (0) | 2017.01.18 |
---|---|
파일 크기 기준으로 검색하기 (0) | 2016.08.23 |
리눅스 부팅시간 확인 (0) | 2016.08.23 |
Ubuntu(우분투) - ssh 서버 설치/root 계정 접속 허용하기 (1) | 2016.08.17 |
우분투(Ubuntu) - Oracle JDK 설치하기 (1) | 2016.08.17 |