Load Balancer
로드밸런서란 이름 그대로 부하를 분산해주는 기술이다. 쉽게 예를 들어 보면 어느 한 서비스가 있는데 평소에는 이 서비스를 이용하는데 큰 불편함이 없지만 만약 이 서비스에서 좋은 이벤트를 한다고 생각하면 갑자기 트래픽이 엄청나게 증가할것이다.
그러면 클라이언트는 이 서비스를 이용하는데 큰 불편함을 느낄 수 밖에 없다. 이 때 이러한 문제점을 해결하기 위해 로드 밸런서를 이용해 한 서버에 부하된 트래픽을 다른 서버에 분산 처리해주는 장치 또는 기술이다.
Scale
서버 한대에 트래픽이 과부하 될경우 해결할 수 있는 방법은 Scale을 사용해야 한다. Scale에는 여러 종류가 있고 이번 포스팅에서는 간단하게만 알아보도록 한다.
- Scale-up: 서버의 스팩을 올린다.
- Scale-out: 분산환경 똑같은 기능을 여러개의 시스템에 분산 시켜놓는 것 고가용성을 제공할수있음 이 때 로드밸런서를 이용해 부하 분산 처리를 한다.
- Scale-in: Scale-out 한 환경을 다시 줄이는것
기본적인 Scale에 개념은 위와 같다. 하지만 만약 트래픽이 커지면 Scale-out을 직접 하고 또 트래픽이 줄어들면 Scale-in을 일일이 하는것은 불편하고 수고스러운 일이다. 그래서 클라우드 환경을 사용하게 된다면 Auto Scale 라는것을 사용할 수 있다.
여기에 대한 내용은 다음 포스팅 때 자세히 설명하겠다.
Load Balancing 종류
Load Balancing 이란 여러 대의 서버를 두고 서비스를 부하 분산 하기 위해 필요한 기술이다.
OSI 7계층을 기준으로 Load Balancing에 종류가 조금씩 달라진다. 상위 계층일수록 부하분산을 좀 더 섬세하게 할 수 있다.
L2
- 2계층에서 정의된 정보를 바탕으로 로드 밸런싱 한다.
- 2계층에 MAC 주소를 이용한다.
- L4,L7에 비해 상대적으로 제한적이다.
L4
- 4계층과 3계층에 정보를 바탕으로 부하를 분산한다.
- IP주소와 port 번호를 이용한다.
- L2보다는 비용적으로 비싸지만 부하 분산은 더 섬세하다.
L7
- 가장 상위층인 7계층에 정보를 바탕으로 부하를 분산한다.
- 가장 비용이 비싸고 가장 부하 분산을 섬세하게 한다.
- L2,L4는 물리적 단계에서 가능하지만 L7은 소프트웨어를 사용해야 한다.
Load Balaning 알고리즘
Round Robin Method ( 라운드로빈 방식)
- 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식 가장 기본적인 방법이다.
- 서버와의 연결이 오래 지속되지 않은 경우 가장 균등하게 분산이 이루어지기 때문에 많이 사용한다.
Weighted Round Robin (가중 라운드로빈 방식)
- 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분한다.
- 서버의 트래픽 처리 능력이 상이한 경우 주로 사용한다.
IP Hash Method (Ip 해시 방식)
- 클라이언트의 IP 주소를 해싱하여 특정 서보로 매핑하여 분산 처리하는 방식
- 사용자의 IP 주소를 해싱하여 로드를 분배하기 때문에 항상 동일한 서버로 연결되는 것을 보장한다.
- 접속자 수가 많을수록 효율이 뛰어나다.
Leact connection Method (최소 연결 방식)
- 요청이 들어왔을 때 가장 적은 연결 상태를 가진 서버에 분배하는 방식
- 세션이 길어지거나 서버에 분배된 트래픽들이 일정하지 않을 때 적합하다.
Least Response Time Method (최소 리스폰 타임)
- 서버의 현재 연결상태와 응답시간을 고려하여 가장 짧은 응답 시간을 고려하여 트래픽을 분배
- 각 서버들의 리소스와 성능 처리중인 데이터 양들이 다를 경우 적합하다.
'Network' 카테고리의 다른 글
[Network] CORS (0) | 2022.08.25 |
---|---|
[Network] VPC (0) | 2022.08.22 |
[Network] Firewall,DMZ (0) | 2022.08.21 |
[Network] HTTPS, SSL (0) | 2022.08.17 |
[Network] DNS (0) | 2022.08.17 |