본문 바로가기

Server

로드밸런서

반응형

서버 부하 분산을 위해 로드밸런서를 이용합니다. 

지금까진 L4를 많이 사용했지만 최근에 들어서는 L7 도 사용하고 있습니다.

 

로드 밸런싱(Load Balancing)

- 부하분산이라고도 불리며 컴퓨터 네트워크 기술의 일종입니다.

- 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나눠 원활한 서비스 이용이 가능하게 합니다. 

 

로드 밸런싱은 다음과 같은 중요한 두가지 포인트가 있습니다.

  • 부하 분산: L4 스위치를 통한 로드밸런싱으로 다수의 서버들이 서버로드 및 트래픽 등 분산 알고리즘에 따라 분배되어 처리하는 기능

  • FAIL OVER: 다수의 서버가 운영되다가 그 중 하나의 장비에서 장애가 발생하면 해당 장비는 FAIL 처리되고 나머지 서버가 바로 정상 운영되는 방식

 

로드밸런싱은 동일한 역할을 수행하는 서버 그룹을 *VIP를 통해 관리하며 서버로 향하는 트래픽을 일단 VIP를 가진 L4스위치로 수신한 후 분배정책에 따라 적절한 서버에 분배주는 것을 의미합니다. 서버와 통신하려하는 클라이언트는 VIP를 향해 트래픽을 전송하고 L4스위치가 이 트래픽을 받아 적절한 서버에 로드밸런싱을 해주게 됩니다.

(*VIP:  Virtual IP의 약자. 서버그룹의 대표 IP. 로드밸런싱을 수행하는 L4 스위치가 가지고 있다)

 

로드밸런싱이 일어나는 과정

1. 클라이언트가 브라우저에 도메인 입력(e.g. abc.co.kr)

PC에 설정된 Local DNS 서버로 DNS Query 

Local DNS 서버는 abc.co.kr을 관리하는 DNS 서버에 DNS Query, L4의 VIP주소 획득

 

2. Local DNS는 획득한 VIP 주소를 Client에게 전송

 

3. 획득한 DNS를 기반으로 L4 VIP로 http 요청

 

4. L/B 장비는 내부 알고리즘 (라운드 로빈 등)을 통해 최적의 서비스 서버를 선별하여 요청을 전송하며 서버는 작업 결과를 L/B 장비로 전송

 

5. 전달받은 서버 작업 결과 L/B 장비 통해 Client로 전송하여 요청 처리 완료

 

 

로드밸런서 종류

- 운영체제 로드밸런서 : 물리적 프로세서간 작업 스케줄링

- 네트워크 로드밸런서: 사용가능한 백엔드에서 네트워크 작업 스케줄링

 

* 사전 개념*

네트워크 구조에 상관없이 개방형으로 통신할 수 있는 국제 표준 모델이 OSI 7layer입니다.

L1~ L7 까지 나뉘어져있고 L4 장비 등의 말이 여기서 유래된 것입니다.

L1 은 '랜선' 등의 장비를 의미하는 것이고 L2는 'Mac address', L3는 'IP'를 의미한다고 볼 수 있습니다.

 

Mac 과 IP의 차이점을 먼저 보겠습니다.

모든 사용자가 하나의 네트워크상에 있다면 Mac 주소만으로 다른 사용자를 찾아갈 수 있습니다. 이를 담당하는 장비가 스위치입니다. 그러나, 우리가 사용하는 인터넷은 수많은 외부 네트워크와 통신하고 있습니다. 스위치만 사용하게 되면 오직 장비간의 통신만 가능할 뿐이지 네트워크간의 통신은 불가능합니다. 그래서 나온것이 '라우터'입니다. 

 

라우터는 네트워크간의 통신이 가능하여 외부 다른 네트워크와 통신할 때 사용합니다. 

 

즉, 스위치는 들어온 신호를 내부망 안에서 전달할 수 있는 장비라면

라우터는 들어온 신호를 내부망과 외부망 모두에게 보낼 수 있는 장비입니다.

 

 

네트워크 로드밸런서 종류

  • L2(Data Link Layer) : Mac address Load Balancing, 스위치
  • L3(Network Layer) : IP address Load Balancing, 라우터
  • L4(Transport Layer) : Transport Layer(IP+Port) Load Balancing, 주로 로드밸런싱 구성을 위해 사용한다고 볼 수 있습니다.
  • L7(Application Layer) : Application Layer(사용자 Request) Load Balancing, IP + Port + 패킷 내용까지 참조

L4 스위치 

OSI 7계층 중 Layer 4 에서 패킷을 확인하고 세션을 관리하는 역할입니다. TCP/UDP 별로 패킷 정보를 분석해 해당 패킷이 사용하는 종류(HTTP, FTP, SMTP 등)를 처리합니다. 또한 로드 밸런싱 기능(ip, session, port 정보 기반)을 제공하기도 합니다.

 

반응형

'Server' 카테고리의 다른 글

서버 설정  (0) 2020.09.10
tomcat / oracle  (0) 2020.09.09
Ubuntu apache 포트 변경  (0) 2020.07.27
Legacy  (0) 2020.07.18
Gateway, 게이트웨이  (0) 2020.07.16