Proxies & Load Balancing

송철진·2023년 4월 28일
0

Proxy(프록시)

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

위치

  • 프론트엔드 서버 <------->프록시서버<-------> 백엔드 서버

역할에 따른 분류

1. Forward Proxy

요청을 보내는 서버 또는 사용자를 대신하여 특정 작업들을 처리해주는 프록시

  1. VPN
  • 요청 서버에 대한 실제 정보를 가리는 것
  • 예) 사내 내부 서버에 접근 시 특정 IP로만 접속
  1. 캐싱
  • Forward Proxy 서버에서 같은 요청에 대한 응답을 캐싱해두고 대신 즉시 보내준다.
  • 불필요한 통신 감소, 리소스 낭비 감소, 전체적인 성능 개선 효과

2. Reverse Proxy

프라이빗 네트워크 서버에 대한 접근을 제어하는 프록시

  • 데이터 암호화 및 암호 해독, 인증 작업, 정보 캐싱 및 Load Balancer(로드 밸런서)
  1. 웹 서버 또는 서버 그룹에 대한 Gateway의 역할
  2. masking(마스킹)
    클라이언트가 접근하고자 하는 서버의 실제 위치를 숨겨서 백엔드 서버에 대한 익명성을 제공
  3. load balancer(로드 밸런서)
    동시에 많은 요청 발생 시, 트래픽을 준비된 서버 그룹에 골고루 분산
  4. 보안
    리버스 프록시를 통해서만 접근 가능. 악의적 공격 차단, 웹사이트에 보안과 유연성

Load Balancing

서버의 확장

  • Scale-up 서버의 성능을 높이는 방식
  • Scale-out 여러 대의 서버를 운용하는 방식(분산),
    👉 선호!! 상대적 비용 절감, 서비스 무중단 운영

Load Balancer

Reverse Proxy의 일종.
scale out 방식으로 서버를 확장 후 여러 대의 서버에게 요청을 균등하게 분산시킨다.

처리방식

  1. 유저의 접속, 사용에 의한 트래픽들(http request)들을 1차적 처리.
  2. 서비스 운영 중인 서버들로 요청 분배.

장점

  1. 많은 요청을 동시에 처리할 수 있게 해준다.
  2. Fault Tolerant System (결함 감내 시스템) 구축.
    운영 중단된 서버가 발생해도 다른 서버로 요청을 처리해 정상적으로 서비스를 이용 가능.
  3. Down Time 없이 배포 및 운영 가능
profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글