6장 : 로드밸런서/방화벽 : 4계층 장비(세션장비)

이진우·2024년 8월 17일

4계층 장비는 TCP 와 같은 4계층 헤더에 있는 정보를 기반으로 동작합니다.

그중에서도 기존 네트워크 장비와 다른점인 세션 테이블과 그안에서 관리하는 세션 정보가 중요합니다.
4계층 이상에서 동작하는 로드밸런서, 방화벽과 같은 장비를 세션 장비라 부릅니다.

  • 세션테이블
    -> 세션장비는 세션 테이블 기반으로 운영됩니다.
    -> 세션 정보는 세션 테이블에 남아있는 라이프 타임이 존재합니다.
  • Symmetric(대칭)경로 요구
    -> InBOund 와 OutBound 경로가 일치해야합니다.
  • 정보변경(로드밸런서의 경우)
    -> IP 주소가 변경되며, 확장된 1.7 로드밸런서(ADC)는 애플리케이션 프로토콜정보도 변경됩니다.

로드밸런서

로드밸런서란?
서버나 장비의 부하를 분산하기위해 사용하는 장비

사용자 천명의 요청을 받는 서버보다 사용자 오천명 의 요청을 받는 서버는 단순 5배보다 훨씬 더 비쌉니다. 이처럼 내부 부품을 이중화 하거나, 용량이 큰 부품을 사용하는 것은 비용이 엄청 비싸지기때문에, 작은 장비를 여러대 묶어 사용하는 방법을 선호하는중이고, 이를 스케일아웃이라 부릅니다.

하지만 작은 시스템을 묶어 사용해도 사용자한테는 하나의 서비스로만 보여져야합니다.
로드밸런서는 서비스에 사용될 대표IP 주소를 서비로 IP 로 갖고, 그 밑에 시스템이 늘어나면서 각 시스템의 실제 IP 로 변경해 요청을 보냅니다.

이러한 로드밸런서는 웹이나 애플리케이션 뿐만 아니라

  • FWLB(FireWall Load Balancing) : 방화벽 로드밸러싱
  • VPNLB ( VPN Load Balancing) : VPN 로드밸런싱

과 같은 다양한 서비스를 위해 사용될 수 있습니다.

이런 로드밸런서는 동작하는 계층에 따라 4계층과 7계층으로 나뉩니다.

L4 로드밸런싱

일반적인 로드밸런서가 동작하는 방식입니다.
TCP,UDP 정보(특히 포트정보) 를 기반으로 로드밸런싱을 수행합니다.
장비에서 L7 지원 여부와 상관없이 4계층에 대한 정보로만 분산 처리하는 경우를 L4로드 밸런싱이라 합니다.

L7 로드밸런싱

HTTP, FTP, SMTP 와 같은 프로토콜 정보를 기반으로 로드밸런싱을 수행합니다.
HTTP 헤더 정보나, URI 와 같은 정보를 기반으로 프로토콜을 이해한뒤에 부하를 분산할 수 있습니다.
일반적으로 이런 장비를 ADC(Application Delivery Controller)라 부르며 프록시(Proxy)역할을 수행한다. 스퀴드(Squid)나 Nginx에서 수행하는 리버스 프록시(Reverse Proxy)와 유사한 기능을 갖고 있습니다.

* 참고
데이터 센터에서 사용하는 로드밴런서 장비는 L4, L7 을 모두 지원하며, 실제로 어떻게 설정했는지에 따라 L4 로드밴런싱과 L7 로드밸런싱으로 나뉩니다.
반면, 클라우드에서는 L4 로드밸런싱과 L7로드밸런싱을 지원하는 컴포넌트를 계층 별로 구분해 전용으로 사용합니다.
그 예로 AWS 에 NLB( Network Load Balancing ) 가 L4,
ALB ( Application Load Balancing ) 이 L7 로드밸런싱 전용 컴포넌트입니다.

스케일 업과 스케일 아웃

서비스를 운영하다보면 데이터 양이 늘어 기존의 서버 하나로는 서비스가 불가능해지는 시점이 다가옵니다.
이때 서비스를 확장하는 방법은 스케일 업스케일 아웃 방식이 있습니다.
스케일 업은 해당 장비의 스팩을 높히는 것입니다. 메모리를 추가로 장착하거나, 기존의 자원을 새로운 고스팩 자원으로 교체하는 것을 의미합니다.
스케일 아웃은 시스템을 여러대 배치하여 하나의 서비스처럼 사용하는 것을 의미합니다. 스케일 아웃 하기 위해서는 새로운 시스템 설계를 하거나, 분산을 위한 별도의 프로세스를 운영하기도하며, 로드밸런서와 같은 부하를 분산해주는 별도의 외부 시스템이 필요합니다.

profile
개발자 응애입니다

0개의 댓글