취미가 좋다

Forward Proxy, Reverse Proxy, Load Balancer 본문

개발 기타/테크톡

Forward Proxy, Reverse Proxy, Load Balancer

benlee73 2021. 10. 4. 18:57

Proxy Server

클라이언트와 서버 사이에 위치하여 통신을 대리 수행하는 서버이다.

캐시, 보안, 트래픽 분산 등 여러 장점을 가진다.

Forward Proxy

클라이언트와 인터넷 사이에 있는 프록시 서버이다.

일반적으로 말하는 프록시 서버이다.

 

캐싱

  • 클라이언트가 요청한 내용을 캐싱한다.
  • 연결된 클라이언트가 요청한 데이터를 반환할 때 저장했다가 다른 클라이언트가 동일한 데이터를 요청하면 인터넷을 거치지 않고 바로 반환해준다.
  • 전송 시간이 절약되고 외부 요청이 감소되어 네트워크 병목 현상을 방지한다.

익명성

  • 클라이언트가 보낸 요청을 감춘다.
  • 클라이언트의 요청이 프록시 서버를 거치면서 프록시 서버가 요청한 것처럼 보인다.
  • 서버가 받은 요청은 프록시 서버의 IP이므로 서버가 누가 보냈는 지 알 수 없다.

 

Reverse Proxy

 

 

foward 프록시의 캐싱과 같은 특징을 가진다.

 

보안

  • 서버 정보를 클라이언트로부터 숨긴다.
  • 클라이언트들은 프록시 서버가 실제 서버라고 생각하고 뒤의 서버들의 정보(IP)를 알 수 없다.

 

Reverse Proxy는 Load Balancing 특징도 가진다.

 

Load Balancing

: 둘 이상의 CPU, 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것

 

웹 서버에 접속하는 클라이언트의 수에는 한계가 있다.

  • Scale-up : 서버 하드웨어의 성능을 올린다.
  • Scale-out : 서버의 수를 늘린다.

하드웨어 향상 비용이 더 비싸고 무중단 서비스를 제공하는 환경 구성이 용이한 Sclae-out이 효과적이다.

이 때, 여러 서버에게 균등하게 트래픽을 분산시켜주는 것이 바로 로드 밸런싱이다.

 

load Balancer

분산식 웹 서비스로, 여러 서버에 부하(load)를 나누어주는 역할

OSI 7 Layer 기준으로 L2, L3, L4, L7으로 나눈다.

 

L4 : 전송 계층의 IP와 Port를 기준으로 로드 밸런싱을 수행한다.

L7 : 응용 계층에서 URL에 따라 로드 밸런싱을 수행한다.

 

로드 밸런서가 서버를 선택하는 방식

  • Round Robin
  • Least Connetions : 연결 개수가 가장 적은 서버 선택 (트래픽으로 인해 세션이 길어지는 경우 권장)
  • Source : 사용자 IP를 해싱하여 분배 (특정 사용자가 항상 같은 서버로 연결되는 것을 보장)

 


https://youtu.be/YxwYhenZ3BE

 

'개발 기타 > 테크톡' 카테고리의 다른 글

JVM의 Garbage Collector  (0) 2022.02.15
MySQL & Oracle & MariaDB & PostgreSQL 비교  (0) 2021.09.28
SQL 인젝션  (0) 2021.09.24
[테코톡] Process vs Thread  (0) 2021.08.25
Comments