LoadBlancer란?
로드 밸런서는 네트워크나 애플리케이션 트래픽을 여러 대의 서버에 균형 있게 분배하는 장치나 기술을 말한다.
이는 서버 간에 작업 부하를 분산하여 단일 서버에 가해지는 부하를 분산시키고,
서비스의 가용성과 안정성을 높이는 데 도움이 된다.
Round Robin(라운드 로빈)
요청을 순서대로 각 서버에 차례로 배분하는 방식이다.
각 서버는 순서대로 한 번씩 요청을 처리하고 다시 처음부터 반복된다.
Least Connections(최소 연결)
현재 연결 수가 가장 적은 서버에 요청을 보내는 방식이다.
이를 통해 현재 가장 부하가 적은 서버에 트래픽을 전달하여 서버 부하를 균형있게 분산한다.
IP Hash(아이피 해시)
클라이언트의 IP 주소를 해시하여 해당 해시값에 해당하는 서버로 요청을 보내는 방식이다.
동일한 클라이언트는 항상 동일한 서버로 연결되도록 보장한다.
가중치 기반
각 서버에는 특정한 가중치가 할당되어 있으며, 이 가중치에 따라 트래픽을 처리하는 비율이 결정된다.
예를 들어, 가중치가 높은 서버는 더 많은 트래픽을 처리하고, 가중치가 낮은 서버는 상대적으로 적은 트래픽을 처리한다.
활성화 방법
1. sudo a2enmod proxy
# 프록시 기능 활성화
2. sudo a2enmod proxy_balancer
# 로드밸런서 기능 활성화
3. sudo a2enmod [활성화 할 로드밸런서 타입]
# 로드밸런서 종류 선택
lbmethod_byrequests
#각 서버에 요청이 온 횟수에 따라 트래픽을 분배합니다.
lbmethod_bytraffic
# 서버에 도착하는 트래픽의 양에 따라 트래픽을 분산한다.
lbmethod_bybusyness
# 서버의 현재 부하에 따라 트래픽을 분산한다.
lbmethod_heartbeat
# 백엔드 서버의 상태를 주기적으로 확인하여 이를 기반으로 트래픽을 분산한다.
4. /etc/apache2/site-available/000-default 를수정
ProxyPass "/was_func" balancer://mycluster/
# 클라이언트로부터 들어오는 /was_func에 대한 요청을
# mycluster라는 로드 밸런서 그룹에 전달
ProxyPassReverse / balancer://mycluster/
# 로드 밸런서로부터 오는 응답을 클라이언트에게 전달하기 전에 수정
# 보통 응답을 받고 전달할 때 응답 헤더의 URL을 변경해야 할 때 사용
<Proxy "balancer://[was-servers]"> # 프록시 설정 블록 정의
BalancerMember http://[Domain OR IP] # 멤버추가
BalancerMember http://[Domain OR IP] # 멤버추가
</Proxy>
댓글