로드벨런싱(Load Balancing) 이란?
네트워크 기술의 일종으로 둘 또는 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게
부하를 나눠 가용성 및 응답시간을 최적화 시킬 수 있다.
예를들어, 사용자가 몰리는 시간에 한 서버가 일을 다 처리하게 되면 부담스럽고 속도차이가 극심하니
여러 서버한테 일을 나누기 때문에 트래픽 분산시키는 역할을 합니다.
로드벨런싱(Load Balancing) 기능
👉 Helath Cheek(상태확인)
서버들에 대한 주기적인 확인을 통해 장애 여부를 판단하고 정상동작중인 서버로만 트래픽을 보낸다.
여기서 L3는 ICMP를 이용하여 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가 수시로 바뀌는 경우, 서비스 제공 어려움 |
– 가격이 비쌈 – 패킷 내용을 복호화 해야하기 때문에 높은 비용을 지불해야함 |