Load Balancing
로드 밸런싱에 대해서 알아보도록 하겠다.
로드밸런싱이란 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리하여 해결해주는 서비스이다.
서비스 방식
네트워크 상단에 로드밸런서가 존재하여 서버로 들어오는 패킷을 실제서버로 균일하게 트래픽을 부하 분산시킨다. 만약, 실제서버 중 정상적으로 작동하지 않는 경우, 이를 감지해 정상적으로 작동하는 서버로 부하 분산시킨다.
장점
- 고가의 서버로 확장하지 않고 저렴한 비용으로 다수의 서버를 증설해 비용절감 가능
- 1대의 서버 장애가 발생하여도 서비스 중단 없이 다른 서버로 적절히 자동으로 분배하여 서비스가 계속 운용가능하게 할 수 있음
- 추후 사용량이 많아 서버 확장이 되어도 서비스 중단없이 서버 증설이 가능
스케줄링 알고리즘
실제서버에 처리를 분산할 때, 모든 서버로 균등하게 분산하면 스펙이 다른 서버가 존재하는 환경에서는 그 서버에 트래픽이 치우칠 수 있다. 그래서 상황에 맞는 스케줄링 알고리즘을 선택하여 사용을 해야한다.
- RR (Round-Robin) : 실제서버를 처음부터 차례로 선택해가기 때문에 모든 서버로 균등하게 처리가 분산된다.
- WRR(Weighted Round-Robin) : RR 과 같지만 가중치를 두워서 분산 비율을 변경한다. 가중치가 큰 서버일 수록 빈번하게 선택되므로 처리능력이 높은 서버는 가중치를 높게 설정하는 것이 좋다.
- LC(Least-Connection) : 접속 수가 가장 적은 서버를 선택한다. 대부분의 경우 해당 알고리즘을 사용해도 충분하며, 어떤 얼고리즘을 사용하면 좋을지 모를 경우 사용해도 괜찮다.
- WLC(Weighted Least-Connection) : LC 와 같지만 가중치를 둔다. 구체적으로는 (접속수+1)/가중치 가 최소가 되는 서버를 선택하므로 고성능 서버는 가중치를 크게한다.
- SED(Shortest Expected Delay) : 가장 응답속도가 빠른 서버를 선택한다. 물론, 서버에 패킷을 날려 응답시간을 측정하는 것이 아닌 상태가 ESTABLISHED 인 접속수가 가장 적은 서버를 선택한다.
반응형