본문 바로가기

programming study/web

Forward Proxy vs Reverse Proxy vs Load Balancer

본 내용은 10분 테코톡 조앤님의 강의를 토대로 작성하였습니다.

 

1. Load Balancer란?

액세스가 증가할 때

서버로 요청하는 클라이언트 수가 늘어나서 액세스가 증가한다면

  • Scale-up: 서버의 하드웨어를 고성능으로 바꿈
    • 다만, 다수의 사용자가 집중적으로 액세스한다면 해결책이 될 수 없음
  • 분산 처리: 복수의 서버를 사용하여 처리를 분담
    • 여러대의 웹서버를 설치하고 한 대가 담당하는 사용자의 수를 줄임
    • 이때, 부하 분산 장치로써 로드밸런서를 이용

 

Load Balancer의 역할

  • 로드밸런싱: 해야할 작업을 나누어서 서버의 부하를 분산
  • 로드밸런서: 여러대의 서버가 분산 처리할 수 있도록 요청을 나누어 줌

 

Load Balancer가 요청을 분배하는 방식

  • 단순한 액세스
    • 대화가 복수의 페이지에 걸쳐 있지 않을 때
    • 웹 서버의 부하 상태가 판단 근거
    • 시험 패킷을 이용하여 웹 서버에 보내 응답 시간으로 부하를 판단
  • 미리 웹 서버의 능력을 설정
    • 미리 웹 서버에 능력을 설정한 후 부하를 조사하지 않고 웹 서버의 능력을 설정
    • 비율에 따라 요청 분배

 

Load Balancer의 종류

  • 종류는 L2, L3, L4, L7가 있음
  • L2, L3
    • 각각 맥 주소, IP 주소를 바탕으로 로드밸렁싱하는 것을 의미
  • L4
    • 전송 계층에서 로드밸런싱 하는 것
    • 요청을 담당하는 여러대의 서버로 로드밸런서가 요청을 나누어 줌
  • L7
    • 응용 계층에서 로드밸런싱
    • 요청의 종류에 따라서 담당 서버들로 요청을 나누어 줌

 

2. Proxy란?

Proxy

  • 네트워크 프록시
  • 대리라는 의미
  • 웹서버에서의 중개자(대리) 역할
  • 클라이언트와 서버사이의 위치에서 http 메시지를 정리하는 대리인처럼 동작
  • 웹 서버이기도하고 웹 클라이언트가 되기도 함

 

Proxy server

  • 서버와 클라이언트의 중계 서버
  • 통신을 대리 수행

 

Forward Proxy

  • 클라이언트와 인터넷 사이에 프록시가 위치해서 클라이언트 대신 서버에 요청을 보내주는 역할
    • 프록시가 내 컴퓨터 가까이
  • 로컬 네트워크와 인터넷 사이에 오가는 트래픽을 제어
  • ex) 부적절한 콘텐츠 브라우저 방지 필터링

 

Reverse Proxy

  • 서버와 인터넷 사이에 위치해서 서버의 응답을 대신 클라이언트에게 전달해주는 역할
    • 프록시가 서버 가까이
  • 웹 서버를 향하는 모든 요청을 처리
  • 웹 서버의 보안 기능 추가
  • 빠른 웹 서버 캐시를 느린 웹 서버 앞에 놓아 성능 개선

 

Proxy 네트워크 배치 방법

  • 입구 프록시
    • ISP 인터넷 서비스 공급자 접근 지점에 위치
    • 고속 접속 사용자들을 위해 다운로드 속도를 개선
    • 캐시 프록시를 이용해 인터넷 대역폭 비용을 줄임
  • 네트워크 교환 프록시
    • 캐시를 이용해서 인터넷의 혼잡을 완화하고 트래픽을 감시
    • 충분한 처리 능력을 갖춘 프록시가 네트워크 사이에 인터넷 교환 지점에 놓임

 

Proxy를 사용하는 이유

  • 필터
    • ex) 특정 웹 사이트 접속 시 차단
  • 접근제어
    • 많은 웹 서버들과 웹 리소스에 대한 단일한 접근 제어 전략을 구현, 추적
    • 특정 클라이언트만 접근할 수 있는 콘텐츠가 서버에 있을 때
    • 허가된 클라이언트는 접근을 허용
    • 그렇지 않은 클라이언트는 접근 요청 시 비밀번호 요구
  • 캐싱
    • 인기있는 요청을 관리
    • 해당 요청이 오면 서버까지 거치지 않고 프록시에서 응답
    • 느리고 비싼 커뮤니케이션 비용을 절감
  • 익명화
    • HTTP 메시지에서 신원을 식별할 수 있는 특성을 제거
    • 개인 정보 보호, 익명성 보장에 기여
    • 클라이언트 요청이었으나 프록시 요청인 것처럼 위장할 수 있음
    • 리버스 프록시의 경우 서버인 척 응답을 보냄
  • 로드밸런싱
    • 서버가 요청을 나누어 가질 수 있도록 프록시에서 결정

 

Reference

[10분 테코톡] 조앤의 Forward Proxy vs Reverse Proxy vs Load Balancer

'programming study > web' 카테고리의 다른 글

REST API  (0) 2021.10.13
WebRTC, WebSockets  (0) 2021.10.08
프론트엔드에서의 에러 핸들링  (0) 2021.09.24
웹스토리지 & 쿠키  (0) 2021.09.23
지속적 배포  (0) 2021.09.19