SLB 서버부하분산 Server Load Balancing

2021. 7. 12. 07:17젬스it

반응형

SLB(Server load Banacing) - 서버 부하 분산
서버 로드 밸런싱은 여러 대의 서버를 마치 하나의 서버처럼 동작시킴으로써
성능을 쉽게 확장하게 하고, 서버의 장애 발생시에도 타 서버로 운영이 가능하게 함으로써 신뢰성을 향상시키기 위한 방법이다.
SLB장점
● 성능 향상
- 서비스 응답시간의 감소
- 로드 분산에 의한 서버의 부하경감


● 용이한 확장성 보장
- 독 립 형 : 독립 서버의 성능을 개선하기 위하여 서비스를 다운 시킨 후 서버의 사양을 업그레이드 함
- SLB 사용시 : 서버 증설 시 기존의 서버의 서비스를 보장하여 확장이 가능


● 서버의 효율성 증가
● 서버의 보안성 항상
● 고 가용성
- 한 대의 서버가 서비스 불가 상태 이라도 서비스의 중단이 없다.


ex)DNS를 이용한 부하분산 경우 DNS라운드로빈
www.info.net 192.1.1.1
www.info.net 192.1.1.2
www.info.net 192.1.1.3
단 / 이용제한을 둘수없어. 과부하 가능성 높다


SLB작동원리 - Session ID 교체
SLB1.PNG


Socket / Session
소켓
port address 와 ip address 매칭작업
L4(Port) + L3(IP)


세션
Session ID는 클라이언트의 IP와 TCP 포트 번호의 조합을 말한다.
PC1(Port+IP) == PC2(Port+IP)


세션*)
세션이란 일정 시간동안 같은 사용자(정확하게 브라우저를 말한다)로 부터 들어오는
일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술 이라고 한다.
또한 여기서 일정시간 이란 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 웹 브라우저를 종료함으로써 연결을 끝내는 시점을 말하며
즉, 방문자가 웹서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라고 칭한다는 것.


서버로드 밸런싱의 핵심 기능은 이러한 sessionID의 대치 기능이다. (Nat 기능과 유사)

SLB의 기능은 Alteon Switch(L4스위치)의 SessionID 대치의 방식으로 이루어 지므로 Server와 Client Traffic은 반드시 Alteon Switch(L4스위치) 를 경유해야만 정상적인기능이 수행된다.




Traffic Flow
● Client에서 Server로의 Traffic은 Alteon에 설정 된 VIP를 통하여 이루어 진다.
● Server에서 Client의 Traffic은 다음의 두 가지 방식으로 이루어 진다.
- 물리적으로 Server에서 Client로 가는 Traffic의 경로가 Alteon Switch를 거쳐서만
가도록 구성
- Alteon의 Client Port에 PIP(Proxy IP)를 설정 하여 강제적으로 VIP를 향하여
들어온 모든 Traffic을 Alteon Switch를 거처 가도록 경로를 확보하는 방식.



※ SLB를 적용할 서버는 반드시 그룹으로 구축하여 관리하기를 권장함


*) 라운드로빈 이란
라운드 로빈은 그룹 내에 있는 모든 요소들을 합리적인 순서에 입각하여 뽑는 방법으로서,
대개 리스트의 맨 위에서 아래로 가며 하나 씩 뽑고, 끝나면 다시 맨 위로 돌아가는 식으로 진행된다. 쉽게 말해 라운드 로빈은 "기회를 차례대로 받기" 라고 이해해도 좋을 것이다. 이 용어를 형용사처럼 쓸 때는, 하이픈을 넣어서 "round-robin"과 같이 쓰기도 한다.



SLB2.PNG
(위그림 PIP)
Proxy IP(PIP)
복잡한 Network에서는 Server에서 Client로 가는 경로가 2대 이상이 존재하는 경우
Server에서 Client로 가는 Traffic이 L4 Switch를 거치지 않고 나가는 경우가 발생하게 된다.


이러한경우 VIP로 들어온 클라이언트에 대하여 서버에서 다른 경로를 거치지 않고 웹 스위치를 통과하도록 만들기 위하여 사용하게 된다.



SLB 기본 구성요소
● Real Server의 IP 주소(두 개 이상)
- 반드시 활성화 되어 있어야 한다.
● Real Server Group
- 설정 된 Real Server를 추가 한다.
- 동일한 서비스를 하는 Real Server들의 모임
- 동일한 VIP에 속하게 되는 Real Servers
● Virtual IP Address
- 실제 해당 서비스에 대하여 외부의 Client가 보게 되는 IP 주소
(외부 사용자에 대한 Service 주소)
- 반드시 활성화 되어 있어야 한다.
● Service하고자 하는 Service Type을 지정한다.
● Client와 Server의 Port를 지정한다.
- Port 지정이 되어 있지 않는 경우 Session id 대치 기능이 작동하지 않는다.
● SLB를 활성화 한다.




Delayed Binding
- Real Server와 session연결에 대한 결정은 웹 스위치와 User사이에 TCP 3-way Handshake가 우선 적으로 이루어 진 후 스위치에서 최적의 Real Server를 선택한다.
- Real Server 결정은 URL, SSL session ID, cookie등의 Client에서 오는 정보에
기반하여 선택하게 된다.


장점
- Web Switch가 Client의 요청을 관찰하고 적합한 서버로 연결시켜 준다.
- 발전 된 개념의 Load Balancing을 가능하게 하여 준다.
* Contents 기반의 지능형 Load Balancing
– URL 기반의 Web Server Load Balancing 기능
– URL 기반의 Web Cache Redirect
– HTTP Header 기반의 Web Server Load Balancing
– HTTP Header 기반의 Cache Redirect
* 발전 된 session 유지 기능
– Session 유지를 위한 SSL session ID 기반의 연결 기능
– Session 유지를 위하여 Cookie 기반의 연결 기능


DAM (Direct Access Mode)
- DAM를 사용하지 않는 경우 SLB에 설정되어 있는 SLB의 Real Server가 해당 서비스를 사용하게 되는 경우 그 서버에서의 Traffic은 SLB의 Traffic으로 간주하게 된다.


- 때때로 Real Server로 부터의 Traffic은 Load Balancing의 session ID 전환이 이루어 지지 말아야 하는 경우가 있다. 예로써, User가 Real Server로 직접 서비스를 요청하는 경우 또는 Real Server가 여러 개의 VIP를 지원하게 되는 경우, 그리고 Delayed Binding 이 사용되는 경우가 그러한 경우에 해당 된다.


- 위와 같이 설정을 하게 되면 Server-to-client처리 과정은 모두 클라이언트 포트에서 일어나게 된다.

(앞에서도 언급 하였듯이 server-to-client처리 과정은 보통 서버 포트에서 일어나게 된다)



SLB 관련 L4스위치 개념이해 사이트



출처: https://lxstitch.tistory.com/24 [lxsTiTCh]

반응형