리버스 프록시 (Reverse Proxy)
- 리버스 프록시는 클라이언트의 요청을 받아 여러 서버로 전달하는 서버
- 클라이언트는 실제 서버의 IP나 주소를 알지 못하고, 리버스 프록시 서버에 요청을 보냄
- 리버스 프록시는 이 요청을 적절한 서버로 전달
주요 특징
- 클라이언트는 실제 서버가 아닌 리버스 프록시 서버와 통신
- 보안, 캐싱, SSL 종료, 로드 밸런싱 등을 수행할 수 있음
- 자바에서 Spring Cloud Gateway, Zuul 등이 리버스 프록시 역할을 할 수 있음
로드 밸런서 (Load Balancer)
- 로드 밸런서는 여러 서버 간에 트래픽을 분산하여 서버의 부하를 고르게 분배하는 역할
- 이로 인해 서버가 과부하되는 것을 방지하고, 시스템의 가용성을 높임
주요 특징
- 클라이언트의 요청을 여러 서버에 분산하여 처리
- 부하 분산 알고리즘(예: 라운드 로빈, 최소 연결 등)을 사용할 수 있음
- 자바에서 로드 밸런서는 Spring Cloud LoadBalancer, Netflix Ribbon 등이 사용될 수 있음
자바에서 리버스 프록시와 로드밸런서 구현
구분 | 리버스 프록시 | 로드밸런서 |
목적 | 클라이언트의 요청을 여러 서버로 라우팅하는 역할 | 서버 간 트래픽을 분산시켜 서버 부하를 고르게 배분하는 역할 |
기술/라이브러리 | 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 |
댓글