Network Load Balancer – NGINX로 TCP 로드 밸런싱
TCP 로드 밸런싱을 위해서는 Network Load Balancer 를 사용해야 합니다. NGINX 및 NGINX Plus의 강력한 기능입니다. 이 기능은 처음으로 NGINX Plus Release 5부터 도입되었으며, 기능이 점점 확장되었습니다.
개발 및 테스트 작업에 많은 인력과 시간을 투자했으며, 이는 상용 제품의 개발이 오픈소스 제품의 발전을 지원하는 좋은 사례입니다.
목차
1. Network Load Balancer – TCP 로드 밸런싱이 필요한 이유는?
2. TCP 로드 밸런싱을 구성하려면 어떻게 해야 합니까?
3. NGINX 및 NGINX Plus에서 TCP 로드 밸런싱의 미래는 어떻게 될까요?
1. Network Load Balancer – TCP 로드 밸런싱 필요한 이유는?
NGINX는 단순한 웹 서버보다 훨씬 많은 기능을 가지고 있습니다. 원래는 다른 웹 서버를 가속화하기 위해 HTTP 트래픽의 리버스 프록시로 사용되었습니다. 시간이 지나면서 NGINX는 가속화하는 웹 서버에서 작업을 완전히 offload하는 더 많은 기능을 갖추게 되었고, 현재는 웹 서버와 캐싱/가속화 리버스 프록시 및 API Gateway를 포함한 매우 완전하고 효율적인 오픈소스 솔루션이 되었습니다.
NGINX는 현재로서 가장 사용량이 많은 웹 사이트 중 44.9%가 NGINX를 프론트 엔드로 사용하고 있습니다. NGINX가 웹 트래픽을 관리하는 경우, 다른 애플리케이션 트래픽 유형에 대해서도 프론트 엔드로 작동하는 것이 논리적입니다. 이것이 TCP 로드 밸런싱 기능이 제공하는 역할입니다.
TCP 로드 밸런싱은 NGINX나 NGINX Plus를 내부적으로 사용하여 애플리케이션을 프록시하고 로드 밸런싱할 때도 이점을 제공할 수 있습니다. 현대적인 애플리케이션은 HTTP를 기반으로 하지 않는 다양한 프로토콜을 사용합니다. NGINX와 NGINX Plus는 내부 트래픽을 처리하는 데 사용될 수 있으며, MySQL 로드 밸런싱은 좋은 예입니다.
2. TCP 로드 밸런싱 을 구성하려면 어떻게 해야 합니까?
TCP 로드 밸런싱은 stream 구성 컨텍스트에서 설정됩니다. 이 컨텍스트는 http 및 mail 컨텍스트와 마찬가지로 TCP 연결에 대한 하나 이상의 리스닝 서버를 구성할 수 있도록 해줍니다. 연결은 proxy_pass 지시문으로 지정된 upstream 서버 그룹으로 전달됩니다. 로드 밸런싱은 알고리즘이 사용되어 업스트림 서버 중 하나(이 예에서는 db1, db2 또는 db3)가 선택됩니다.
stream {
server {
listen 3306;
proxy_pass db;
}
upstream db {
server db1:3306;
server db2:3306;
server db3:3306;
}
}
이 간단한 구성은 NGINX Plus의 기능을 사용하므로 “TCP Load Balancing NGINX Plus 사용하기” 글이 좋은 소개 자료입니다. 모든 기능을 구성하는 방법을 알아보려면 NGINX Plus 가이드의 “TCP Load Balancing“섹션과 네 가지 Stream 모듈의 참조 문서를 참조하시면 됩니다.
3. NGINX 및 NGINX Plus에서 TCP 로드 밸런싱의 미래는 어떻게 될까요?
NGINX 및 NGINX Plus의 TCP 로드 밸런싱 기능에 대한 계획은 HTTP 프록시 및 로드 밸런싱을 위해 설정한 패턴을 따릅니다.

NGINX 오픈소스는 리버스 프록시(상위 서버로의 트래픽 수락 및 전달)와 로드 밸런싱(선택 알고리즘을 기반으로 한 상위 서버 그룹에서의 선택)을 제공합니다. 자체 NGINX 인스턴스를 구축하고 유지보수할 준비가 되어 있다면 표준 NGINX 배포에 포함되지 않은 고급 기능을 구현한 다양한 third-party 수정 사항을 추가할 수 있습니다.
NGINX Plus는 리버스 프록시와 로드 밸런싱을 제공하며, 상용 애플리케이션 전달 컨트롤러(ADC) 제품을 위한 테이블에 나열된 기능들을 추가로 제공합니다. 이러한 기능에는 health check, connection management, session persistence, remote configuration 그리고 monitoring이 포함됩니다.
NGINX | NGINX Plus | |
---|---|---|
핵심 기능 | ||
HTTP 및 TCP 용 리버스 프록시 | ✅ | ✅ |
로드 밸런싱(간단한 알고리즘) | ✅ | ✅ |
실패 시 연결 재시도(수동 모니터링) | ✅ | ✅ |
SSL Termination 및 암호화 | ✅ | ✅ |
고급 ADC 기능 | ||
X (미지원) | 모든 기능이 제공되며 NGINX에서 지원합니다. | |
고급 로드 밸런싱 알고리즘 | ✅ (Least Time algorithm) | |
Health checks | ✅ (HTTP and TCP) | |
Connection management | ✅ (HTTP and TCP) | |
Session persistence | ✅ (HTTP) | |
Dynamic reconfiguration | ✅ (HTTP and TCP) | |
Live activity monitoring | ✅ (HTTP and TCP) |
HTTP 로드 밸런싱을 위해 NGINX 및 NGINX Plus의 기능을 개발할 때 가능한 경우 TCP에 대해 동등한 기능을 개발하여 두 가지 모두에 대한 일관되고 예측 가능한 로드맵을 만들 것입니다.
NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 문의하십시오.
아래 뉴스레터를 구독하고 NGINX의 최신 정보들을 빠르게 전달받아보세요.
댓글을 달려면 로그인해야 합니다.