본문 바로가기
DevOps

리버스 프록시, 로드 밸런서

by unknownomad 2025. 3. 20.

리버스 프록시 (Reverse Proxy)

  • 리버스 프록시는 클라이언트의 요청을 받아 여러 서버로 전달하는 서버
  • 클라이언트는 실제 서버의 IP나 주소를 알지 못하고, 리버스 프록시 서버에 요청을 보냄
  • 리버스 프록시는 이 요청을 적절한 서버로 전달

주요 특징

  • 클라이언트는 실제 서버가 아닌 리버스 프록시 서버와 통신
  • 보안, 캐싱, SSL 종료, 로드 밸런싱 등을 수행할 수 있음
  • 자바에서 Spring Cloud Gateway, Zuul 등이 리버스 프록시 역할을 할 수 있음

로드 밸런서 (Load Balancer)

  • 로드 밸런서는 여러 서버 간에 트래픽을 분산하여 서버의 부하를 고르게 분배하는 역할
  • 이로 인해 서버가 과부하되는 것을 방지하고, 시스템의 가용성을 높임

주요 특징

  • 클라이언트의 요청을 여러 서버에 분산하여 처리
  • 부하 분산 알고리즘(예: 라운드 로빈, 최소 연결 등)을 사용할 수 있음
  • 자바에서 로드 밸런서는 Spring Cloud LoadBalancer, Netflix Ribbon 등이 사용될 수 있음

https://serverfault.com/questions/127021/what-is-the-difference-between-load-balancer-and-reverse-proxy

자바에서 리버스 프록시와 로드밸런서 구현

구분 리버스 프록시 로드밸런서
목적 클라이언트의 요청을 여러 서버로 라우팅하는 역할 서버 간 트래픽을 분산시켜 서버 부하를 고르게 배분하는 역할
기술/라이브러리 Spring Cloud Gateway, Zuul Spring Cloud LoadBalancer, Netflix Ribbon
주요 기능 - API Gateway로 클라이언트 요청을 라우팅
- 마이크로서비스 아키텍처에서 사용
- SSL 종료, 보안, 캐싱 등 지원
- 클라이언트 측 로드밸런싱
- 서버 간 트래픽 분산
- 부하 분산 알고리즘(라운드 로빈, 최소 연결 등) 사용
사용 사례 - 클라이언트 요청을 여러 마이크로서비스로 라우팅
- API Gateway로 서비스 간 통합
- 여러 서버 인스턴스에 부하 분산
- 마이크로서비스 간 통신 시 서버 선택을 자동화
기능 구현 예 - Spring Cloud Gateway를 사용하여 클라이언트 요청을 여러 서비스로 분배 - Spring Cloud LoadBalancer로 클라이언트 요청을 여러 서버 인스턴스로 분배

 

'DevOps' 카테고리의 다른 글

도커(Docker), 쿠버네티스(K8S), CI/CD  (0) 2025.03.01
[Docker] 명령어 풀이  (0) 2024.07.30
[Docker] RUN vs COPY  (0) 2024.07.30

댓글