진짜 개발자
본문 바로가기

Cloud 교육

8주-1일차 (리눅스 Load Balance 구현(Web))

728x90
(참조 - https://nesoy.github.io/articles/2018-06/Load-Balancer)



서버 부하시 개선 방법

1. Scale up - 서버가 더 빠르게 동작하기 위해 하드웨어의 성능을 향상 시키는 방법

2. Scale out - 서버를 여러개를 두어 분산을 부하시키는 방법



Load Balancing 이란
  • 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리하여 해결해주는 서비스입니다.




1. HaProxy를 이용한 Web Load Balanace 구현



1. 클라이언트가 www.babo.com 에 접속을 시도한다

2. DNS1.0.0.21www.babo.com IP1.0.0.21로 기록해두었기 때문에 1.0.0.21로 이동 된다

3. 1.0.0.21 PC에는 haproxy가 자신의 APP목록에 있는 IP주소로 RR방식으로 맵핑한다



시나리오 - HaProxy를 이용한 Web Load Balanace 구현


Linux Load Balance - Web


host CentOS1 CentOS2 CentOS3 W7-1

IP 1.0.0.21 1.0.0.22 1.0.0.23 1.0.0.101

SM             255.255.255.0

DG             1.0.0.252

DNS             설정에 따라


Roles Load Balance Web Web Tester(Client)

DNS Main(www) Main(www)


1. CentOs2와 CentOS3에 웹서버 설치후 기본페이지 구성

2. CentOS1에 HAproxy를 설치하여 Load Balance 구현

3. W7-1을 이용하여 Test


과정

CentOS1 -  Haproxy , bind* 설치

 - 방화벽 : 53tcp 53udp 80tcp 4331tcp

 - /etc/haproxy/haproxy.cfg 설정 front :80 포트 이용하게 

    backend app 으로 CentOS6-2 CentOS6-3 의 IP와 80Port

 - service haproxy start

 

CentOS2 - httpd 설치 방화벽 오픈


CentOS3 - httpd 설치 방화벽 오픈


2. DNS RR, HaProxy를 이용한 Web Load Balanace 구현


시나리오 - DNS RR 과 HaProxy를 이용한 Web Load Balanace 구현


Linux Load Balance - Web


host  CentOS1 CentOS2 CentOS3      CentOS4                CentOS5             W7-1

IP  1.0.0.21 1.0.0.22 1.0.0.23 1.0.0.24                 1.0.0.25               1.0.0.101

SM             255.255.255.0

DG             1.0.0.254

DNS             설정에 따라


Roles Load Balance Load Balance                Web                        Web      Web   Tester(Client)

DNS1         DNS2                          Main(www) Main(www)            Main(www)



1. CentOS1 과 CentOS2 에서 haproxy를 설치하여 DNS RR을 이용하여 부하분산   

2. 한 서버에 부하가 몰리는것을 감소시키기 위한 목적으로 Web1 , Web2 , Web3를 둔다.

3. CentOS1 과 CentOS2 각각에서 haproxy를 이용하여 Web1 , Web2 , Web3로 한번씩 요청을 하게끔 한다.