로드 밸런싱(Load Balancing)
Q. 로드 밸런싱에 대해 설명해주세요.
로드밸런싱은 서버에 가해지는 부하를 분산시키는 기술입니다. 예를 들어, 식당에서 손님들을 여러 테이블에 적절히 분배하는 것처럼, 사용자가 웹사이트에 접속할 때, 현재 가장 여유있는 서버로 해당 요청을 전달하여 들어오는 트래픽을 여러 서버에 고르게 분산시켜주는 것입니다. 로드 밸런싱의 주요 알고리즘은 다음과 같습니다.
라운드 로빈(Round Robin): 요청을 순차적으로 각 서버에 균등하게 분배합니다.
가중치 기반(Weighted): 서버의 처리 능력에 따라 가중치를 두어 분배합니다.
최소 연결(Least Connection): 현재 연결이 가장 적은 서버에 새로운 요청을 분배합니다.
IP 해시(IP Hash): 사용자의 IP 주소를 기반으로 특정 서버에 요청을 분배합니다.
Q. L4와 L7 로드 밸런싱의 차이는 무엇인가요?
L4 로드밸런서는 마치 우체부가 주소만 보고 편지를 배달하는 것 처럼 IP와 포트 정보만을 보고 부하를 분산합니다. 반면 L7 로드밸런서는 우체부가 편지의 내용까지 보고 더 적절한 수신자에게 전달하는 것 처럼HTTP 헤더, URL 등 더 상세한 정보를 보고 분산합니다. 예를 들어, 쇼핑몰 서비스에서 L7 로드밸러서를 사용하면 이미지 처리가 필요한 요청은 이지미 처리에 특화된 서버로, 결제 관련 요청은 보안이 강화된 서버로 보낼 수 있습니다. L4는 이런 섬세한 분배는 어렵지만 더 빠른 처리가 가능합니다. L4 로드밸런서는 네트워크 계층에서 동작하기 때문에 TCP/UDP 프로토콜의 정보를 기반으로 로드밸런싱을 수행합니다. 여기서 중요한 부분은 패킷이 로드밸러서를 통과할 때 IP 주소를 변환해주는 기술인 NAT(Network Address Translation)을 사용하는 것입니다.
Q. 로드 밸런서의 장애 대비는 어떻게 하나요?
로드밸러서 자체가 장애가 나면 전체 서비스가 중단 될 수 있습니다. 이를 대비하기 위해 보통 로드밸런서를 이중화하여 구성합니다. Active-Standby 방식으로 구성하면, 주 로드밸러서에 문제가 생겼을 때 대기 중이던 보조 로드밸런서가 즉시 그 역할을 대신하게 됩니다. 더 안전한 구성을 원한다면 Active-Active 방식을 사용할 수 있습니다. 두 로드밸러서가 동시에 작동하면서 서로를 감시하고, 한쪽에 문제가 생기면 나머지 하나가 모든 부하를 처리하는 방식입니다. 이런 구성은 비용이 더 들지만, 중요한 서비스에서는 필수적인 구성이라고 할 수 있습니다.
Last updated