로드밸런싱
로드밸런싱 (Load Balancing) 은 '부하분산'이라고도 하며 두 대 이상의 컴퓨터에 작업 부하를 분산하는 것입니다.
임영웅 콘서트 티켓을 예매할 때 한꺼번에 많은 트래픽이 몰려 서버가 그 트래픽을 감당하기 힘들어 부하를 받게 된다.
이를 방지하기 위해 동일한 서버를 여러 대 구비시켜 트래픽을 분산처리할 수 있다.
하지만 단순히 여러대의 서버를 구비한다고 모든 서버에 적절히 트래픽을 분산시킬 수 있는 것이 아니다.
여러대의 서버 중 트래픽이 몰리는 서버가 존재할 수있고 이렇게 되면 서비스 장애가 생길 가능성이 커진다.
즉, 한 서버에 트래픽이 몰리는 것을 방지하고 여러 서버에 적절히 분산시켜주는 기술이 로드밸런싱이다.
로드밸런싱의 종류
로드밸런싱에는 L4 로드밸런싱과 L7 로드밸런싱이 많이 활용된다.
우리가 보통 OSI 7계층이라고 부르는 계층에는 제일 아래인 물리계층부터 응용계층까지 있고
그 중 4번째 계층인 전송계층을 L4 / 7번째 계층인 응용계층을 L7 라고 합니다.
L4 로드밸런싱
L4는 전송계층 프로토콜의 헤더를 부하 분산에 이용하기 때문에 붙은 접두사입니다.
트래픽을 전송계층의 로드밸런서가 받아 서버들에게 적절히 나누어 주며
L4 로드 밸런서는 네트워크 계층이나 전송 계층의 정보를 바탕으로 로드를 분산합니다.
L7 로드밸런싱
L7도 마찬가지로 트래픽을 응용계층의 로드밸런서가 받아 서버들에게 나누어 줍니다.
L7 로드 밸런서는 애플리케이션 계층에서 로드를 분산하는데 패킷의 내용을 확인하고
패킷 내용에 따라 로드를 특정 서버에 분배하는 것이 가능합니다.
또한, 특정 패턴의 바이러스를 감지해 네트워크 보호가 가능하고, 디도스같은 공격을 차단해 보안 분야에서도 활용된다.
로드밸런싱의 기법
1. 라운드 로빈 (Round Robin)
순차적으로 돌아가며 세션을 할당해 주는 방식.
요청이 오면 단순히 그 요청을 순서대로 서버에 분배해 주는데 첫 번째 요청은 첫 번째 서버, 두 번째 요청은 두 번째 서버에 할당 해준다.
로드밸런싱 대상 서버의 스펙이 동일하고, 처리 시간 혹은 세션지속시간이 짧은 애플리케이션의 경우 이러한 방식이 적합합니다.
2. 가중 라운드 로빈 (Weighted Round Robin)
각 서버마다 가중치를 설정해두고 해당 가중치만큼 세션을 할당해 주는 방식입니다.
특정 서버의 스펙이 좋다면 해당 서버에 가중치를 좀 더 주어 세션을 더 많이 할당해주고,
스펙이 좋지 않은 서버에는 가중치를 적게 두어 세션을 적게 할당해 주는 방식입니다.
3. 최소 연결 (Least Connection)
가장 적게 연결(가장 적은 세션)되어 있는 서버에 세션을 할당해 주는 방식입니다.
서버에 분배된 세션들이 일정하지 않은 경우에 적합하며 부하를 줄이는 측면에서 많이 사용됩니다.
4. 최소 응답 (Least Response Time)
서버의 응답시간을 고려하여 세션을 할당해 주는 방식입니다.
가장 짧은 응답 시간을 보이는 서버에 우선적으로 세션을 할당해 주는 방식입니다.
5. 해시 (Hash)
클라이언트의 IP 주소를 해시 함수를 통해 특정 서버에 세션을 할당해 주는 방식
사용자가 항상 동일한 서버로 연결되는 것을 보장한다.
특정 IP주소나 포트에서 접속량이 특히 많을 때 관리가 편한 방식입니다.
'CS > 네트워크' 카테고리의 다른 글
대칭키, 비대칭키 (0) | 2024.06.09 |
---|---|
TCP/IP 흐름제어, 혼잡제어 (0) | 2024.06.07 |
유니캐스트, 브로드캐스트, 멀티캐스트 (0) | 2024.06.03 |
3-Way HandShake & 4-Way HandShake (0) | 2024.06.03 |
TCP & UDP (0) | 2024.05.29 |