로드밸런싱(Load Balancing)
- 컴퓨터 네트워크 기술의 일종으로 둘 혹은 세 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다.
- 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술이다.
- 두 개 이상의 컴퓨터 자원에 작업을 분배하는 것을 '로드밸런싱(Load Balancing)' , 로드밸런싱 기술을 제공하는 서비스 또는 장치를 '로드밸런서(Load Balancer)' 라고 한다.
- 증가한 트래픽에 대처하기 위해 사용
- 증가한 트래픽에 대처하는 방법은 크게 두 가지로 나눌 수 있다.
- Scale-up
- 서버 자체의 성능을 확장하는 것을 의미한다.
- Scale-out
- 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영하는 것을 말한다.
- Scale-up
- 증가한 트래픽에 대처하는 방법은 크게 두 가지로 나눌 수 있다.
- 로드 밸런싱은 OSI 7계층을 기준으로 부하를 분산하는 방식에 따라 종류가 나뉘며 그 종류는 다음과 같다.
- L2 로드밸런싱
- Data Link 계층을 사용, Mac 주소 기반 부하 분산
- L3 로드밸런싱
- NewWork 계층을 사용, IP 주소 기반 부하 분산
- L4 로드밸런싱
- TransPort 계층을 사용, Port 기반 부하 분산
- TCP, UDP
- L7 로드밸런싱
- Application 계층을 사용, URL 기반 부하 분산
- HTTP, HTTPS
- L2 로드밸런싱
- L4 로드밸런싱과 L7 로드밸런싱이 주로 사용된다.
L4 로드밸런싱
- 네트워크 계층(IP, IPX)이나 트랜스포트 계층(TCP, UDP)의 정보를 바탕으로 트래픽을 분배한다.
- IP 주소, 포트번호, MAC 주소, 전송 프로토콜에 따라 트래픽을 나눌 수 있다.
L7 로드밸런싱
- 애플리케이션 계층(HTTP, FTP, SMTP)에서 트래픽을 분배한다.
- HTTP 헤더, 쿠키 등과 같은 사용자의 요청을 기준으로 하여 특정 서버에 트래픽을 분배하는 것이 가능하다.
- 즉, 패킷의 내용을 확인하고 그 내용에 따라 트래픽을 특정 서버에 분배하는 것이 가능하다.
- 특정한 패턴을 지닌 바이러스를 감지하여 네트워크를 보호할 수 있다.
- DoS / DDoS와 같은 비정상적인 트래픽을 필터링할 수 있어 네트워크 보안 분야에서도 활용된다.
L4 로드밸런싱과 L7 로드밸런싱의 차이점
L4 로드밸런서 | L7 로드밸런서 | |
네트워크 계층 | 전송 계층 (Transport Layer) |
응용계층 (Appliction Layer) |
특징 | TCP / UDP 기반 | TCP / UDP 를 포함하여 HTTP(URL), FTP, 쿠키 정보 등을 바탕으로 한다. |
장점 | - 패킷 레벨에서만 분배하기 때문에 속도가 빠르고 효율이 높다. - 데이터의 내용을 복호화할 필요가 없어 안전하다. - L7 로드밸런서보다 저렴하다. |
- 상위 계층에서 트래픽을 분배하기에 더욱 섬세한 라우팅이 가능하다. - 캐싱 기능을 제공한다. 비정상적인 트래픽을 사전에 필터링 할 수 있다. |
단점 | 사용자의 IP가 수시로 바뀌는 경우 연속적인 서비스를 제공하기 어렵다. | - 패킷의 내용을 복호화해야하기 때문에 더 높은 비용이 필요하다. - 클라이언트가 로드밸런서와 인증서를 공유해야하기 때문에 로드밸런서를 통해 데이터에 접근할 수 있다는 보안적인 위험성이 존재한다. |
로드밸런서의 주요 기능
- NAT(Network Address Translation)
- Private IP를 Public IP로 변경해줌
- Tunneling
- 데이터를 캡슐화하여 연결된 노드만 캡슐을 해제할 수 있게 함
- DSR(Dynamic Source Routing Protocol)
- 요청에 대한 응답을 할 떄 로드밸런서가 아닌 클라이언트 IP로 응답함
로드밸런서 동작 방법
- 기초적인 방법으로는 Bridge / Transparent Mode가 있다.
- 이 방법은 사용자가 서버에 서비스를 요청할 때 중간에서 로드밸런서가 NAT를 통해 IP/MAC 주소를 변조하는 방식이다.
- 즉 요청과 응답이 모두 로드밸런서를 거치는 경우이다.
- 요청 및 응답과정은 다음과 같다.
- 유저가 로드밸런서로 서비스를 요청한다.
- 로드밸런서는 NAT를 적용하여 IP/MAC 주소를 변조한 후에 실제 서버로 트래픽을 요청한다.
- 서버가 로드밸런서로 받은 요청에 대한 응답을 전달한다.
- 로드밸런서는 NAT를 적용하여 출발지 IP 주소를 로드밸런서의 가상 IP 주소로 변조하여 유저에게 전달한다.
로드밸런싱 알고리즘
- 로드밸런서가 서버를 선택하는 방법이다.
- 클라이언트의 요청을 여러 서버에 분배하는 로드 밸런싱 기법에는 여러 가지가 있다. 이 기법들은 로드밸런싱 알고리즘(부하 분산 방식)이라고 부른다.
- 종류는 다음과 같다.
- 라운드로빈 방식(Round Robin Method)
- 서버에 요청이 들어온 순서대로 배정하는 방식이다.
- 클라이언트의 요청을 순차적으로 분배하기에 여러 대의 서버가 동일한 스펙이고, 서버와의 연결이 오래 지속되지 않는 경우에 활용하기 적합하다.
- 가장 단순한 분배 방식이다.
- 특별한 서비스가 없는 일반적인 웹 사이트를 운영하는 곳에서 사용한다.
- 가중 라운드로빈 방식(Weighted Round Robin Method)
- 각각의 서버마다 가중치를 주고, 가중치가 높은 서버에 우선적으로 배분한다.
- 주로 서버의 트래픽 처리 능력이 다를 경우 사용되는 부하 분산 방식이다.
- 가중치가 높은 서버에 더 많은 요청을 전달한다.
- 지정하는 가중치의 정수값을 통해 처리 용량을 정한다.
- 서버 가중치는 사용자가 지정할 수 있고 동적으로 조정되기도 한다.
- 특별한 서비스가 없는 일반적인 웹 사이트를 운영하는 곳에서 사용한다.
- IP 해시 방식(IP Hash Method)
- 클라이언트의 IP 주소를 특정 서버에 매핑하여 요청을 처리하는 방식이다.
- 사용자의 IP를 해싱(Hashing)하여 로드를 분배하며, 사용자의 IP가 고정되어 있기에 항상 동일한 서버로 연결되는 것을 보장한다.
- 해싱(Hashing) : 임의의 길이를 가진 데이터에서 고정된 크기의 출력값을 생성해내는 과정, 또는 그러한 함수
- 최소 연결 방식(Least Connection Method)
- 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 분배한다.
- 자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합한 방식이다.
- 연결 수가 가장 적은 서버에 네트워크 연결 방향을 정한다.
- 동적인 분산 알고리즘이다.
- 각 서버에 대해서 현재 연결 수를 확인하고 가장 연결이 덜 된 서버로 요청을 분배하는 방식이다.
- 최소 리스폰타임(Least Response Time Method)
- 서버의 현재 연결 상태와 응답시간을 모두 고려하여 트래픽을 분배한다.
- 응답시간(Response Time) : 서버에 요청을 보내고 최초 응답을 받을 때까지 소요되는 시간
- 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 트래픽을 분배하는 방식이다.
- 서버의 현재 연결 상태와 응답시간을 모두 고려하여 트래픽을 분배한다.
- 라운드로빈 방식(Round Robin Method)
출처
https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903
https://deveric.tistory.com/91
'기초이론 > 네트워크' 카테고리의 다른 글
프록시(Proxy) (0) | 2022.06.18 |
---|