본문 바로가기
✏️ CS/네트워크

[네트워크] 로드 밸런싱이란 무엇일까

by 개발한 너굴씨 2024. 4. 22.
728x90

 

 

 

 

로드밸런싱이란 


 

 

 

정의

 

로드 밸런싱(Load Balancing)이란 부하 분산, 즉 서버에 가해지는 부하분산하는 것이다. 

 

사용자들의 트래픽을 여러 서버가 나눠 받도록 구성하며 일반적으로 네트워크 장비인 스위치를 할당해 로드 밸런싱을 할 수 있다.

 

스위치에서 어떤 서버로 로드 밸런싱이 되도록 할지는 소프트웨어적으로 제어할 수 있다. 

 

로드 밸런싱은 스위치라는 장비가 클라이언트의 트래픽을 먼저 받아서 여러 대의 서버로 분산해주는 방식이다.

 

이렇게 하면 부하가 분산되는 효과 외에도 스위치 뒤에 연결된 서버들을 필요에 따라 추가하거나 삭제할 수 있어 편리하다.

 

 


 

로드 밸런싱이 필요한 경우 

 

로드 밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술이다.

 

증가한 트래픽을 처리하는 방법에는 Scale-Up과 Scale-Out이 있는데 이 중 Scale-Out 방식으로 서버를 증설할 때 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 필요하다. 

 


 

 

로드 밸런싱과 로드 밸런서 

 

두 개 이상의 컴퓨터 자원에 작업을 나누는 것을 로드밸런싱(load balancing)이라고 하고 작업을 담당하는 장비를 로드밸런서(load balancer)라고 한다. 

 

 


 

로드 밸런싱의 장점 

 

1. 가용성

 

요청을 서버로 라우팅하기 전에 서버의 상태를 먼저 확인한다.

 

어떤 서버가 오프라인 상태인 경우 작동중인 서버로 워크로드를 자동으로 재라우팅해서 서비스 중단을 방지한다.  

 

2. 확장성

 

네트워크 트래픽 부하가 가장 많거나 적은 경우에도 처리할 수 있는 온디맨드 고성능 인프라를 구현할 수 있다.

 

필요에 따라 물리적 서버 또는 가상 서버를 추가하거나 제거할 수 있으므로 확장성을 자동화하고 단순하게 만들 수 있다. 

 

3. 보안

 

네트워크 트래픽을 안전하게 라우팅하거나 오프로드함으로써 Dos/DDos 공격과 같은 보안 위험을 방어하는데 도움이 될 수 있다. 

 

 


 

알고리즘 

 

1. 라운드 로빈

 

이 알고리즘은 DNS(Domain Name System)를 사용하여 연속적인 순환으로 각 서버에 순차적으로 요청을 할당한다.

 

다음에 들어오는 요청을 받을 서버를 각 서버의 이름만 사용하여 결정하므로 가장 기본적인 로드 밸런싱 방법이다. 

 

2. 가중 라운드 로빈 

 

서버에는 DNS 이름 외에도 '가중치'를 할당한다.

 

가중치는 들어오는 요청을 처리하기 위해 어떤 서버가 다른 서버보다 우선순위를 가져야 하는지 결정한다.

 

관리자는 서버의 용량과 네트워크의 필요에 따라 각 서버에 가중치를 부여하는 방법을 결정한다. 

 

3. IP 해시

 

이 알고리즘에서는 들어오는 요청의 IP 주소를 해시 키라는 더 작은 값으로 계산(또는 해시)한다.

 

이 고유 해시 키(사용자의 IP 주소를 나타냄)를 기준으로 사용하여 요청을 특정 서버로 라우팅하는 방법을 결정한다. 

 

4. 최소 연결 

 

이름에서 알 수 있듯이 이 알고리즘은 새 클라이언트 요청이 수신될 때 활성 연결 수가 가장 적은 서버에 우선순위를 부여한다.

 

이 방법을 사용하면 서버가 연결에 과부하가 걸리는 것을 방지하고 서버 전반의 부하를 항상 일관적으로 유지할 수 있다.

 

5. 최소 응답 시간

 

이 알고리즘은 최소 연결 방법과 가장 짧은 평균 서버 응답 시간을 결합한 알고리즘이다.

 

서버가 요청을 수행하고 응답을 전송하는 데 걸리는 시간과 연결 수를 모두 평가한다.

 

활성 연결 수가 가장 적고 가장 빠른 서버에 들어오는 요청이 할당된다.

 

 


 

L4 로드 밸런싱과 L7 로드 밸런싱

 

 

L4 로드 밸런싱의 특징 

 

TCP/UDP 포트 정보를 바탕으로 한다.

 

 

 

L4 로드 밸런싱의 장점 

 

1. 속도가 빠르고 효율이 좋다.

 

2. 데이터의 내용을 복호화할 필요가 없어 안전하다. 

 

3. 저렴하다. 

 

 

 

L4 로드 밸런싱의 단점 

 

1. 패킷의 내용을 살펴볼 수 없기 때문에 섬세한 라우팅이 불가능하다.

 

2. 사용자의 IP가 수시로 바뀌는 경우라면, 연속적인 서비스를 제공하기어렵다. 

 

 

 

L7 로드 밸런싱의 특징 

 

TCP/UDP 정보, HTTP의 URL, FTP의 파일명, 쿠키 정보 등을 바탕으로 한다.

 

 

 

L7 로드 밸런싱의 장점 

 

1. 상위 계층에서 로드를 분산하기 때문에 섬세한 라우팅이 가능하다. 

 

2. 캐싱 기능을 제공한다. 

 

3. 비정상적인 트래픽을 사전에 필터링 할 수 있어 안정성이 높다. 

 

 

 

L7 로드 밸런싱의 단점 

 

1. 패킷의 내용을 복호화해야 하기 때문에 비용이 많이 든다. 

 

2. 클라이언트가 로드밸런서와 인증서를 공유해야 하기 때문에 공격자가 로드밸런싱 통해 클라이언트 데이터에 접근할 보안 상의 위험성이 존재한다. 

 

 

728x90

댓글