로드밸런싱
의미
서버가 처리해야할 업무 혹은 요청(Load)을 여러대의 서버로 분산시켜(Balancing) 처리하는 것
서버의 규모가 커지고 Scale-out의 구조가 되었을 때, 특정 서버에만 부하가 집중될 수 있음. 그것을 막기 위해 앞단에서 요청을 받아서 뿌려주는 역할을 하는 서버.
사용자와 서버 그룹 사이에 위치하며 보이지 않는 촉진자 역할을 하여 모든 리소스 서버가 동일하게 사용되도록 하는 디바이스
장점
가용성(availability) - 서버의 문제를 감지하고 대처해줌
애플리케이션 가동 중지 없이 애플리케이션 서버 유지 관리 또는 업그레이드 실행
백업 사이트에 자동 재해 복구 제공
상태 확인을 수행하고 가동 중지를 유발할 수 있는 문제 방지
확장성(scalability) - 여러 서버로 네트워크 트래픽을 보낼 수 있음
한 서버에서 트래픽 병목 현상 방지
필요한 경우 다른 서버를 추가하거나 제거할 수 있도록 애플리케이션 트래픽을 예측
안심하고 조정할 수 있도록 시스템에 중복성을 추가
보안(security)
클라이언트가 서버그룹에 직접적으로 접근 불가
트래픽 모니터링 및 악성 콘텐츠 차단
공격 트래픽을 여러 백엔드 서버로 자동으로 리디렉션하여 영향 최소화
추가 보안을 위해 네트워크 방화벽 그룹을 통해 트래픽 라우팅
성능(performance)
서버 간에 로드를 균등하게 배포하여 애플리케이션 성능 향상
클라이언트 요청을 지리적으로 더 가까운 서버로 리디렉션하여 지연 시간 단축
물리적 및 가상 컴퓨팅 리소스의 신뢰성 및 성능 보장
게임 서버에서의 로드밸런스 사용
WebAPI의 게임 서버에서도 로드밸런스를 사용함
클라이언트의 요청은 1차적으로 로드밸런스가 받고, 로드밸런스는 WebAPI서버에 요청을 전달함. WebAPI서버는 로드밸런스에게 응답을 보내고, 로드밸런스는 응답을 클라이언트에게 전달함
많은 트레픽의 부하를 분산시켜줄 수 있음. 로드밸런스는 비교적 단순한 작업만(연결되는 상대에게 값을 보내주는 작업) 하면되기에 더 많은 트레픽을 감당할 수 있음
https를 통한 인증은 로드밸런스가 담당하고, WebAPI 서버는 로드밸런스와 http로 통신할 수 있음. https일 때 해야하는 보안 점검을 줄일 수 있어서 WebAPI 서버는 보다 빠른(cpu 사용 5%쯤 절감) 응답을 할 수 있음
참고문헌
Last updated