나의 개발 일상 기록
[트래픽 분산처리] 로드밸런싱(Load Balancing) 본문
LOAD BALANCING
1. 로드밸런싱이란?
트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율을 증가, 부하량, 속도저하 등 고려하여 분산처리하여 해결해주는 서비스입니다.
로드밸런싱(Load Balancing)을 해주는 소프트웨어 혹은 하드웨어 장비를 로드밸런서(Load Balancer)라고 합니다.
동작 방식
1. 네트워크 상단에 L4 스위치 가상서버가 존재하여 서버로 들어오는 패킷을 리얼 서버로 균일하게 트래픽을 분산
2. 서버에 장애가 발생하면 이를 감지하여 정상적으로 작동하는 서버로 트래픽을 분산
2. L4 Load Balancing
L4는 L4 계층에서 동작하는 Load Balancer 이므로 네트워크 계층이나 트랜스포트 계층의 정보를 바탕으로 로드를 분산합니다. 다시 말해,, IP 주소나 Port번호, MAC 주소, 전송 프로토콜 등에 따라 트래픽을 나누고 분산처리 하는 것이 가능합니다.

L4 Load Balancing 방법
1. Round Robin(라운드 로빈 기반)
- 세션을 각 서버에 순차적으로 맺어주는 방식입니다. 단순히 순서에 따라 세션을 할당하기 때문에 경우에 따라 같은 처리량을 보장받지는 않습니다.
2. 가중치 및 비율 할당 방식
- 서버마다 비율을 설정해두고 해당 비율 만큼 세션을 맺어주는 방식입니다. 특정 서버의 성능이 월등히 뛰어나다면 해당 서버로 세션을 많이 맺어주도록 가중치를 설정하고 나머지 low급의 서버들은 적은 세션이 맺어질 수 있도록 가중치를 설정합니다.
3. Least Connection(최소 연결 기반)
- 가장 적은 세션을 가진 서버로 트래픽을 보내는 방식입니다.
4. Response Time(응답 시간 기반)
- 가장 빠른 응답 시간을 보내는 서버로 트래픽을 우선 보내주는 방식입니다. 각 서버들의 가용 가능한 리소스와 성능, 처리중인 데이터 양이 다를 경우 적합한 방식입니다.
5. Hash(해시 기반)
- 특정 클라이언트는 특정 서버로만 할당 시키는 방식입니다. 특정 IP 주소 또는 Port의 클라이언트들은 특정 서버로만 세션이 맺어지도록 합니다. 경로가 보장되며 접속자 수가 많을수록 분산 및 효율이 뛰어납니다.
6. Bandwidth(대역폭 기반)
- 서버들과의 대역폭을 고려하여 트래픽을 분산시키는 방법입니다.
3. L7 Load Balancing
L7 Load Balancer는 L4 Load Balancer의 기능을 포함하는 것 뿐만 아니라 OSI 7계층의 프로토콜을 바탕으로도 분산 처리가 가능합니다.

L7 Load Balancing 방법
1. URL Switching
- 특정 하위 URL들은 특정 서버로 처리하는 방식입니다. 특정 URL을 가진 주소들은 서버가 아닌 별도의 스토리지에 있는 객체 데이터로 바로 연결되도록 구성할 수 있습니다.
2. Context Switching
- 클라이언트가 요청한 특정 리소스에 대해 특정 서버 등으로 연결 해줄 수 있습니다. 예를 들어 이미지 파일에 대해서는 확장자를 참조하여 별도로 구성된 이미지 파일이 있는 서버/스토리지로 직접 연결해줄 수 있습니다.
3. Persistenve with Cookies(쿠키 지속성)
- 쿠키 정보를 바탕으로 클라이언트가 연결 했었던 동일한 서버에 계속 할당해 주는 방식입니다.
4. 로드밸런싱 장/단점
장점
- 로드밸런싱을 이용하면 한 서버가 다운되더라도 이중화시킨 다른 서버에서 서비스를 지속하여, 사용자들이 문제를 인지하지 못하게 할 수 있습니다.
- 단지 노드를 추가하는 것 만으로 서비스가 확장성을 가질 수 있습니다.
단점
- 로드밸랜서를 사용할 때 어려운 문제 중 하나는 세션 데이터를 관리하는 것입니다. 이러한 문제를 해결하기 위해 세션을 고정(session sticky)를 합니다. 그러나 고정된 세션의 노드에 장애가 발생하면 고정한 의미가 없어집니다.
'WEB' 카테고리의 다른 글
| Retrofit (0) | 2021.09.28 |
|---|---|
| HTTP 상태 코드 (0) | 2021.05.21 |
| [Spring] 보안 요소 관련 Coding (0) | 2021.05.06 |