Proxy(프록시)
- 서버와 서버 사이에서 목적에 따라 특정 서버들을 대신해 여러가지 작업을 수행해주는 중개인
- 요청을 가로채서 응답할 수 있다
- 요청만 전달하거나 수정할 수 있다.
- 프록시서버는 프론트엔드 서버가 보낸 요청을 받아 필요한 작업 후 백엔드 서버에 넘겨준다.
위치
- 프론트엔드 서버 <------->프록시서버<-------> 백엔드 서버
역할에 따른 분류
1. Forward Proxy

요청을 보내는 서버 또는 사용자를 대신하여 특정 작업들을 처리해주는 프록시
- VPN
- 요청 서버에 대한 실제 정보를 가리는 것
- 예) 사내 내부 서버에 접근 시 특정 IP로만 접속
- 캐싱
- Forward Proxy 서버에서 같은 요청에 대한 응답을 캐싱해두고 대신 즉시 보내준다.
- 불필요한 통신 감소, 리소스 낭비 감소, 전체적인 성능 개선 효과
2. Reverse Proxy

프라이빗 네트워크 서버에 대한 접근을 제어하는 프록시
- 데이터 암호화 및 암호 해독, 인증 작업, 정보 캐싱 및 Load Balancer(로드 밸런서)
- 웹 서버 또는 서버 그룹에 대한 Gateway의 역할
- masking(마스킹)
클라이언트가 접근하고자 하는 서버의 실제 위치를 숨겨서 백엔드 서버에 대한 익명성을 제공
- load balancer(로드 밸런서)
동시에 많은 요청 발생 시, 트래픽을 준비된 서버 그룹에 골고루 분산
- 보안
리버스 프록시를 통해서만 접근 가능. 악의적 공격 차단, 웹사이트에 보안과 유연성
Load Balancing
서버의 확장
- Scale-up 서버의 성능을 높이는 방식
- Scale-out 여러 대의 서버를 운용하는 방식(분산),
👉 선호!! 상대적 비용 절감, 서비스 무중단 운영
Load Balancer
Reverse Proxy의 일종.
scale out 방식으로 서버를 확장 후 여러 대의 서버에게 요청을 균등하게 분산시킨다.
처리방식
- 유저의 접속, 사용에 의한 트래픽들(http request)들을 1차적 처리.
- 서비스 운영 중인 서버들로 요청 분배.
장점
- 많은 요청을 동시에 처리할 수 있게 해준다.
- Fault Tolerant System (결함 감내 시스템) 구축.
운영 중단된 서버가 발생해도 다른 서버로 요청을 처리해 정상적으로 서비스를 이용 가능.
- Down Time 없이 배포 및 운영 가능