로드밸런서와 방화벽, 4계층 장비 개념 정리
1. 시작하기 전에 알아두면 좋은 개념
- 네트워크 계층 구조: 네트워크 통신은 여러 계층으로 나뉘며, 각각의 계층은 특정한 역할을 담당한다. OSI 모델(7계층)이 그 예다.
- 세션(Session): 네트워크에서의 세션은 두 장치 간의 연결 상태를 의미하며, 데이터를 주고받기 위해 필요하다.
- 대칭 경로(Symmetric Path): 네트워크 패킷이 동일한 경로로 이동하는 것을 말하며, 세션 관리에 중요하다.
2. OSI 4계층이란?
OSI 모델은 네트워크 통신을 7계층으로 나눈 모델이다. 그중 4계층은 전송 계층(Transport Layer)으로, 데이터의 전송 및 세션 관리 역할을 담당한다.
- 대표적인 프로토콜: TCP(연결 지향, 신뢰성 보장)와 UDP(비연결 지향, 빠른 전송).
- 역할:
- 데이터를 작은 단위로 나누고 재조립.
- 데이터 전송 품질 보장.
- 송신자와 수신자 간 세션 관리.
3. 4계층 장비란?
4계층 장비는 OSI 4계층(전송 계층)에서 작동하며, TCP/UDP 정보를 기반으로 네트워크 트래픽을 처리한다.
4계층 장비의 특징
1) 세션 테이블
- 4계층 장비는 연결된 세션의 상태를 저장하고 관리하기 위해 세션 테이블을 사용한다.
- 예: 클라이언트-서버 간의 TCP 연결 상태.
2) Symmetric 경로 요구
- 세션을 정확히 관리하기 위해 패킷이 항상 같은 경로로 왕복해야 한다.
- 비대칭 경로(Asymmetric Path)가 발생하면 세션 관리에 문제가 생길 수 있다.
4. 로드 밸런서
로드 밸런서는 네트워크 트래픽을 여러 서버에 분산하여 효율성을 높이고 서버 과부하를 방지한다.
4.1 L4 스위치
- OSI 4계층에서 작동하며, TCP/UDP 포트와 IP 주소 정보를 기반으로 트래픽을 분산한다.
- 빠르고 간단한 트래픽 분배를 수행한다.
4.2 ADC(Application Delivery Controller)
- L4뿐만 아니라 7계층(애플리케이션 계층)까지 처리 가능하다.
- HTTP/HTTPS와 같은 애플리케이션 데이터를 분석하여 더 정교한 트래픽 제어를 수행한다.
- 부가 기능: SSL 오프로딩, 캐싱, 압축.
4.3 L4 스위치 vs ADC
항목 | L4 스위치 | ADC |
---|
작동 계층 | 4계층 | 4계층 + 7계층 |
처리 속도 | 빠름 | 상대적으로 느림 |
트래픽 제어 기준 | IP, TCP/UDP 정보 | 애플리케이션 데이터 |
추가 기능 | 제한적 | SSL 오프로딩, 캐싱 등 부가 기능 |
4.4 7계층 로드 밸런서
7계층 로드 밸런서는 OSI 7계층(애플리케이션 계층)에서 작동하며, 애플리케이션 데이터와 콘텐츠를 기반으로 트래픽을 분산한다.
- 작동 원리:
- HTTP 헤더, URL, 쿠키와 같은 애플리케이션 레벨의 데이터를 분석한다.
- 예: 특정 URL 요청은 서버 A로, 이미지 요청은 서버 B로 분배.
- 특징:
- 정교한 트래픽 관리가 가능하다.
- 콘텐츠 기반 라우팅(Content-Based Routing).
- 사용 사례: 웹 서버, API 게이트웨이.
- 부가 기능:
- SSL/TLS 오프로딩: 암호화/복호화 작업을 서버 대신 처리한다.
- 애플리케이션 가속: 캐싱, 압축, 연결 풀링을 통해 성능 최적화.
- WAF(Web Application Firewall) 통합: 애플리케이션 계층 보안을 강화한다.
5. 방화벽
방화벽은 네트워크에 대한 보안 장비로, 허가되지 않은 접근을 차단하거나 허용한다.
- 4계층 방화벽은 TCP/UDP 포트와 IP 정보를 기반으로 패킷을 필터링한다.
- 고급 방화벽은 7계층 데이터를 분석하여 더 세부적인 보안 설정이 가능하다.
6. 4계층 장비를 통과할 때의 유의점 (세션 관리)
6.1 세션 테이블 유지, 세션 정보 동기화
1) 세션 장비 운영자 입장
- 세션 정보 동기화: 장애가 발생하면 다른 장비로 트래픽을 넘겨야 하기 때문에, 세션 정보를 여러 장비에 동기화해야 한다.
- 하드웨어 리소스: 세션 테이블을 저장하려면 메모리가 충분해야 한다.
2) 개발자 입장
- 세션 기반 애플리케이션 설계 시, 세션 유지를 고려해야 한다.
- 예: 세션 스티키니스(Session Stickiness)를 활용하여 클라이언트가 항상 같은 서버에 연결되도록 설정한다.
6.2 비대칭 경로 문제
- 패킷이 다른 경로로 왕복할 경우, 4계층 장비는 세션을 제대로 추적할 수 없다.
- 해결 방안:
- 네트워크 설계 시 대칭 경로를 유지한다.
- 상태 비저장(stateless) 방식의 처리를 고려한다.
6.3 하나의 통신에 두 개 이상의 세션이 사용될 때의 고려 사항
- 복잡한 애플리케이션에서 다중 세션 사용 시, 세션 간 동기화가 필요하다.
- 예: 데이터베이스 연결과 사용자 인증 세션이 서로 다를 때, 이들의 상태를 별도로 관리해야 한다.