L4 부하분산과 무정지 시스템
L4 스위치는 포트 번호를 기반으로 스위칭을 하는데 이를 부하분산하는데 사용할 수 있다.
위 그림에서 Web Server는 DNS가 제공하는 서버의 IP 주소가 실제 서버가 아닌 LB(Load Balancer)로 작동하고 있는 서버다.
내부 서버에 차례대로 트래픽을 전달하는 역할을 한다.
내부에는 1~N번 서버가 있는데 이 서버들은 IP 주소만 다르지 내용은 모두 동일한 클론이다. 어디로 접속하든 같은 응답을 준다.
순서대로 매핑해주는 방식을 라운드로빈이라고 한다. 이는 기본 방식이다.
부하분산에는 Health Check 기능이 포함되어야 한다.
제3의 서버가 있고 모든 서버는 해당 서버와 연결이 되어있다. LB와도.
제3 서버가 CPU, RAM, Disk 여유공간 등을 가지고 부하율을 계산한다. 이 health check를 해서 가장 여유가 있는 서버를 LB에게 알려 주고, 그러면 해당 서버로 연결되는 방식이다.
부하율이 높은 서버는 스케줄링을 안해준다. 또한 응답 안하는 서버는 서비스에서 제외한다.
중간에 서버에 문제가 생겨도 LB가 장애가 난게 아니기 때문에 멀쩡히 돌아간다.
이러한 시스템을 무정지 시스템, 결함 감내 시스템(Fault tolerant system)이라고 한다.
내부 서버가 멀쩡하다고 해도 LB 서버가 문제가 생기면 응답이 안된다.
그래서 LB를 2개 두고 서로 연결되어 있다. (이중화)
하나는 Active 다른 하나는 StandBy (Virtual IP 또는 Virtual MAC 사용)
여기서 웹서버가 모두 Virtual Machine이라면 그냥 가상 이미지 되돌리든 스냅샷 찍어서 되돌리든 하면 된다. (도커)
대규모 부하분산을 위한 GSLB
GSLB = Global Server Load Balancing
글로벌하게 부하는 분산하는 방법이다.
DNS 체계를 활용하며 클라이언트의 접속 위치도 고려한다. ( 클라이언트의 지리적 위치는 IP 주소를 가지고 판단한다.)
DNS에 특정 URL 주소의 IP를 물으면 바로 IP 주소를 알려주는 것이 아니라 canonical name을 먼저 알려주고(각 ISP 내에 위치한 웹서버 URL) 다시 해당 주소의 IP를 물으면 그때 IP 주소를 알려준다.
결과적으로 각 ISP 내부에서 트래픽이 발생하기 때문에 네트워크 속도가 빠르다.
전 세계에 있는 서버들을 관리하는 Manager 서버가 있어야 하고, 어떤 콘텐츠를 어떻게 동기화할 것이냐가 주 이슈.
CDN 을 전문으로 하는 회사가 있다.
동기화할 수 있는 서버를 가지고 있어 그곳에 컨텐츠를 올리면 전 세계에 있는 서버에 동기화 해준다.
'공부 > 네트워크' 카테고리의 다른 글
[네트워크 응용] 공유기 작동 원리 (0) | 2024.04.14 |
---|---|
[네트워크 응용] Proxy (0) | 2024.04.03 |
[네트워크 응용] 네트워크 장치의 구조 (0) | 2024.03.27 |