Intro
서버 아키텍처를 공부하면서 리버스 프록시 서버와 로드 밸런서에 대해서 알게 되었는데 하는 일이 비슷하다고 생각해서 어떤 점이 다른지 공부해보게 되었습니다.
프록시 서버란?
- 클라이언트와 서버 사이에서 동작하는 중간 서버를 의미한다.
- 클라이언트가 서버에 직접 요청을 보내는 대신 프록시 서버는 클라이언트 요청을 받아 서버로 전달하고, 서버에서 받은 응답을 클라이언트에게 다시 전달하는 중계자 역할을 한다.
프록시 서버 종류
🌐 포워드 프록시 서버
- 클라이언트와 서버 사이에서 중계 역할을 하는 서버로, 클라이언트의 요청을 받아 이를 대신 서버에 전달하고, 서버의 응답을 받아 다시 클라이언트에 전달하는 역할을 합니다.
주요 기능
트래픽 필터링: 악성 웹사이트나 특정 유형의 콘텐츠에 대한 접근을 차단할 수 있습니다.
캐싱: 자주 요청되는 콘텐츠를 캐시하여 네트워크 대역폭을 절약하고 응답 시간을 줄입니다.
익명성: 클라이언트의 IP 주소를 숨기고 프록시 서버의 IP 주소를 대신 사용하여 클라이언트의 익명성을 유지할 수 있습니다.
접근 제어: 특정 사용자나 네트워크의 특정 자원에 대한 접근을 제어할 수 있습니다.
로깅 및 모니터링: 네트워크 트래픽을 모니터링하고 로깅하여 보안 및 규제 준수를 지원합니다.
🌐 리버스 프록시 서버
- 서버와 클라이언트 사이에서 클라이언트의 요청을 받아 실제 서버로 전달하고, 서버의 응답을 받아 다시 클라이언트에게 전달하는 중계 서버입니다.
주요 기능
부하 분산: 리버스 프록시는 여러 서버로 트래픽을 분산시켜 서버의 부하를 줄이고 성능을 향상시킬 수 있습니다.
캐싱: 자주 요청되는 콘텐츠를 캐시하여 서버의 부하를 줄이고 응답 시간을 단축할 수 있습니다.
SSL 종료: 리버스 프록시에서 SSL 암호화를 처리하여 백엔드 서버가 암호화되지 않은 트래픽을 처리할 수 있도록 합니다.
보안 강화: 리버스 프록시는 클라이언트가 직접 백엔드 서버에 접근하지 못하도록 하여 보안을 강화하고, DDoS 공격을 방어하는 데 도움을 줄 수 있습니다.
압축 및 최적화: 요청 및 응답 데이터를 압축하고 최적화하여 네트워크 효율성을 높일 수 있습니다.
애플리케이션 방화벽: 웹 애플리케이션 방화벽(WAF) 기능을 제공하여 악의적인 트래픽을 차단할 수 있습니다.
일반적인 사용 사례
웹 서버 보호: 웹 서버 앞단에 위치하여 보안 강화, SSL 종료, 캐싱 등을 제공합니다.
서비스 통합: 여러 백엔드 서비스를 하나의 접근 지점에서 통합하여 클라이언트 요청을 처리합니다.
CDN(콘텐츠 배포 네트워크): 전 세계적으로 분산된 서버에서 콘텐츠를 제공하고, 사용자에게 가까운 서버에서 빠르게 콘텐츠를 전달합니다.
로드 밸런서란?
- 네트워크 트래픽을 여러 서버에 분산하여 서버 부하를 균등하게 분배하고, 시스템의 성능과 안정성을 향상시키는 장치 또는 소프트웨어입니다.
주요 기능
트래픽 분산: 들어오는 네트워크 요청을 여러 서버(백엔드 서버 또는 노드)에 분산하여 각 서버가 과부하되지 않도록 합니다.
고가용성: 서버 중 하나가 다운되더라도 다른 서버가 요청을 처리할 수 있게 하여 서비스의 연속성을 보장합니다.
세션 지속성: 특정 클라이언트의 요청을 동일한 서버로 유지하여 세션을 지속시킵니다. 이를 통해 로그인 상태 유지나 사용자 세션 데이터를 관리할 수 있습니다.
건강 체크: 백엔드 서버의 상태를 주기적으로 확인하여, 비정상적인 서버를 트래픽 분산 대상에서 제외합니다.
SSL 종료: SSL/TLS 암호화를 로드 밸런서에서 처리하여 백엔드 서버의 부담을 줄이고 암호화된 트래픽을 관리합니다.
트래픽 최적화: 압축, 캐싱, 데이터 압축 등을 통해 네트워크 효율성을 최적화합니다.
일반적인 사용 사례
웹 애플리케이션: 대규모 웹 애플리케이션에서 트래픽을 여러 서버에 분산하여 성능을 향상시킵니다.
데이터베이스 클러스터: 데이터베이스 서버에 대한 요청을 분산하여 부하를 줄입니다.
마이크로서비스: 다양한 서비스 간의 트래픽을 균등하게 분배하여 효율성을 높입니다.
주요 차이점
기능
로드 밸런서: 주로 트래픽을 여러 서버에 분산하여 서버 부하를 관리하고 고가용성을 보장하는 데 중점을 둡니다.
리버스 프록시: 보안 강화, 캐싱, SSL 종료 등 클라이언트와 서버 간의 중계 역할에 더 중점을 둡니다.
위치
로드 밸런서: 보통 여러 서버 앞에 위치하여 트래픽을 분산시키는 역할을 합니다.
리버스 프록시: 웹 서버 또는 애플리케이션 서버 앞에 위치하여 클라이언트 요청을 프록시하고 보안을 강화합니다.
결론
로드 밸런서와 리버스 프록시 서버는 서로 다른 목적을 가지고 있으며, 종종 함께 사용하여 서버 인프라의 성능과 안정성을 극대화합니다. 로드 밸런서는 주로 트래픽 분산과 고가용성을 보장하는 데 사용되고, 리버스 프록시는 보안, 캐싱, SSL 종료 등 다양한 기능을 통해 웹 애플리케이션의 성능과 보안을 강화하는 데 사용됩니다.
'Infra' 카테고리의 다른 글
AWS IAM 계정 공유 와 AWS 서비스에 IAM 역할 적용 (0) | 2024.12.04 |
---|---|
Docker-compose 다루기 (0) | 2024.12.04 |
컨테이너 관리하기 (0) | 2024.12.04 |
컨테이너 다루기 (0) | 2024.12.04 |
가상화 다루기 (0) | 2024.12.04 |