proxy? load balancer?

프록시란

‘대리’ 라는 의미를 갖고 있으며, 서버와 서버사이의 중계기 역할을 한다

프록시 서버란?

클라이언트와 서버간의 중계 서버로, 통신을 대리 수행하는 서버

캐시/보안/트래픽 분산 등 여러 장점을 가질 수 있음

프록시 서버는 네트워크 상 어디에 위치하느냐, 혹은 어느 방향으로 데이터를 제공하느냐에 따라

Forward Proxy와 Reverse Proxy 로 나뉘게 된다.

보통 일반적으로 말하는 Proxy는 Forward Proxy에 해당함

Forward Proxy?

Forward Proxy는 클라이언트와 인터넷 사이에 위치한다.

클라이언트가 서버에 접근하고자 할때, 클라이언트는 타겟 서버의 주소를 포워드 프록시에 전달하여, 포워드 프록시가 인터넷으로 요청된 내용을 가져오는 방식이다.

Forward Proxy의 특징

  1. 캐싱
    • 클라이언트가 요청한 내용을 캐싱하여 여러가지 부가적인 효과를 나타냄
      • 전송 시간이 절약됨
      • 외부 요청이 감소됨 → 네트워크 병목 현상 방지
      • 불필요한 외부 전송을 하지 않아도 됨
  2. 암호화
    • 클라이언트의 요청은 Forward Proxy 서버를 통과할 때 암호화된다. 이로 인해 클라이언트의 IP 주소를 감추고, 본 서버에서의 IP 추적이 어렵게 되어 보안이 강화됨
      • 클라이언트 IP 주소 보호
      • 데이터 기밀성 및 무결성 유지
  3. 클라이언트 보안
    • Forward Proxy 서버는 방화벽과 유사한 역할을 하며, 기관(예: 정부, 학교, 기업) 내에서 특정 웹사이트에 대한 접근을 제한할 수 있다. 예를 들어, 특정 사이트에 접속하는 것을 방지하기 위해 규칙을 추가할 수 있음
    • 제한적인 인터넷 사용 환경 조성
    • 악성 사이트로부터 클라이언트 보호

Reverse Proxy?

Reverse Proxy는 서버와 인터넷 사이에 위치한다.

서버가 클라이언트로부터 요청을 받을 때, 클라이언트의 요청은 직접 서버에 전달되지 않고, Reverse Proxy를 통해 전달된다. Reverse Proxy는 클라이언트의 요청을 받아 서버로 전달하고, 서버의 응답을 다시 클라이언트에게 반환한다.

Reverse Proxy의 특징

  1. 로드 밸런싱
    • 클라이언트로부터의 요청을 여러 서버에 분배하여, 서버 간의 부하를 균등하게 분산시킨다.
      • 서버 과부하 방지
      • 서비스 가용성 향상
      • 응답 시간 단축
  2. 보안 강화
    • 클라이언트는 실제 서버의 IP 주소를 알지 못하며, 모든 요청은 Reverse Proxy를 통해서만 처리됩니다. 이는 서버의 IP 주소를 숨겨 보안을 강화한다.
      • 서버 IP 주소 보호
      • 공격으로부터 서버 보호
  3. SSL 종료
    • Reverse Proxy는 SSL 암호화를 종료하여, 클라이언트와의 통신을 암호화하고 서버에서는 평문으로 데이터를 처리하게 할 수 있다. 이를 통해 서버의 부하를 줄이고, 암호화된 통신의 복잡성을 관리한다.
      • 서버 부하 감소
      • 암호화 관리 용이성 향상

그래서 Forward랑 Reverse 뭐가 다른데?

Forward Proxy는 클라이언트를 보호하고 인터넷 접근을 관리하는 데 중점을 두는 반면, Reverse Proxy는 서버를 보호하고 효율적인 트래픽 관리에 집중한다.

Forward Proxy는 클라이언트가 서버에 요청을 보내는 방식이라면, Reverse Proxy는 클라이언트의 요청을 서버 대신 처리하여 응답하는 방식이다.

Load Balancer란?

로드 밸런서는 여러 대의 서버가 분산 처리할 수 있도록 요청을 나누어주는 서비스

일반적으로 Reverse Proxy가 로드 밸런서 역할을 할 수 있으며, 클라이언트의 요청을 여러 서버에 분배하여 각 서버의 부하를 줄이고, 전체 시스템의 효율성을 높인다.

L4 vs. L7 로드 밸런서

로드 밸런서는 OSI 모델에서의 계층에 따라 L4와 L7 로드 밸런서로 나뉜다.

각 계층에서의 로드 밸런싱 방식이 다르며, 이를 통해 다양한 네트워크 요구 사항을 충족시킬 수 있다.

L4 로드 밸런서

  • 네트워크 계층에서 작동하며, IP 주소와 포트 번호를 기반으로 트래픽을 분산한다. L4 로드 밸런서는 클라이언트의 요청을 특정 서버로 전달할 때 TCP/UDP 등의 프로토콜 정보를 사용한다.
  • 특징
    • 빠르고 효율적이며, 네트워크 레벨에서의 간단한 로드 밸런싱을 수행한다.
    • 세션 관리가 필요하지 않으며, 클라이언트의 요청 내용에 대한 이해 없이 트래픽을 처리할 수 있다.
    • 일반적으로 네트워크 레벨에서의 높은 성능과 낮은 지연이 필요한 환경에서 사용된다.

L7 로드 밸런서

  • 애플리케이션 계층에서 작동하며, HTTP, HTTPS, FTP 등의 애플리케이션 프로토콜을 기반으로 트래픽을 분산한다. L7 로드 밸런서는 클라이언트의 요청을 검사하여 URL, 쿠키, 헤더 정보 등을 바탕으로 트래픽을 특정 서버로 라우팅한다.
  • 특징
    • 트래픽의 세부적인 내용을 이해하고 처리할 수 있어, 더 정교한 로드 밸런싱이 가능하다.
    • 콘텐츠 기반의 라우팅을 지원하며, 특정 요청을 특정 서버로 전달하는 규칙을 설정할 수 있다.
    • 복잡한 웹 애플리케이션 환경에서 사용되며, 보안, 세션 관리, 데이터 압축 등의 고급 기능을 제공한다.

참고자료

https://research.aimultiple.com/forward-vs-reverse-proxy

https://inpa.tistory.com/entry/NETWORK-📡-Reverse-Proxy-Forward-Proxy-정의-차이-정리

https://blog.naver.com/innolifes/222078920240


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Captcha loading…