매일메일을 통한
하루 CS 공부하기
로드 밸런싱이란 애플리케이션을 지원하는 리소스 풀에 들어오는 네트워크 트래픽(들어오는 요청)을 균등하게 분산하는 것을 의미한다.
이를 수행하는 로드 밸런서는 애플리케이션 서버 앞단에 위치하며 클라이언트 요청을 지시하고 제어한다.
이를 통해서 애플리케이션의 가용성, 확장성, 보안 및 성능을 확보할 수 있다.
로드밸런싱 알고리즘
1. Round Robin
모든 요청이 순서대로 처리되는 방식이다.
모든 서버의 처리 능력이 동등하고, 요청의 고른 분산이 중요한 경우 고려할 수 있음.
장점 : 구현이 쉬우며 고른 분산을 보장할 수 있다
단점 : 서버 부하나 response time을 고려하지 않고 서버 처리 능력이 다른 경우 비효율적임
2. Weighted Round Robin
각 서버는 처리 능력과 가용 자원에 따라 가중치를 할당받게 된다.
라운드 로빈 방식을 사용하되, 가중치가 높은 서버는 가중치에 비례하여 상대적으로 더 많은 요청을 받게 된다.
라운드 로빈 방식의 단점 개선 : 각 서버의 처리 능력 고려
하지만, 여전히 서버의 상태를 고려하지 않는 방식이라는 점을 유의해야한다.
3. Least Connections
각 서버의 활성 연결 수를 모니터링하고 있는 경우에 사용 가능
[가장 적은 활성연결이 존재하는 서버에게 요청을 전달하는 방식]
각 서버의 처리 능력이 다른 경우에는 적합하지 않을 수도 있다.
처리 능력이 큰 서버는 상대적으로 활성 연결을 더욱 많이 수립할 수 있기 때문에, 각 서버의 처리 능력이 다른 경우에는 적합하지 않을 수 있다.
각 서버의 처리 능력이 비슷하지만 특정 이유로 한 서버에 동시 연결 수가 많아지는 상황이 존재하는 경우 고려!
Weighted Least Connections : 로드밸런싱 대상에 상대적으로 처리 능력이 큰 서버가 존재하는 경우 고려
4. Least Response time
각 서버의 응답 시간을 모니터링하고 있는 경우 사용. 응답 시간이 빠른 서버에 요청을 전달하는 방식이다.
응답 시간을 기반으로 하기 때문에 서버의 부하 상태, 활성 연결 수와 같은 다른 요소들을 고려해야 하는 경우에는 적합하지 않다.
5. IP Hash
클라이언트 요청의 IP를 기반으로 요청을 전달한다.
IP를 이용해 구한 해시값을 기반으로 요청을 전달할 서버를 결정한다.
클라이언트와 서버 간의 친화성 유지에 초점을 맞춘 방식으로 클라이언트의 상태 관리에 용이하다는 장점이 있지만, 상황에 따라 부하가 균등하게 이루어지지 않는다는 단점이 있다.
참고
https://www.maeil-mail.kr/question/115
'Back-end' 카테고리의 다른 글
[Back-End] Cache Aside (Lazy Loading)이란? (0) | 2025.02.03 |
---|---|
[DataBase] Transaction - ACID란? (0) | 2025.02.03 |
[Back-End] DB Replication이란 무엇인가. (0) | 2025.01.24 |
[Back-End] HTTPS란 정확히 무엇일까? (0) | 2025.01.21 |
[Back-End] 리버스 프록시 vs 포워드 프록시 (0) | 2025.01.13 |