-
HAProxy (Hight Availability) 중 Load Balancer 개념이것저것 2020. 5. 23. 16:29반응형
음 과제로 HAProxy 중에 로드밸런서 라는것을 조사 하라는 과제가 나왔는데
이 부분에 대해서 잘 몰랐던 나는 거의 생소한 내용이였습니다. 그래서 이번에
조사하면서 정리한 내용을 간단하게 포스팅 하고자합니다
인용 , 참조
(https://d2.naver.com/helloworld/284659)
https://en.wikipedia.org/wiki/HAProxy
https://www.nginx.com/resources/glossary/load-balancing/
https://www.nginx.com/resources/glossary/layer-7-load-balancing/
https://nesoy.github.io/articles/2018-06/Load-Balancer
HAProxy란
HAProxy는 여러 서버에 걸쳐 요청을 분산시키는 TCP 및 HTTP 기반 응용 프로그램을위한 고 가용성로드 밸런서 및 프록시 서버를 제공하는 무료 오픈 소스 소프트웨어입니다. C로 작성되었으며 빠르고 효율적으로 유명합니다.
HAPROXY 안에 있는 기술중
Load Balancer 이란
로드 밸런싱이란 부하 분산을 위해서 가상(virtual) IP를 통해 여러 서버에 접속하도록 분배하는 기능을 말한다.
Load Balacner 에 기능(장점)
- 여러 서버에 클라이언트 요청 또는 네트워크로드를 효율적으로 분배
- 온라인 상태 인 서버로만 요청을 보내 고 가용성 및 안정성 보장
- 수요에 따라 서버를 더하거나 빼는 유연성 제공
로드 밸런싱이란?
로드 밸런싱이란 부하 분산을 위해서 가상(virtual) IP를 통해 여러 서버에 접속하도록 분배하는 기능을 말한다. 로드 밸런싱에서 사용하는 주요 기술은 다음과 같다.
- NAT(Network Address Translation): 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기이다.
- DSR(Dynamic Source Routing protocol): 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념이다.
- Tunneling: 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념으로, 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다.
일반적인 로드 밸런스 작동방식
로드 밸런스 알고리즘종류
- Hashing algorithm.
- Round-robin algorithm.
- Weighted round-robin algorithm (가중치 Round-robin)
- Least connection algorithm.
- Weighted least-connectin algorithm.
로드밸런서 동작방식(Mode 별)
Bridge/Transparent Mode
사용자가 서비스를 요청하면 L4로 전달된 목적지 IP 주소를 real server IP 주소로 변조하고 MAC 주소를 변조해서 목적지를 찾아가는 방식이다.
- 요청 전달 시 변조
- 사용자 > L4 > NAT(IP/MAC 주소 변조) > real server - 사용자가 L4를 호출하면 중간에 NAT가 목적지 IP 주소를 real server IP 주소로 변조하고 MAC 주소도 변조한다. - 응답 전달 시 변조
- real server > NAT > L4 > 사용자 - real server에서 L4를 거치면서 출발지(source) IP 주소를 L4 가상 IP 주소로 변조한다. 동일 네트워크 대역이므로 MAC 주소는 변조하지 않는다.
Router Mode
Bridge/Transparent Mode와 유사하지만 출발지(source) MAC 주소도 변조된다.
One Arm Mode
사용자가 real server에 접근할 때 목적지 IP는 L4 스위치 IP를 바라본다. L4에 도달하면 L4가 클라이언트에게 받은 목적지 IP 주소를 L4 IP 주소에서 real server IP와 real server MAC 주소로 변조한다. 되돌아가는 IP는 L4의 IP pool의 IP 주소로 변조한다.
DSR (Direct Server Return) Mode
사용자가 real server에 접근할 때 출발지와 목적지의 IP 주소를 변조하지 않고, L4에서 관리하는 real server의 MAC 주소 테이블을 확인해서 MAC 주소만 변조한다.
L4 로드밸런서 vs L7로드 밸런서 차이점
L4로드밸런서는 메시지의 내용에 관계없이 메시지 전달을 처리 하는 중간 전송 계층 에서 작동 합니다
레이어 계층에 따른 로드 밸런싱 작동 방식
L2
- Mac주소를 바탕으로 Load Balancing합니다.
L3
- IP주소를 바탕으로 Load Balancing합니다.
L4
- Transport Layer(IP와 Port) Level에서 Load Balancing을 합니다.
- TCP, UDP
L7
- Application Layer(사용자의 Request) Level에서 Load Balancing을 합니다.
- HTTP, HTTPS, FTP
필자가 이번에 공부하면서 주로 L4 와 L7 계층 방식을 주로 사용한다고 들었는데
L4와 L7 에 대한 차이점에 대해서 간단하게 설명하자면은
Layer 7로드 밸런싱은 패킷 기반 Layer 4로드 밸런싱보다 CPU를 많이 사용하지만 최신 서버에서 성능이 저하되는 경우는 거의 없습니다. Layer 7로드 밸런싱을 통해 로드밸런서 는보다 현명한로드 밸런싱 결정을 내리고 컨텐츠에 최적화 및 변경 사항 (예 : 압축 및 암호화)을 적용 할 수 있습니다. 버퍼링을 사용하여 업스트림 서버에서 느린 연결을 오프로드하여 성능을 향상시킵니다.
반응형'이것저것' 카테고리의 다른 글