하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하등을 고려하여 적절히 분산처리하여 해결해주는 서비스
로드 밸런싱과 로드밸런서를 쉽게 이해하기 위해서 하나의 상황을 예로 들자면 서버가 하나있는데 사용자가 몇십만명이 들어온다고 생각해보자.
이 서버에는 부하가 걸릴것이다. 그래서 서버를 두개로 나누게 되는데
그렇게 한다고 해서 사용자들이 알아서 두개의 서버에 나누어서 들어가지는 않죠. 이런 상황을 방지하기 위해서 서버를 분산하고 부하를 분산하는 작업을 로드밸런싱이라 하고 이러한 작업을 담당하는 장비를 로드밸런서라고 합니다.
요청이 들어오는대로 서버마다 균등하게 요청을 분배하는 알고리즘
server를 순회하면서 서비스하는 알고리즘 입니다.
a,b,c 서버가 있으면 a,b,c,a 순으로 돌면서 부하를 분산하는 방식입니다.
가장 간단하고 이해가 쉬워서 많이 사용하지만 서버간 처리 용량이 다른 경우에는 적합하지 않아서 서버의 성능차이가 크지 않을 때 많이 사용됩니다.
라운드 로빈방식과 유사하지만 각 서버마다 가중치를 두어 우선적으로 갈 곳을 지정합니다. 서버 가중치는 사용자가 지정할 수 도 있고 동적으로 조정되기도 합니다.
최소연결 알고리즘은 서버마다 연결된 커넥션이 몇개인지 체크하여 커넥션이 가장 적은 서버로 요청을 분배하는 방식
리스트 커넥션방식으로 분배하지만 서버 가중치에 따라 요청을 더 분배하기도 하고 덜 분배하기도 합니다. 서버 풀에 존재하는 서버들의 사양이 일관적이지 않고 다양한 경우 효과적입니다.
✅ Fatest Response Time
응답우선방식은 서버가 요청에 대해 응답하는 시간을 체크하여 가장 빠른 서버로 요청을 분배하는 방식
✅ source Hash
사용자의 IP를 해싱한 후 그 결과에 따라 서버로 요청을 분배하는 방식으로 사용자의 IP는 고정되어 있기 때문에 항상 같은 서버로 연결된다는 보장을 받을 수 있습니다.
어떤 주소를 다루는가에 따라서 스위치가 구분됨
❗️상위계층으로 갈수록 섬세한 부하분산이 가능하지나 가격이 비싸지고
❗️하위계층으로 갈수록 간단한 부하분산이 가능하고 가격이 저렴해집니다.
연결된 네트워크의 패킷이 L3로 들어오게 되면 목적지의 IP주소를 확인하여 해당 IP에 연결된 포트로 패킷을 전송함
즉 연결된 장비들의 전송하려는 목적지를 판단하여 라우팅 기능을 사용하는 네트워크 장비임
TCP, UDP 등 패킷의 헤더를 사용하여 VIP를 구성하고 IP, PORT를 통한 session로드밸런싱 기능을 사용하여 분배함
불필요한 트랜잭션 차단, 네트워크 침입에 대한 부분에 한하여 설정 가능함
📑 References
https://deveric.tistory.com/91
http://www.incodom.kr/Load_Balancing#h_8803eb7cc2085ea2ada358bb6cb03e10
https://jesc1249.tistory.com/26
https://linkhub.tistory.com/77
https://siran.tistory.com/205