리버스 프록시 (Reverse Proxy) 과 로드 밸런싱(Load Balancing)

sun1·2023년 10월 15일
0

CS

목록 보기
7/17
post-thumbnail

📢 CI CD 를 구축하는 과정에서 리버스 프록시와 로드 밸런싱에 대한 개념이 필요하다고 느꼈다. 이 게시물에서는 이 둘의 개념을 알아보도록 하자!


📌 리버스 프록시(Reverse Proxy):

리버스 프록시는 클라이언트의 요청을 받아 이를 대신하여 서버에 전달하고, 그 결과를 다시 클라이언트에게 반환하는 역할을 한다.
이렇게 하면 클라이언트는 마치 자신이 직접 서버와 통신하는 것처럼 느낄 수 있다.

✅ 리버스 프록시의 주요 용도:

  1. 보안:
    리버스 프록시는 인터넷과 내부 네트워크 사이의 방화벽 역할을 할 수 있다. 외부 클라이언트가 직접 내부 네트워크의 특정 서버로 접근하는 것을 막고, 모든 요청을 리버스 프록시가 처리하도록 할 수 있다.

  2. SSL Termination:
    SSL 암호화/복호화 작업은 컴퓨팅 자원에 부담을 주므로 리버스 프록시에서 이 작업을 처리하면 실제 웹 서비스를 제공하는 서버의 부담을 줄여 준다. 나의 경우는 Nginx certbot을 이용하였다.

  3. 캐싱:
    리버스 프록시는 자주 접근되는 콘텐츠를 캐싱하여 성능 향상과 백엔드 서비스 부하 감소에 도움을 준다.

  4. 정적 컨텐츠 제공:
    리버스 프록시는 정적 컨텐츠(예: 이미지, CSS, JavaScript 파일 등)를 제공함으로써 백엔드 인스턴서브의 부하를 줄일 수 있다.


🤔 Nginx Certbot 이란?

CertbotLet's Encrypt에서 제공하는 무료 SSL/TLS 인증서를 자동으로 설치하고 관리해주는 도구이다. Nginx와 같은 웹 서버에 쉽게 SSL/TLS 보안을 추가할 수 있게 해준다.

Nginx에서 Certbot를 사용하면, Nginx는 리버스 프록시로 작동하면서 동시에 SSL Termination 역할도 수행한다. 클라이언트로부터의 암호화된 요청을 Certbot이 제공하는 SSL 인증서를 사용하여 복호화(SSL Termination)한 후, 해당 요청을 내부 네트워크의 다른 서버로 전달한다.




📌로드 밸런싱(Load Balancing):

로드 밸런서(Load Balancer)는 여러 대의 서비스 인스턴스(서버)가 존재할 때, 이들에게 고르게 트래픽을 분산시키는 역할을 한다. 이를 통해 단일 서버에 부하가 집중되는 것을 방지하고, 전체 시스템의 가용성과 성능을 향상시킨다.

✅ 로드 밸런싱의 주요 용도:

  1. 부하 분산:
    로드 밸런서는 들어오는 요청을 여러 서버에 분산시켜 각 서버의 부하를 줄이고 전체적인 처리 능력을 증가시킨다.

  2. 장애 복구:
    한 서버에서 문제가 발생한 경우, 로드 밸런서는 자동으로 다른 건강한 서버로 요청을 리디렉션하여 시스템의 가용성을 유지한다.

  3. 확장성:
    추가적인 트래픽 수용이 필요할 때, 로드 밸런서 뒤에 새로운 서버를 추가함으로써 시스템은 확장될 수 있다.




리버스 프록시로드밸런싱은 비슷해 보일 수 있으나, 그 목적과 기능에서 차이점이 있다. 하지만 실제 환경에서 이 두 기능은 종종 함께 사용되며, 많은 리버스 프록시 소프트웨어(Nginx 등)와 클라우드 기반 솔루션(AWS ELB 등)은 로드밸런싱 기능도 함께 제공한다.


👉 이 두가지에 대해 더 자세히 알아보고 싶다면 [ 로드 밸런싱(Load balancing) ][ 포워드 프록시(forward proxy) 와 리버스 프록시(Reverse Proxy) ] 를 확인하자 !

0개의 댓글