728x90
🤔 트래픽에 대처할 수 있는 방법
클라이언트의 요청이 많아지면 트래픽이 증가하게 되고, 그에 따라 단일 서버만으로는 정상적인 서비스가 어렵다
따라서 이러한 수많은 트래픽에 대처할 수 있는 방법은 크게 2가지다
- Scale-up : 서버 자체의 성능을 높이는 것
- Scale-out : 여러 대의 서버를 두는 것
⭐️ Scale-out 방식의 경우 여러 대의 서버로 트래픽을 균등하게 분산해줘야 하는데, 이 때 로드밸런싱이 필요하다
💡 로드 밸런싱 (Load Balancing)
- 수많은 트래픽에서 클라이언트의 요청을 다수의 서버로 분산시켜주는 컴퓨터 네트워크의 기술이다
- 로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭한다
- 클라이언트와 서버풀* 사이나 네트워크 허브 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 한다
- 로드밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술인 것이다!
- 로드 밸런서를 이용한 부하 분산을 통해 가용성 및 응답 시간을 최적화시킴으로써 안정적인 서비스 구축이 가능하다
💡 *서버풀 (Server Pool) : 분산 네트워크를 구성하는 서버들의 그룹
💡 로드 밸런싱의 주요 기능
NAT(Network Address Translation)
- 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기이다
Tunneling
- 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념
- 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다
DSR(Dynamic Source Routing protocl)
- 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 클라이언트를 찾아가는 개념이다
💡 로드 밸런싱 알고리즘
라운드 로빈 방식 (Round Robin Method)
- 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
- 여러 대의 서버가 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우 적합하다
가중 라운드로빈 방식 (Weighted Round Robin Method)
- 각 서버에 가중치를 매기고 가중치가 높은 서버에 요청을 우선적으로 배정하는 방식
- 서버의 트래픽 처리 능력이 다른 경우 사용한다
IP 해시 방식 (IP Hash Method)
- 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
- 사용자가 항상 동일한 서버로 연결된다
최소 연결 방식 (Least Connection Method)
- 요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 트래픽을 배정하는 방식
- 자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합하다
최소 리스폰 타임 방식 (Least Repsonse Time Method)
- 서버의 현재 연결 상태와 응답시간을 모두 고려하여 트래픽을 배분하는 방식
- 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 로드를 배분한다
🌱 L4 로드 밸런싱
- 전송 계층(4계층)에서 로드를 분산한다
- TCP, UDP 포트 정보를 바탕으로 한다
- 데이터 안을 보지 않고 패킷 레벨에서만 로드를 분산하기 때문에 속도가 빠르고 효율이 높음
- 섬세한 라우팅이 불가능하지만 L7 로드 밸런서보다 저렴하다
- 부하 분산에는 L4 로드밸런서와 L7 로드밸런서가 가장 많이 활용되는데, L4 로드밸런서부터 포트(Port) 정보를 바탕으로 로드를 분산하는 것이 가능하기 때문이다
- 한 대의 서버에 각기 다른 포트 번호를 부여하여 다수의 서버 프로그램을 운영하는 경우, 최소 L4 로드밸런서 이상을 사용해야 한다!
🌱 L7 로드 밸런싱
- 애플리케이션 계층에서 로드를 분산한다
- HTTP 헤더, 쿠키 등과 같은 사용자 요청을 기준으로 특정 서버에 트래픽을 분산하는 것이 가능하다
- 즉, 패킷 내용을 확인하고 그 내용에 따라 로드를 특정 서버에 분배하는 것이 가능하다
- 섬세한 라우팅이 가능하고, 비정상적인 트래픽을 필터링할 수 있다
- 패킷의 내용을 복호화해야 하기 때문에 더 많은 비용이 든다
- L7 로드 밸런서의 경우 특정한 패턴을 지닌 바이러스를 감지해 네트워크를 보호할 수 있으며, DoS/DDos와 같은 비정상적인 트래픽을 필터링할 수 있어 네트워크 보안 분야에서도 활용되고 있다
🤔 L4 로드밸런서 vs L7 로드밸런서
L4 로드밸런서 | L7 로드밸런서 | |
네트워크 계층 | 전송 계층 (4계층) | 응용 계층 (7계층) |
특징 | TCP/UDP 포트 정보를 바탕으로 함 | TCP/UDP, HTTP의 URI, FTP의 파일명, 쿠키 정보 등을 바탕으로 함 |
장점 | - 데이터 안을 들여다보지 않고 패킷 레벨에서만 로드를 분산하기 때문에 속도가 빠르고 효율이 높다 - 데이터의 내용을 복호화 할 필요가 없어 안전하다 - 가격이 저렴하다 |
- 상위 계층에서 로드를 분산하기 때문에 훨씬 더 섬세한 라우팅이 가능하다 - 캐싱 기능을 제공한다 - 비정상적인 트래픽을 사전에 필터링이 가능해 서비스 안정성이 높다 |
단점 | - 패킷의 내용을 살펴볼 수 없기 때문에 섬세한 라우팅이 불가능하다 - 사용자의 IP가 수시로 바뀌는 경우라면 연속적인 서비스를 제공하기 어렵다 |
- 패킷의 내용을 복호화해야 하기 때문에 더 높은 비용을 지불해야 한다 - 클라이언트가 로드밸런서와 인증서를 공유해야 하기 때문에 공격자가 로드밸런서를 통해 클라이언트의 데이터를 접근할 보안상의 위험성이 존재한다 |
🤖 로드밸런서 장애 대비
> 로드밸런서를 이중화하여 장애를 대비할 수 있다!
장애가 발생한 경우의 시나리오
- 이중화 된 Load Balancer들을 서로 Health Check 를 한다
- Main Load Balancer가 동작하지 않으면 가상 IP(VIP)가 여분의 Load Balancer로 변경된다
- 이후 여분의 Load Balancer로 운영한다
[참고]
https://velog.io/@jisoo1170/Load-Balancing%EC%9D%B4%EB%9E%80
Load Balancing이란?
로드 밸런싱에 대해서 알아보자
velog.io
로드밸런서(Load Balancer)의 개념과 특징
[BY 가비아] 현대의 모든 정보는 인터넷을 통해 연결되어있습니다. 인터넷의 발달은 데이터 통신을 보다...
m.post.naver.com
https://nesoy.github.io/articles/2018-06/Load-Balancer
로드 밸런서(Load Balancer)란?
nesoy.github.io
https://tecoble.techcourse.co.kr/post/2021-11-07-load-balancing/
로드 밸런싱에 대해 알아보자!
…
tecoble.techcourse.co.kr
728x90
'야미스터디 > Network' 카테고리의 다른 글
[Network] IP, TCP/UDP, HTTP (0) | 2023.03.24 |
---|---|
[Network] DNS (0) | 2023.03.16 |
[Network] OSI L4 (0) | 2023.03.16 |
[Network] OSI 7계층 (0) | 2023.03.15 |
[Network] HTTP Status code 📌 (0) | 2022.11.19 |
댓글