와우자 스트리밍 엔진은 웹 UI, REST API, JMX와 CommandInterface를 통해 원격 관리와 자동화가 가능하다. 이 글에서는 각 인터페이스가 엔진과 연결되는 방식과 활용 범위를 비교하고, Wowza Streaming Engine Manager와 REST API의 관계, JMX 모니터링, CommandInterface 비활성화 등 운영 환경에서 필요한 보안 설정을 함께 설명한다.
와우자 스트리밍 엔진 원격 제어의 필요성
와우자 스트리밍 엔진(Wowza Streaming Engine, 이하 와우자)을 설정하고 제어하는 가장 기본적인 방법인 Wowza Streaming Engine Manager 웹 UI는 반복적인 작업을 자동화하거나 외부 시스템과 연동해 설정을 일괄적으로 제어하기에 한계가 있다.
특히 여러 대의 서버를 운영하거나, 조건에 따라 어플리케이션을 제어하고 스트림 상태를 확인해야 하는 환경에서는 관리자가 웹 UI를 통해 매번 수동으로 작업하는 방식으로는 운영에 한계가 있다. 방송 송출 시스템, 스케줄러, 모니터링 시스템 또는 별도의 관리 도구와 연동하려는 경우에도 웹 UI 이외의 제어 방법이 필요하다.
와우자는 웹 UI뿐 아니라 REST API, JMX, SNMP, 서버 측 모듈과 같은 다양한 제어 수단을 제공한다. 본 글에서는 이들 중 와우자 엔진을 제어하는 데 주로 사용되는 네 가지 제어 방법과 각 방식의 특징, 적용하기 적합한 환경을 살펴보고 불필요한 제어 방법을 비활성화하는 방법에 대해 알아본다.
와우자 스트리밍 엔진의 제어 방법
와우자를 외부에서 제어하는 데 주로 사용하는 방법은 다음의 네 가지 종류가 있다.
CommandInterface- 웹 UI (와우자 스트리밍 엔진 매니저)
- REST API
- JMX (Java Management Extensions)
사용자는 이들 가운데 하나 또는 복수의 방법을 사용해 와우자 엔진을 제어할 수 있다. 각각의 제어 방법은 와우자 엔진과 연결되는 지점과 동작 방식이 다르며, 접근 가능한 기능의 범위와 자동화 수준에도 차이가 있다.
예를 들어 웹 UI는 관리자가 서버와 어플리케이션의 상태를 확인하고 설정을 직접 변경하는 데 적합하다. REST API는 HTTP를 통해 와우자 엔진의 상태를 조회하고 설정을 변경하는 데 사용할 수 있으며, JMX는 JConsole과 같은 자바 기반 외부 관리 도구와 연동하는 데 사용된다. CommandInterface는 TCP 포트를 이용해 와우자 엔진에 종료 명령을 전달하는 데 사용된다.

이러한 제어 방법과 관련된 서버 설정은 주로 [와우자 설치 경로]/conf/Server.xml 파일을 통해 관리된다. 다만 각 제어 방식에서 사용하는 세부 설정과 접근 권한, 포트, 인증 방법은 서로 다르므로 적용하려는 제어 수단에 맞춰 관련 항목을 확인해야 한다.
CommandInterface
CommandInterface는 Telnet 클라이언트를 이용해 와우자 서버의 TCP 8083 포트로 접속할 수 있어 일반적인 CLI와 유사해 보이지만, 공식적으로 제공되는 기능은 서버의 원격 종료에 한정된다.
사실 본 필자도 이 기능은 매뉴얼에서만 보았을 뿐, 실제 써 본 적은 없다. 와우자에서는 CommandInterface에 대해 단지 다음과 같이 설명할 뿐이다.
The Wowza Streaming Engine command interface is only used to allow remote shutdown of the server.
서버 끄기 전용이란다.
와우자 매뉴얼
문제는 사용법조차 공개되지 않은 이 포트를 통해 실제 접속이 가능하다는 것과, 이 포트는 와우자 설치 시 기본적으로 활성화된다는 것이다. 본 필자는 Server.xml을 수정해 사용하지 못하도록 비활성화하는 것을 독자 제위께 강력히 권한다. 잠재적인 위험을 허용해 둘 필요는 없다.
실제로 와우자에서도 프로덕션 환경에서는 관련 설정을 모두 주석처리해 비활성화할 것을 권고하고 있다.
비활성화하기 위해서는 Server.xml에서 아래의 내용을 찾아 다음과 같이 주석으로 처리해 주고 와우자를 재시작해 주어야 한다.
<!--CommandInterface> // 블럭을 주석처리하기 위해 <!-- 를 삽입
<HostPort>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
<IpAddress>*</IpAddress>
<Port>8083</Port>
</HostPort>
</CommandInterface--> // 주석 블럭의 끝을 표시하는 -->를 삽입 웹 UI (Wowza Streaming Engine Manager)
웹 UI는 가장 널리 사용되고, 기본적으로 사용되는 방법이다. 와우자를 설치하면 Wowza Streaming Engine과 Wowza Streaming Engine Manager 이렇게 두 서비스가 설치되는데, 이 가운데 Wowza Streaming Engine Manager가 웹 UI를 동작시키는 서비스이다.
와우자의 웹 UI는 기본 TCP 8088 포트를 사용하며, 접속하기 위해서는 웹 브라우저의 주소창에 아래의 주소를 입력해 주면 된다.
http://서버의주소:8088/enginemanager
Wowza Streaming Engine Manager를 이용하면 웹 브라우저에서 서버와 가상 호스트, 어플리케이션을 설정하고 스트림 상태와 서버 자원 사용량을 확인할 수 있다. 별도의 명령어나 프로그램을 작성하지 않아도 주요 설정과 상태 정보를 시각적으로 확인할 수 있어, 와우자를 처음 접하는 사용자나 일상적인 운영·관리 작업에 적합하다.
한 가지 알아두어야 할 것은, 웹 UI 자체로는 와우자 서버를 제어하지 못한다. 웹 UI는 단지 사용자의 편의를 위한 인터페이스만을 제공할 뿐이며, 실제로는 아래에서 설명할 REST API를 통해 와우자의 설정을 변경하거나 상태 정보를 읽어와 사용자에게 친숙한 형태로 보여주는 기능을 담당한다. 즉, 아래에서 설명할 REST API에 문제가 생기면 웹 UI에 접속은 가능하지만 정상적으로 작동하지 않게 되며, 다음과 같은 에러 메시지를 표출하게 된다.

Wowza Streaming Engine Manager could not connect to the Wowza Streaming Engine service(http://localhost:8087). Verify that the Wowza Streaming Engine service has started and is running.
와우자 스트리밍 엔진 매니저가 8087 포트에 접근할 수 없음
REST API
REST API(Representational State Transfer Application Programming Interface)는 와우자에서만 사용되는 개념은 아니다. 서버의 제어 가능한 각종 자원들에 ID를 부여하고, HTTP 프로토콜을 이용해 읽기·쓰기·생성·삭제 동작을 할 수 있는 범용 인터페이스로, 와우자 말고도 여러 분야와 제품들에서 폭넓게 사용되고 있다.
와우자 스트리밍 엔진의 REST API를 이용하면 외부 어플리케이션이나 자동화 도구에서 서버, 가상 호스트, 어플리케이션, 스트림과 관련된 상태 정보를 조회하고 일부 설정을 변경할 수 있어 별도의 관리 도구나 시스템 자동화 구성에 핵심적인 역할을 담당한다.
예를 들어, cURL이나 Postman과 같은 도구, 또는 웹 브라우저를 통해 아래의 요청을 와우자에게 보내면, 와우자는 명령에 대한 응답으로 자신의 최신 로그파일 목록을 클라이언트에게 반환해 준다.
http://[ID]:[PW]@[와우자 서버 주소]:8087/v2/servers/defaultServer/logfiles?order=newestFirst
와우자의 REST API 사용에 대한 자세한 설명은 와우자 REST API 활성화를 참고하기 바란다.
JMX
JMX은 자바 기반 프로그램의 구성 요소(object, 객체)들을 표준화된 인터페이스를 통해 제어할 수 있는 표준 기술이다. JMX를 이용해 접근할 수 있는 자바 객체는 MBean이라 하며, 각 MBean은 조회하거나 변경할 수 있는 속성, 실행 가능한 동작 및 알림 정보를 제공할 수 있다.
와우자 스트리밍 엔진은 Java 기반으로 동작하며, 서버의 주요 구성 요소와 동작 상태를 JMX 인터페이스에 노출한다. 이를 이용하면 와우자 서버와 가상 호스트, 어플리케이션, 어플리케이션 인스턴스, 클라이언트 및 미디어 스트림 계층의 상태를 확인하고, 읽기·쓰기가 허용된 속성을 변경하거나 제공되는 동작을 실행할 수 있다.
JMX는 와우자 실행의 토대가 되는 자바 레이어에서 동작하기 때문에 REST API보다 더 자세한 정보들을 수집하고 제어할 수 있다. 예를 들어 아래와 같은 항목들은 REST API를 이용해 확인하는 것이 어렵다.
- 특정 어플리케이션의 입력 소스 품질 모니터링
- 스레드 풀의 사용 현황 확인
- 커넥션 수 및 I/O 통계 조회
JMX를 활성화하면 JConsole, OpenNMS, HP OpenView와 같은 오픈 소스 및 상용 NMS 도구등을 이용해 와우자와 자바 가상 머신 내부 상태에 접근할 수 있다. 시스템의 세밀한 부분까지도 제어가 가능하기 때문에, 본 필자는 사용하지 않을 경우 원격 접속을 비활성화할 것을 강력히 추천한다.
JMX 사용에 대한 자세한 설명은 와우자 JMX 설정 방법을 참고하기 바란다.
관리 방법 특징 요약
와우자는 사용자의 기술 수준과 운영 목적에 따라 선택할 수 있는 다양한 제어 방법을 제공한다. 각 방법은 접근 방식과 활용 범위가 서로 다르므로, 단순한 일상 관리인지 자동화와 외부 시스템 연동이 필요한지에 따라 적절한 수단을 선택해야 한다.
CommandInterface- Telnet 클라이언트로 접속하는 제한적인 명령 인터페이스다.
- 공식적인 용도는 테스트 환경에서 와우자 서버를 원격으로 종료하는 기능에 한정된다.
- 웹 UI
- 와우자 매니저가 제공하는 기본 웹 기반 관리 인터페이스다.
- 서버와 어플리케이션 설정, 스트림 상태 확인 등 일상적인 운영과 관리에 적합하다.
- REST API
- HTTP 요청을 이용해 와우자 엔진의 상태를 조회하고 설정을 변경할 수 있다.
- 반복 작업의 자동화와 방송 송출 시스템, 스케줄러, 모니터링 도구 등 외부 시스템과의 일반적인 연동에 적합하다.
- JMX
- 와우자가 관리 대상으로 노출한
MBean을 통해 서버와 자바 가상 머신의 상태를 세밀하게 감시하고 동작을 제어할 수 있다. - 고급 모니터링과 관리 도구 연동, 사용자 정의 확장 기능을 구성하는 환경에 적합하다.
이들 가운데 하나만 사용해야 하는 것은 아니다. 평상시에는 웹 UI를 이용하고, 반복 작업은 REST API로 자동화하며, 세밀한 상태 감시는 JMX로 보완하는 방식처럼 두 가지 이상의 제어 수단을 함께 사용할 수도 있다.
독자 제위의 운영 환경과 목적에 적합한 제어 방법을 잘 선택해, 꿀을 빨며 와우자를 관리할 수 있게 되기를 기원한다.
FAQ
- 와우자 스트리밍 엔진을 외부에서 제어하는 방법은?
- 와우자 스트리밍 엔진은
CommandInterface, 웹 UI,REST API,JMX를 이용해 제어할 수 있다. 각 방식은 접근 방법과 기능 범위, 자동화 수준이 서로 다르다. - 와우자 스트리밍 엔진의 제어 설정을 관리하는 파일은?
- 와우자 스트리밍 엔진의 주요 관리 인터페이스와 원격 접속 설정은
[와우자 설치 경로]/conf/Server.xml파일에서 관리한다. 이 파일에서 각 인터페이스의 포트, 바인딩 주소, 인증 방식과 사용 여부를 설정할 수 있다. - 와우자 스트리밍 엔진 매니저의 웹 UI의 기본 접속 주소는?
- 기본 접속 주소는
http://서버 주소:8088/enginemanager다. TCP 8088 포트는 Wowza Streaming Engine Manager 웹 서비스가 사용하며, 실제 와우자 엔진과의 통신에는 기본적으로 TCP 8087 포트의 REST 인터페이스가 사용된다. - 와우자 스트리밍 엔진 웹 UI와 REST API의 관계는?
- Wowza Streaming Engine Manager는 사용자가 편리하게 서버를 관리할 수 있도록 웹 인터페이스를 제공하며, 실제 설정 변경과 상태 정보 조회는 와우자 엔진의 REST 인터페이스를 통해 처리한다. REST 인터페이스가 비활성화되었거나 TCP 8087 포트에 접근할 수 없으면 Manager 화면에 접속하더라도 정상적인 관리 기능을 사용할 수 없다.
- REST API의 용도는?
- REST API는 와우자 외부에서 서버와 가상 호스트, 어플리케이션, 스트림의 상태를 조회하고 일부 설정을 변경하는 데 사용한다. 방송 송출 시스템, 스케줄러, 모니터링 시스템이나 별도의 관리 프로그램과 연동해 자동화된 스트리밍 환경을 구성할 때 유용하다.
- REST API의 기본 포트는?
- 와우자 REST API는 기본적으로 TCP 8087 포트를 사용한다. 운영 환경에서는 외부에 무분별하게 노출하지 말고 인증, 접근 가능한 주소와 방화벽 정책을 함께 설정해야 한다.
- REST API 요청은 어떤 도구로 확인할 수 있는가?
cURL, Postman 또는 별도의 HTTP 클라이언트 프로그램을 사용할 수 있다. 단순한 조회 요청은 웹 브라우저에서도 확인할 수 있지만, 인증 헤더와 다양한 HTTP 메서드, 요청 본문을 사용해야 하는 경우에는 전용 도구가 적합하다.- JMX란 무엇인가?
JMX는 자바 기반 어플리케이션의 상태와 관리 기능을 표준화된 인터페이스로 제공하는 기술이다. 자바 기반인 와우자는 JMX를 통해 제어할 수 있고, 자바 가상 머신의 메모리, 스레드, 연결 수, 입출력 통계, 어플리케이션과 스트림 상태 등 비교적 세밀한 정보를 확인할 수 있다.- JMX에는 어떤 도구로 접속할 수 있는가?
JConsole, VisualVM, OpenNMS와 같은 관리·모니터링 도구를 사용할 수 있다. 사용자 정의 자바 모듈의 관리 속성과 동작을 MBean으로 노출해 별도의 관리 시스템과 연동하는 것도 가능하다.- CommandInterface는 어떤 기능을 제공하는가?
CommandInterface는 Telnet 클라이언트로 TCP 8083 포트에 접속하는 제한적인 명령 인터페이스다. 공식 문서에서 안내하는 용도는 테스트 환경에서 와우자 서버를 원격으로 종료하는 기능이다.- 사용하지 않는 관리 인터페이스를 비활성화해야 하는 이유는?
- 활성화된 관리 인터페이스와 포트가 많을수록 인증 우회, 비밀번호 공격, 설정 변경과 서비스 중단에 악용될 수 있는 공격 표면도 넓어진다. 실제로 사용하는 관리 방법만 활성화하고 나머지는 설정과 방화벽에서 차단하는 것이 바람직하다.
- 와우자 스트리밍 엔진을 제어하는 적합한 방법은?
- 일상적인 운영과 수동 설정은 웹 UI, 외부 시스템 연동과 자동화는 REST API, Java 기반의 심층 모니터링은 JMX가 적합하다. 와우자 내부에서 사용자 정의 기능을 개발해야 한다면 별도의 Java API와 서버 측 모듈을 사용한다.
갱신 내역
- — 최초 게시
- — 1차 수정
- — 2차 수정 및 주소 이전