네트워크 부하분산 로드벨런싱(Load Balancing) 개념 및 기법 설명

로드벨런싱(Load Balancing) 이란?

네트워크 기술의 일종으로 둘 또는 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게

부하를 나눠 가용성응답시간을 최적화 시킬 수 있다.

예를들어, 사용자가 몰리는 시간에 한 서버가 일을 다 처리하게 되면 부담스럽고 속도차이가 극심하니

여러 서버한테 일을 나누기 때문에 트래픽 분산시키는 역할을 합니다.

로드벨런싱(Load Balancing) 기능

👉 Helath Cheek(상태확인)

서버들에 대한 주기적인 확인을 통해 장애 여부를 판단하고 정상동작중인 서버로만 트래픽을 보낸다.

여기서 L3ICMP를 이용하여 IP주소통신 가능한 상태인지를 확인하고,

L4전송 – 확인/전송 – 확인 기반으로 통신하여 각 포트 상태를 체크하고,

L7은 실제 웹페이지에 통신을 시도하여 이상 유무를 파악한다.

👉 Tunneling(터널링)

데이터 스트림을 인터넷 상에서 가상의 파이프를 통해 전달시키며 패킷 내에 터널링할 대상을 캡술화하여 목적지까지 전송한다.

여기서 연결된 상호 간에만 캡슐화패킷을 구별하여 캡슐화 해제도 가능함

👉 NAT(Network Address Translation)

내부 네트워크에서 사용하는 사설IP주소로드밸런서 외부 공인IP 주소간의 변환 역할이며

로드밸런싱 관점에서는 여러 개의 호스트가 하나의 공인IP주소를 통해 접속하는게 목적이다.

👉 DSR(Destination Network Address Translation)

서버에서 클라이언트로 트래픽이 되돌아가는 경우에 목적지를 클라이언트로 설정한 다음

네트워크 장비 및 로드밸런스를 거치지않고 바로 클라이언트를 찾아가는 방식이며

해당 기능을 통해 로드밸런서의 부하를 줄여줄 수 있다.

로드벨런싱(Load Balancing) 알고리즘

👉 라운드 로빈 방식 : 서버로 들어온 요청을 순서대로 돌아가며 배정하는 방식으므로 서버들이 동일한 스펙서버와의 연결(세션)이 오래 지속되지 않는 경우 적합함.

👉 가중 라운드로빈 방식 : 각 서버마다 가중치를 매겨 가중치가 높은 서버클라이언트 요청우선적으로 배분하여 서버의 트래픽 처리 능력상이한 경우에 적합함.

👉 IP 해시 방식 : 클라이언트의 IP주소를 특정 서버로 매핑하여 요청하므로 경로가 보장되며 접속자 수많을수록 분산효울이 뛰어남.

👉 최소 연결 방식 : 요청이 들어온 시점에 가장 적은 연결(세션) 상태를 보이는 서버에 우선적으로 트래픽할당 하기 때문에 서버에 분배된 트래픽이 일정하지 않는 경우에 적합함.

👉 최소 응답시간 방식 : 응답시간을 모두 고려하여 가장 짧은 응답시간을 보내는 서버로 트래픽을 할당하므로 처리중인 데이터 양이 상이할 경우 적합함.

👉 대역폭 방식 : 서버들과의 대역폭을 고려하여 서버에 트래픽을 할당함.

L4 vs L7 로드벨런싱 장단점

👉 L4 : 네트워크계층(IP, IPX) 또는 전송계층(TCP, UDP)의 정보를 바탕으로 IP주소, 포트번호, MAC주소 전송 프로토콜에 따라 트래픽 분산이 가능

👉 L7 : 어플리케이션 계층(HTTP, FTP, SMTP 등)에서 로드를 분산하기 때문에 HTTP, 헤더, 쿠키 등과 같은 사용자 요청을 기준으로 특정 서버에 트래픽 분산함.

구분 L4 로드벨런싱 L7 로드벨런싱
장점 – 속도가 빠름
– 복화할 필요가 없으므로 안전함
– 가격이 저렴함
– 상위 계층에서 로드 분산하기 때문에 섬세한 라우팅 가능
– 캐싱 기능 제공함
– 비정상적인 필터링 필터링 가능함
단점 – 패킷 내용을 볼수없으므로 섬세한 라우팅 불가
– IP가 수시로 바뀌는 경우, 서비스 제공 어려움
– 가격이 비쌈
– 패킷 내용을 복호화 해야하기 때문에 높은 비용을 지불해야함

Leave a Comment