로드밸런싱(부하 분산)이란? 기초 개념 정리

트래픽이 갑자기 몰려도 사이트가 멈추지 않는 이유, 로드밸런서의 동작 원리를 정리했습니다.

⚖️

로드밸런싱(부하 분산)이란

하나의 서버에 몰릴 수 있는 트래픽을 여러 대의 서버로 골고루 나눠주어 서비스가 끊기지 않고 빠르게 응답하도록 하는 기술입니다.

방문자가 몰리는 웹사이트를 서버 한 대로만 운영하면 트래픽이 늘어날수록 응답 속도가 느려지거나 서버가 다운될 위험이 커집니다. 로드밸런서는 여러 대의 서버(서버 풀) 앞에서 요청을 받아 그때그때 가장 적절한 서버로 나눠 전달해, 특정 서버 한 대가 다운되어도 나머지 서버가 서비스를 계속 이어갈 수 있게 해줍니다.

🔁

라운드로빈 방식

들어오는 요청을 서버 목록 순서대로 하나씩 돌아가며 배정하는 가장 단순하고 널리 쓰이는 분산 방식입니다.

서버가 A, B, C 세 대라면 요청이 들어올 때마다 A → B → C → A 순서로 차례차례 배정합니다. 구현이 간단하고 모든 서버 성능이 비슷할 때 효과적이지만, 서버마다 처리 능력이나 현재 부하가 다른 상황은 고려하지 못한다는 한계가 있습니다.

📉

최소 연결 방식(Least Connections)

현재 처리 중인 연결 수가 가장 적은 서버, 즉 가장 한가한 서버로 새 요청을 보내는 방식입니다.

단순히 순서대로 배정하는 라운드로빈과 달리 각 서버의 실시간 부하 상태를 반영하기 때문에, 요청마다 처리 시간이 크게 차이 나는 서비스(예: 파일 업로드처럼 오래 걸리는 작업이 섞여 있는 경우)에서 더 균형 잡힌 분산이 가능합니다.

🔑

IP 해시(고정 세션) 방식

클라이언트의 IP 주소를 기준으로 항상 같은 서버로 연결해, 로그인 세션처럼 같은 서버에 계속 접속해야 하는 상황을 지원합니다.

로그인 정보를 서버 한 대의 메모리에만 저장하는 구조(세션 고정, Sticky Session)에서는 같은 사용자의 요청이 매번 다른 서버로 가면 로그인이 풀리는 문제가 생길 수 있습니다. IP 해시 방식은 클라이언트 IP를 계산해 항상 같은 서버로 보내줌으로써 이런 문제를 피합니다. 다만 여러 사용자가 같은 공용 IP(예: 회사 네트워크)를 쓰면 특정 서버에 부하가 몰릴 수 있다는 단점도 있습니다.

🗂️

L4 로드밸런서와 L7 로드밸런서의 차이

전송 계층의 IP·포트 정보만 보고 분산하는 L4 방식과, 응용 계층의 URL·헤더·쿠키까지 보고 정교하게 분산하는 L7 방식으로 나뉩니다.

L4(전송 계층) 로드밸런서는 패킷 내용을 들여다보지 않아 처리 속도가 빠르지만 단순한 기준으로만 분산할 수 있습니다. 반면 L7(응용 계층) 로드밸런서는 요청 URL이 "/image"인지 "/api"인지, 어떤 브라우저에서 왔는지까지 파악해 그에 맞는 서버군으로 정교하게 나눠 보낼 수 있어, 마이크로서비스처럼 기능별로 서버를 나눈 구조에 특히 유용합니다.

❤️‍🩹

헬스체크(상태 확인)

로드밸런서가 주기적으로 각 서버에 신호를 보내 정상 작동 여부를 확인하고, 장애가 감지된 서버는 자동으로 분산 대상에서 제외합니다.

일정 주기로 서버에 간단한 요청(핑이나 특정 상태 확인용 URL 호출)을 보내 정상 응답이 오는지 확인하며, 응답이 없거나 오류가 반복되면 해당 서버를 일시적으로 서버 풀에서 제외해 사용자에게 오류 화면이 노출되는 것을 막습니다. 이후 서버가 복구되면 다시 자동으로 분산 대상에 포함시킵니다.

🌍

로드밸런서와 CDN의 관계

로드밸런서가 같은 데이터센터 안의 서버들에 트래픽을 나눈다면, CDN은 전 세계 여러 지역의 엣지 서버로 트래픽을 분산하는 더 넓은 개념입니다.

둘 다 "트래픽을 나눠 처리한다"는 점은 같지만, 로드밸런서는 보통 한 곳에 모인 서버 그룹 안에서의 분산을 담당하고, CDN은 지리적으로 떨어진 여러 지역에 요청을 분산합니다. 실제 대규모 서비스에서는 CDN이 먼저 지역별로 트래픽을 나누고, 각 지역 안에서 다시 로드밸런서가 서버별로 세부 분산을 담당하는 식으로 함께 사용됩니다.

📈

로드밸런싱과 오토스케일링의 결합

트래픽이 갑자기 몰릴 때 서버 대수를 자동으로 늘리는 오토스케일링과 로드밸런서를 결합하면, 사람이 개입하지 않아도 트래픽 변화에 대응할 수 있습니다.

클라우드 환경에서는 평소보다 트래픽이 급증하면 오토스케일링이 새 서버 인스턴스를 자동으로 추가하고, 로드밸런서가 새로 생긴 서버를 곧바로 분산 대상에 포함시킵니다. 반대로 트래픽이 줄어들면 불필요한 서버를 자동으로 줄여 비용을 절약할 수 있어, 두 기술은 클라우드 인프라 운영에서 짝을 이뤄 쓰이는 경우가 많습니다.

지역 단위로 트래픽을 나누는 CDN도 함께 보면 좋아요

로드밸런서가 서버 그룹 안에서 트래픽을 나눈다면, 전 세계 지역별로 트래픽을 나누는 기술도 있습니다.CDN(콘텐츠 전송 네트워크)이란? 기초 개념 정리에서 이어서 확인해보세요.

대역폭·지연시간 개념이 헷갈린다면

서버 성능을 이야기할 때 자주 등장하는 대역폭, 지연시간, 처리량의 차이가 궁금하다면대역폭·지연시간·처리량 차이 완전정복도 참고해보세요.

자주 묻는 질문

로드밸런서 자체가 고장 나면 어떻게 되나요?

로드밸런서가 단일 장애점이 되지 않도록, 실제 서비스에서는 로드밸런서 자체도 이중화(여러 대를 두고 하나가 죽으면 다른 하나가 대신 처리)해서 운영하는 경우가 일반적입니다.

작은 웹사이트에도 로드밸런싱이 필요한가요?

서버 한 대로 충분히 감당되는 트래픽이라면 당장은 필요하지 않습니다. 다만 방문자가 늘어나 서버를 여러 대로 늘리는 시점부터는 로드밸런서 없이는 트래픽을 나눠 받을 방법이 없기 때문에 필수적인 요소가 됩니다.