네트워크

로드 밸런서::4계층 장비 + L4 스위치, ADC

우잉~ 2024. 11. 27. 15:38

4계층인 전송 계층에서는 데이터를 정상적으로 상위 계층으로 전송하는 역할을 담당하고 있다. 그래서 통신의 방향성 or 순서와 같은 통신 전반에 대한 관리가 필요하다. → 데이터를 잘 전달하기 위해 패킷이 유실되거나, 순서가 바뀌지 않도록 해줘야 한다.

 

4계층 장비의 특징

4계층 장비는 TCP와 같은 프로토콜의 헤더 정보를 이해하고, 이 정보를 기반으로 동작하게 된다.

헤더 정보인 포트, 시퀀스 넘버, ACK 넘버에 대해 파악한 뒤, 세션 테이블이라는 공간에 담아 관리한다.

세션 테이블 안에 담긴 내용을 세션 정보라고 부른다. + 세션 정보는 라이프타임이 존재

4계층 장비는 로드 밸런서와 방화벽이 있는데, 이들을 세션 장비라고 부르기도 한다.

 

정리하자면 세션 장비는 세션 테이블 기반으로 운영되며, 세션 테이블에 세션 정보를 저장하고 확인하는 작업에 대한 이해가 필요하다. 세션 정보에는 라이프타임이 존재하여 세션 테이블에 남아있는 시간이 정해져있다.

시멘틱 경로 요구

IP 주소 변경

 

 

로드 밸런서(Load Balancer)

서버나 장비의 부하를 분산하기 위해 사용하는 장비

한 번에 많은 트래픽이 들어오게 되면 로드 밸런서는 적절히 트래픽을 서버에 분배하여 보내는 역할을 담당한다. → 웹 서버의 부하 분산에서 가장 많이 쓰이고 있다.

 

로드 밸런서는 대표 IP 주소를 가지고 있기 때문에 직접적으로 트래픽을 받는다. 이후에 로드 밸런서와 연결된 시스템 혹은 서버의 실제 IP로 변경하여 요청을 보냄으로써 트래픽을 처리하게 된다.

트래픽의 부하 분산을 돕는 로드 밸런서

 

 

로드 밸런서는 4계층과 7계층에서 동작한다. 4계층에서 동작하는 로드 밸런서 방식을 L4 로드 밸런싱, 7계층에서 동작하는 로드 밸런서 방식을 L7 로드 밸런싱이라고 한다.

 

L4 스위치

4계층에서 동작하면서 로드 밸런서 기능이 있는 스위치로 부하 분산, 성능 최적화, 리다이렉션 기능을 제공한다.

L4 스위치는 가상 서버/가상IP(사용자 접근용), 리얼 서버/리얼IP(실제 서버)를 설정해야 한다.

L4 스위치는 가상 IP를 이용해 들어온 트래픽을 실제 서버로 전달하기 위해 리얼 IP로 변경해주는 역할을 담당한다.

 

L4 스위치를 이용한 부하 분산

 

L4 스위치는 TCP 계층에서의 최적화 + 보안 기능을 제공하고 있다. → TCP 세션 재사용(Connection Pooling), DoS(Denial of Service) 공격 방어 기능 제공

 

* Connection Pool이란?

- 클라이언트와 서버 간의 연결을 효율적으로 관리하기 위해 미리 생성된 연결의 집합으로, 매번 연결을 새로 생성하지 않고 이미 생성된 연결을 재활용한다. → 성능을 최적화하고 리소스의 소비를 감소할 수 있다.

 

 

ADC(Application Delivery Controller)

애플리케이션 계층(7계층)에서 동작하는 로드 밸런서

애플리케이션의 프로토콜과 헤더 내용을 이해하고 동작한다. → 정보 필터링이 가능해진다.

ADC는 L4 스위치 기능을 포함하고 있다. 4계층에서 애플리케이션 계층까지 로드 밸런싱 기능을 제공한다는 뜻이다.

그리고 장애 극복 기능(Failover), 리다이렉션 기능도 수행한다. + 캐싱, 압축, 콘텐츠 변환 및 재작성, 인코딩 변환 등 기능 제공

ADC는 신기한 게 플러그인 형태로 보안 강화 기능을 추가로 제공하고 있다. → WAF, HTML, XML 검증 및 변환 수행 가능

 

ADC는 성능을 최적화하기 위해서 서버가 해야할 작업 중에 부하가 많이 걸리는 작업을 별도로 수행하고 있다.

그 중 하나는 이미지 or 정적 콘텐츠 캐싱 기능이다.

 

 

L4 로드 밸런싱 일반적인 로드 밸런서가 동작하는 방식으로, TCP, UDP 정보(포트 넘버)를 기반으로 로드 밸런싱을 수행
L7 로드 밸런싱 HTTP, FTP, SMTP와 같은 애플리케이션 프로토콜 정보(헤더나 URI)를 기반으로 로드 밸런싱을 수행
L4와 다르게 사용자 정보를 이해하는 기능이 탑재되어 있다. (예: 미국 사람이면 영문 페이지 제공, 한국 사람이면 한국어 페이지 제공)
이런 장비를 ADC(Application Delivery Controller)라고 부른다.
프록시 역할 수행
* 프록시란? 클라이언트와 서버 사이에서 중계 역할을 하는 애플리케이션이나 서버를 뜻하며, 클라이언트의 요청을 받아서 내부 서버로 전달하는 역할을 한다.

페일 오버, 리다이렉션, 캐싱, 압축, 콘텐츠 변환, 인코딩 변환 등 L4 스위치 기능을 포함하여 다양한 기능을 제공하고 있다.