API7 Enterprise 3.2.12의 새로운 기능: Stream Routes 지원
May 24, 2024
API7 Enterprise 3.2.12 버전에서는 스트림 라우트(stream routes) 지원이 도입되어 TCP/UDP 프로토콜 트래픽 프록시 및 로드 밸런싱이 가능해졌습니다.
스트림 라우트를 구성함으로써 API7 Enterprise는 TCP 프로토콜 기반의 MySQL 및 MongoDB와 같은 서비스 요청을 프록시할 수 있습니다. 또한 TCP 또는 UDP 프로토콜로 구성할 수 있는 Redis와 같은 애플리케이션도 프록시할 수 있습니다. 이를 통해 TCP/UDP 네트워크 트래�을 효과적으로 관리하고 최적화할 수 있습니다.
API7 Enterprise에서 스트림 라우트 사용 방법
스트림 서비스 추가
서비스를 수동으로 추가할 때, 서비스 유형 선택 옵션이 추가되었으며, 두 가지 유형을 지원합니다: HTTP와 Stream. 이는 각각 Layer 7 프록시와 Layer 4 프록시를 나타냅니다. 서비스 유형을 Stream
으로 선택하면 업스트림 스키마를 TCP
또는 UDP
중 하나로 선택할 수 있습니다. 서비스 유형을 선택한 후에는 변경할 수 없으므로 올바른 서비스 유형을 선택해야 합니다.
스트림 라우트 추가
스트림 유형의 서비스를 성공적으로 생성한 후, 서비스 상세 페이지로 이동합니다. 다음으로 스트림 라우트 추가
버튼을 클릭하여 라우트를 추가합니다.
라우트 이름, 설명 및 관련 라우트 구성을 양식에 입력합니다. 여기서는 MySQL 서비스를 프록시하기 위한 라우트를 구성합니다.
일반 HTTP 라우트 구성과 비교하여 스트림 라우트에는 세 가지 다른 구성 옵션이 있습니다.
-
서버 주소: 이는 게이트웨이 서버가 스트림 라우트 연결을 수신하는 주소로, 스트림 라우트 트래픽이 게이트웨이로 들어가는 입구 역할을 합니다. 클라이언트가 연결을 시도할 때 이 주소로 요청을 보내며, 게이트웨이는 미리 정의된 라우팅 규칙에 따라 이러한 요청을 전달하거나 처리합니다.
-
서버 포트: 게이트웨이 서버가 트래픽을 수신하는 포트를 지정하는 데 사용됩니다.
-
원격 주소: 요청을 시작한 클라이언트 주소입니다. 원격 주소와 동일한 클라이언트 주소에서 보낸 요청만 전달할 수 있으므로 특정 클라이언트에 대한 트래픽 관리가 가능합니다.
라우트를 성공적으로 생성한 후, 목록에서 새로 추가된 MySQL 라우트를 확인할 수 있습니다.
업스트림 노드 구성 및 서비스 게시
다음으로, 서비스를 게이트웨이 그룹에 게시하고 MySQL 서비스에 해당하는 업스트림 노드를 추가합니다.
서비스가 게시된 후, 127.0.0.10
주소와 9101
포트의 게이트웨이 서버가 요청을 수신하면 이 라우트가 요청을 처리하고 업스트림 MySQL 서비스로 전달합니다.
기본 요청 전달 기능 외에도, 서비스 게시 후 일련의 구성을 통해 서비스의 성능과 보안을 강화할 수 있습니다. 예를 들어, 스트림 라우트에 대한 로드 밸런싱 전략을 구성하여 트래픽이 여러 업스트림 MySQL 서버에 균등하게 분산되도록 하여 시스템의 확장성과 내결함성을 향상시킬 수 있습니다.
또한, 헬스 체크 메커니즘을 설정하여 업스트림 서버의 상태를 주기적으로 모니터링하고, 건강한 서버만 요청을 수신 및 전달하도록 하여 서버 장애로 인한 서비스 중단을 방지할 수 있습니다.
지원되는 플러그인
현재 스트림 라우트에 대해 네 가지 플러그인이 지원됩니다:
-
ip-restriction
: IP 접근 제어 기능을 제공합니다. -
limit-conn
: 이 플러그인은 클라이언트의 단일 서비스에 대한 동시 요청 수를 제한할 수 있습니다. -
prometheus
: 스트림 라우트에 대한 시스템 모니터링 및 경고 기능을 제공합니다. -
syslog
: 시스템 로그를 기록하고 전송합니다.
이 네 가지 플러그인은 스트림 라우트의 보안, 안정성, 모니터링 및 유지보수성을 강화합니다.
결론
API7 Enterprise 3.2.12의 스트림 라우트는 사용자에게 더 강력하고 유연한 TCP/UDP 프로토콜 트래픽 관리를 제공하여 애플리케이션의 신뢰성과 확장성을 향상시킵니다. 이는 기업 사용자에게 향상된 네트워크 트래픽 관리, 더 높은 시스템 신뢰성 및 운영 효율성, 우수한 비즈니스 적응성을 제공하여 중요한 기업 애플리케이션의 운영을 지원하는 데 가치가 있습니다.