nginx & 로드밸런싱

정다연·2023년 7월 16일

DataBase

목록 보기
1/1

NGINX 란?

https://nginx.org/en/

높은 성능을 위해 개발된 웹 서버 소프트웨어. 이때, 웹 서버는 브라우저의 정적 페이지 요청을 처리하는 HTTP Web Server 의 역할과 동적 페이지 요청인 경우 Reverse Proxy Server로 활용하여 서버를 호출하여 WAS 서버의 부하를 줄이는 역할을 한다.

HTTP Web Server 의 역할


apache는 클라이언트 요청 당 새로운 스레드나 프로세스를 만들어 처리하기 때문에 요청이 많아지면 CPU나 메모리의 낭비가 심해진다.
이에 비해 nginx는 Event-Driven 구조로 고정된 프로세스만 생성해 사용하고 여러 개의 connection을 이벤트 핸들러를 통해 비동기 방식으로 처리한다. 추가로 프로세스나 스레드를 생성하지 않기 때문에 추가적인 생성 비용이 발생하지 않고 적은 자원으로 효율적인 운용이 가능해진다.

Reverse Proxy Server 의 역할

  • 포워드 프록시(forward proxy) 리버스 프록시(reverse proxy) 의 차이
    https://www.lesstif.com/system-admin/forward-proxy-reverse-proxy-21430345.html

    리버스 프록시란 외부 클라이언트에서 서버로 접근 시, 중간에서 중개자 역할을 하여 내부 서버로 접근할 수 있도록 도와주는 서버이다.
    - 보안 : 사용자로부터 내부망에 있는 서버를 직접적으로 노출 시키지 않을 수 있다. 모든 request는 리버스 프록시 서버에서 받은 후 매핑되는 내부 서버로 request를 전달해주는 역할을 한다. Nginx는 SSL 설정도 가능하다
    - 로드밸런싱 : 리버스 프록시 서버가 알고 있는 내부 서버에 대한 정보를 통해 각 서버의 상태에 따라 부하를 분산시키며 request을 전달할 수 있다.

로드밸런싱

https://aws.amazon.com/ko/what-is/load-balancing/

애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법.
트래픽 증가 시 Scale-out 방식으로 낮은 성능의 서버를 증설하게 된다면 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 필수적이다.

로드밸런싱 이점

로드 밸런서는 다음 방식 중 하나를 사용하여 네트워크 트래픽을 전송할 위치를 결정합니다.

  • 라운드 로빈 알고리즘: 라운드 로빈 알고리즘은 가장 간단한 로드 밸런싱 방식입니다. 사용 가능한 서버 목록을 통해 동일한 순서로 요청을 간단히 이동시킵니다.
  • 최소 연결 알고리즘: 최소 연결 방법은 좀 더 정교합니다. 사용량이 가장 적은 서버 또는 특정 시점에 가장 적은 워크로드를 처리하는 서버에 요청을 전송합니다.
  • 최소 시간 알고리즘: 최소 시간 알고리즘은 한 단계 더 나아가 가장 빠른 처리 속도와 가장 적은 활성 요청을 기준으로 서버를 선택합니다. 이 접근 방식은 가중 로드 밸런싱 알고리즘을 통합하여 용량, 컴퓨팅 또는 메모리가 더 높은 서버에 지속적으로 우선 순위를 부여할 수 있습니다.
  • 해시 기반 알고리즘: 마지막으로 로드 밸런싱 어플라이언스가 클라이언트 및 서버의 소스 및 대상 IP 주소에 고유한 해시 키를 할당하는 해시 기반 알고리즘이 있습니다. 이렇게 하면 동일한 사용자가 다시 돌아와서 다른 요청을 하는 경우 해당 사용자 요청이 이전에 사용하던 서버로 전달됩니다. 또한 서버는 이전 세션에서 입력한 모든 데이터를 그대로 유지합니다.

https://www.vmware.com/kr/topics/glossary/content/software-load-balancing.html

profile
날 것 그대로의 CS 마인드맵

0개의 댓글