Playcloud8
개발자도구

로드밸런싱, 트래픽은 여러 서버에 어떻게 나눠질까

2026-08-03  ·  조회 0
방문자가 늘어난 서비스는 서버 한 대만으로는 모든 요청을 감당하기 어려워집니다. 이럴 때 서버를 여러 대로 늘리는 것 자체는 어렵지 않지만, "어떤 요청을 어느 서버로 보낼 것인가"를 결정하는 문제가 새로 생깁니다. 이 역할을 담당하는 것이 로드밸런서입니다. 로드밸런서는 사용자의 요청을 가장 먼저 받아, 뒤에 있는 여러 서버 중 하나로 요청을 전달하는 중간 관문 역할을 합니다. 가장 단순한 분산 방식은 라운드로빈으로, 요청이 들어올 때마다 순서대로 서버를 돌아가며 배정하는 방식입니다. 구현이 간단하지만, 서버마다 처리 속도나 부하가 다르면 특정 서버에 일이 몰릴 수 있다는 한계가 있습니다. 이를 보완하기 위해 현재 처리 중인 연결 수가 가장 적은 서버로 우선 보내는 최소 연결 방식이나, 서버의 성능 차이를 고려해 미리 정한 비율대로 트래픽을 나누는 가중치 기반 방식도 널리 쓰입니다. 어떤 방식을 선택하든 목표는 같습니다. 특정 서버에만 부하가 몰려 응답이 느려지는 일 없이, 여러 서버가 골고루 일하게 만드는 것입니다. 로드밸런싱에서 또 하나 중요한 장치는 헬스체크입니다. 로드밸런서는 주기적으로 각 서버에 짧은 확인 요청을 보내 정상적으로 응답하는지 점검합니다. 만약 특정 서버가 장애로 응답하지 않는다면, 로드밸런서는 그 서버를 분산 대상에서 즉시 제외해 사용자의 요청이 죽은 서버로 전달되지 않도록 합니다. 이 덕분에 서버 한 대에 장애가 생기더라도 전체 서비스는 중단 없이 계속 운영될 수 있습니다. 서버를 새 버전으로 교체할 때도 이 원리가 활용됩니다. 기존 서버 그룹은 그대로 트래픽을 받게 두고, 새 버전을 배포한 서버 그룹을 별도로 준비한 뒤, 로드밸런서가 트래픽을 보낼 대상을 점진적으로 새 그룹으로 옮겨가면 사용자가 서비스 중단을 전혀 체감하지 못한 채로 배포를 완료할 수 있습니다.