로드 밸런서
4차 산업혁명 시대가 되고 인터넷을 통해 거의 모든 작업들이 처리되고 있습니다. 웹툰부터 시작해서 페이스북 좋아요나 유튜브 스트리밍까지 모든 전자기기가 인터넷을 이용해 통신하고 있습니다. 그로 인해 하나의 서버가 모든 트래픽의 부하를 감당하지 못하는 상황이 오게 됩니다. 이에 따라 분산 시스템을 구축하게 되는데, 쉽게 말해 같은 작업을 하는 여러대의 서버를 띄워서 트래픽을 여러 대의 서버가 분산해서 처리하게 되는 형태입니다. 이때 클라이언트의 요청을 이로간성있게 여러 대의 서버로 분산시켜주는 기술을 바로 로드 밸선싱이라고 합니다.
로드 밸런서는 서버에 가해지는 부하를 분산해주는 장치 또는 기술을 통칭하는 단어로서 클라이언트와 서버 사이에서 한 대의 서버에 부하가 집중되지 않도록 트래픽을 관리해주게 됩니다.
Scale-up / Scale-out
서버를 확장하게 될 경우 두가지 방법이 있습니다.
첫 번째는 Scale-up입니다. Scale-up의 경우 서버 자체의 성능을 올리는 것을 의미합니다. 예를 들면 CPU가 코어가 2개인 서버를 CPU가 4개인 서버로 확장하는 것은 Scale-up을 한 것입니다. 반면 Scale-out의 경우는 본래의 서버와 스펙이 동일하거나 조금 낮은 성능의 서버를 여러 대 증설하여 운영하는 것을 의미합니다. 예를 들면 코어가 2개인 서버를 두대를 사용하여 운영하는 것을 의미합니다.
눈치채셨겠지만 Scale-out으로 서버를 확장하게 된다면 두대의 서버가 부하를 분산하기 위해 로드밸런싱이 필수적으로 요구되게 됩니다.
L4 / L7
네트워크 통신 계층은 크게 일곱개의 계층으로 이루어져 있습니다. 이를 OSI7 계층이라고 부르게 되는데, 각 계층에서 사용되는 장비는 하위 계층의 장비의 기능을 모두 가지고 있고 더욱 정교한 로드 밸런싱이 가능하게 됩니다. 그중 가장 많이 사용하는 로드 밸런서가 4 계층의 로드밸런서인 L4와 7 계층의 로드 밸런서인 L7입니다.
L4 로드밸런서는 네트워크 계층이나 트랜스포트 계층의 정보를 바탕으로 부하를 분산합니다. 즉 IP주소나 포트번호, MAC주소, 전송 프로토콜에 따라 트래픽을 나누는 것이 가능합니다.
반면 L7 로드밸런서의 경우 애플리케이션 계층에서 부하를 분산시키기 때문에 HTTP 헤더, 쿠키 등과 같은 사용자의 요청을 기준으로 트래픽을 분산하는 것이 가능합니다. 쉽게 말해 패킷의 내용을 확인하고 그 내용에 따라 부하를 분배하는 것이 가능한 것입니다.
또한 L7 로드 밸런서는 특정한 패턴을 지닌 바이러스를 감지해 네트워크를 보호하거나 DoS/DDoS와 같은 비정상적인 트래픽을 필터링할 수 있어서 네트워크 보안 분야에서도 활용되고 있습니다.
'Computer Science > Tech' 카테고리의 다른 글
[Tech] IEEE754 부동 소수점(Floating Pointing) (0) | 2020.04.03 |
---|---|
[Tech] 암호화 알고리즘 (0) | 2020.03.29 |
[Tech] Protocol Buffer: Serialization에 관하여, 모두가 JSON을 쓴다고 하여 JSON만이 정답일까? (0) | 2020.01.11 |
[Tech] JWT(Json Wet Token)이란? (0) | 2019.12.16 |
[Tech] MSA(Microservice Architecture)란? (0) | 2019.11.13 |