개발놀이터

면접 준비 : 로드 밸런싱 본문

CS 지식/면접준비

면접 준비 : 로드 밸런싱

마늘냄새폴폴 2023. 3. 19. 03:40

Q. 로드 밸런싱에 대해서 설명해주세요
A. 로드 밸런싱은 트래픽을 적절히 서버에 분담해주는 기술입니다. 구현한 알고리즘은 정적 로드 밸런싱 알고리즘과, 동적 로드 밸런싱 알고리즘이 있습니다. 정적 알고리즘은 옆 서버의 상태와 성능을 고려하지 않고 순서에 따라 트래픽을 분배한다는 특징이 있습니다. 비효율적으로 보이지만 개발이 단순하다는 장점이 있습니다. 정적 알고리즘에는 라운드 로빈, 가중치에 기반한 라운드 로빈, IP Hash 가 있습니다. 동적 알고리즘은 가용성, 상태, 작업상황에 맞춰 트래픽을 분배한다는 특징이 있습니다. 굉장히 효율적이지만 구현이 까다롭고, 오버헤드가 발생할 수 있다는 단점이 있습니다. 동적 알고리즘에는 Least Connection, Weighted Least Connection, Weighted Response Time, Resource-Based 알고리즘이 있습니다. 

-----------이 이상은 안물어볼 가능성이 농후합니다----------

Q. 각각의 알고리즘에 대해서 설명해주세요 (사실 이거까지 물어보지 않을듯 싶지만 정리함)
A. 라운드 로빈은 DNS의 리스트 순서대로 트래픽을 분배합니다. 가중치 기반 라운드 로빈은 기존 라운드 로빈의 특성과 더불어 각각의 서버가 처리할 수 있는 양에 따라 트래픽을 분배합니다. IP Hash는 요청이 들어온 IP를 해싱하여 정확한 위치에 도달하는 것을 보장합니다. Least Connection은 로드 밸런서가 각 서버의 연결이 가장 적은 서버에 트래픽을 분배합니다. Weighted Least Connection은 기존 Least Connection의 특성과 더불어 가중치를 기반한 트래픽 분배를 합니다. Weighted Response Time은 로드 밸런서가 각 서버까지 응답시간을 체크해서 가장 빨리 응답하는 서버에 트래픽을 보냅니다. Resource-Based는 로드 밸런서가 각 서버의 CPU상황과 메모리 상황을 고려하여 가장 최적의 서버에 트래픽을 분배합니다. 

Q. L4 로드 밸런싱과 L7 로드 밸런싱에 대해서 설명해주세요 (이것도 물어볼지 모르겠으나 정리함)
A. L4 로드 밸런싱은 OSI 7계층중에 4계층 전송 계층에서 작동하는 로드 밸런싱으로 메세지를 면밀히 관찰하지 않고, decrypt하지 않은 메세지를 분배하기 때문에 매우 빠르고, 안전성이 높다는 특징이 있습니다. L4 로드 밸런싱은 패킷 레벨의 트래픽을 밸런싱할때 효과적입니다. L7 로드 밸런싱은 OSI 7계층 중 7계층인 애플리케이션 층에서 동작하는 로드 밸런싱으로 메세지를 면밀히 관찰하고 decrypt를 진행하기 때문에 성능적으로 L4 로드 밸런싱보다 딸린다는 단점이 있습니다. 하지만 쿠키나, 세션, URL 등을 보고 각 특징에 맞는 서버로 보낼 수 있고 특별한 패턴을 보이는 바이러스를 사전에 예방할 수 있기 때문에 보안적으로는 훌륭하다는 장점이 있습니다.