Digital Imported, NGINX Plus 도입으로 안정성 및 성능 최적화

Digital Imported 은 일렉트로닉 음악을 독점적으로 스트리밍하는 멀티채널 인터넷 라디오 서비스입니다.
각 채널은 열렬한 일렉트로닉 음악 팬들로 구성된 팀이 house, trance, techno, drum and bass, Dubstep 등 각 장르나 스타일에서 최고의 음악만을 선별하기 위해 페타바이트 규모의 새로운 발매곡과 과거 카탈로그를 샅샅이 뒤져 선별한 것입니다.
최초의 온라인 라디오 네트워크 중 하나(1999년)인 DI.FM은 웹 브라우저, 전용 모바일 애플리케이션, 타사 공급업체 제품을 통해 매달 300만 명 이상의 청취자가 청취하는 하나의 목적지이자 라이프스타일로 성장했습니다.
2010년에는 마이애미의 연례 겨울 음악 컨퍼런스에서 열린 국제 댄스 뮤직 어워드에서 최고의 글로벌 라디오 방송국상을 수상했습니다.

Digital Imported는 원래 수많은 공급업체의 어플라이언스와 소프트웨어를 갖춘 전용 시설에서 인프라를 운영했습니다.
그러나 가입자 기반이 증가함에 따라 Digital Imported 는 아키텍처의 복잡성을 줄이고 운영 효율성을 개선해야 할 필요성을 인식했습니다.
다양한 기술의 집합은 번거롭고 관리하기 어려웠을 뿐만 아니라 Digital Imported의 운영 엔지니어들은 성능 관련 문제에 대한 가시성이 부족하여 확장 가능하고 안정적이며 일관된 서비스를 보장하는 데 상당한 어려움을 겪었습니다.

“우리가 가지고 있던 아키텍처는 시간이 지남에 따라 성장에 따른 요구 사항을 충족하기 위해 자갈을 쌓아 올린 것이었습니다. 하지만 개별 구성 요소를 관리하기가 점점 더 어려워지고 사용자가 기대하는 서비스 수준을 보장하기가 더 어려워지는 시점에 이르렀습니다.”

– Seth Hochberg, 엔지니어링 이사

목차

1. Digital Imported 의 도전과제
2. 해결책 – NGINX Plus
 2-1. Digital Imported 의 NGINX Plus 채택 이유
3. NGINX Plus 채택 결과
 3-1. Digital Imported 서버의 Downtime 감소
 3-2. 성능에 대한 가시성 확보
 3-3. 운영 효율성 향상 및 TCO 절감

1. Digital Imported 의 도전과제

Digital Imported 는 점점 더 많은 음악을 스트리밍하는 글로벌 사용자 기반을 지원하기 위해 시간이 지남에 따라 아키텍처를 구축했습니다.
로드 밸런싱, SSL Termination, Application Delivery, 정적 파일(Static File) 스토리지 등과 같은 네트워크 기능을 제공하기 위해 다양한 특수 목적 도구를 혼합하여 사용했습니다.

이러한 도구에는 하드웨어 어플라이언스, Varnish, Apache, 심지어 NGINX 오픈소스까지 포함되었습니다.
하지만 소규모 운영팀으로 이러한 다양한 기술을 유지하는 것은 특히 최대 40만 건의 요청이 발생하는 최대 부하 상황에서 문제가 될 수 있었습니다.

네트워크 기능을 통합할 방법을 모색하기 시작한 Digital Imported 엔지니어들은 특히 하드웨어 로드 밸런서에 장애가 발생하더라도 대부분의 음악 서비스를 구동하는 기본 API 애플리케이션으로 트래픽이 계속 흐르도록 하기 위해 고가용성(HA)/장애 조치 로드 밸런서를 찾았습니다.

또한 Digital Imported 운영 엔지니어의 수동 개입 없이 장애 조치를 처리할 수 있으면서도 필요한 경우 공급업체의 지원을 받을 수 있는 솔루션을 원했습니다.
Digital Imported 는 이미 NGINX 오픈소스에 익숙했기 때문에 NGINX Plus에서 아키텍처를 표준화하는 것은 쉬운 선택이었습니다.

이를 통해 상당한 양의 복잡성을 제거했을 뿐만 아니라 최적의 성능과 일관된 가동 시간을 보장하는 추가적인 제어, 인사이트 및 기능을 확보할 수 있었습니다.

2. 해결책 – NGINX Plus

Digital Imported 는 스트리밍 콘텐츠에 대한 메타데이터를 얻고, 라디오 프로그램 일정을 가져오고, CDN에 있는 콘텐츠의 URL을 가져옵니다.
또한 사람들이 듣고 있는 내용을 보고하여 Digital Imported가 아티스트 로열티 지불을 계산할 수 있도록 중앙 API와 다시 통신하는 클라이언트 애플리케이션(모바일 애플리케이션 및 웹사이트) 제품군을 유지 관리합니다.
이 API는 로드 밸런서 뒤의 서버에서 실행되는 모놀리식 Ruby on Rails 애플리케이션입니다.
애플리케이션 서버는 Phusion Passenger를 사용하여 Ruby 애플리케이션을 호스팅하고 업스트림을 제공하는 NGINX 오픈소스입니다.

Digital Imported 의 운영 엔지니어들은 API를 위한 고가용성 HTTP 로드 밸런서 솔루션을 모색하던 중 NGINX Plus를 선택했습니다.
이미 NGINX 오픈소스에 익숙했던 이들은 공동 위치에서 더 이상 많은 트래픽을 전송하지 않고 CDN에 더 많이 의존하고 있었기 때문에 기존 하드웨어 로드 밸런서 공간을 확장하지 않기로 결정했습니다.
더 이상 하드웨어 가속 어플라이언스가 필요하지 않았기 때문입니다.
새로운 아키텍처에서는 로드 밸런싱과 HTTP 캐싱을 위한 Varnish, WebDAV 서비스를 위한 Apache, 애플리케이션 방화벽과 다양한 TCP 프록시 기능을 위한 전용 하드웨어를 NGIN Plus로 대체합니다.

2-1. Digital Imported 의 NGINX Plus 채택 이유

엔지니어링 Director인 Seth Hochberg는

“Keepalived와 VRRP 지원이 제공하는 간단한 Active-Passive HA 기능이 NGINX Plus를 구매한 주된 이유였지만, NGINX 오픈소스에 대한 친숙함과 통합 WAF 기능 등 업계 최고의 지원 및 향상된 기능 덕분에 NGINX Plus에서 우리의 새로운 아키텍처를 표준화하는 것은 당연한 결정이었습니다.”
라고 말합니다.

Digital Imported 의 NGINX Plus 채택

NGINX Plus는 High-Available Layer7 로드 밸런서, 기본 HTTP Cache, SSL Terminator, TCP Proxy, WAF, 업스트림 서버의 상태 모니터 역할을 합니다.
NGINX Plus 로드 밸런서는 웹사이트 이미지와 같은 정적 파일 자산뿐만 아니라 JSON 기반 API를 프록시합니다.
하루 중 가장 바쁜 시간대에는 분당 약 400,000건의 요청을 처리하며, 약 70%의 응답을 캐시에서 직접 제공합니다.
따라서 요청이 API 서버나 저장 장치로 계속 업스트림될 필요가 없으므로 왕복 시간이 단축됩니다. NGINX Plus 로드 밸런서는 들어오는 요청에 대한 응답으로 캐시와 업스트림의 조합에서 약 2Gbps의 지속적인 아웃바운드 트래픽을 제공합니다.

NGINX 오픈소스는 여전히 정적 파일 서버, 웹 애플리케이션 호스트(Phusion Passenger Enterprise 사용), WebDAV 서버로 작동하며 CDN Origin에서 실시간 프리캐시 이미지 조작도 수행합니다.
애플리케이션 트래픽의 100%가 어떤 형태로든 NGINX를 통과합니다.

저희는 데이터베이스와 같은 일부 고립된 역할을 제외하고 네트워크의 거의 모든 서버에서 어떤 형태로든 NGINX를 실행하고 있습니다. 심지어 CDN 공급업체도 Edge에서 NGINX를 실행하고 있습니다! 음악 스트리밍이라는 핵심 비즈니스에 필수적인 도구입니다. 제품은 훌륭하고 NGINX Plus 지원 패키지와 함께 제공되는 통합, 지원, 사전 컴파일된 모듈 등은 비용 대비 가치가 충분합니다.”

Seth Hochberg, 엔지니어링 디렉터

3. NGINX Plus 채택 결과

3-1. Digital Imported 서버의 Downtime 감소

Digital Imported 는 NGINX Plus로 표준화하기 전에는 하드웨어 로드 밸런서에 장애가 발생했을 때 이를 파악할 수 있는 방법이 거의 없었습니다.
이제 NGINX Plus를 통해 로드 밸런서 성능을 더 잘 모니터링할 수 있습니다.
HA Failover 조치 구성을 사용하여 로드 밸런서가 다운되더라도 엔지니어가 다시 온라인 상태로 전환하는 동안
사용자는 중단 없는 서비스를 경험할 수 있으므로 안심할 수 있습니다.
이는 최종 사용자에게 일관성과 안정성을 보장할 뿐만 아니라 고성능 스트리밍 서비스 제공에 따른 운영 복잡성을 크게 줄여줍니다.
궁극적으로 서버 가동 시간은 더 나은 모니터링으로 개선되어 서버 장애의 원인이 되거나 원인이 되기 전에 문제를 해결할 수 있습니다.

3-2. 성능에 대한 가시성 확보

전송이 CDN 캐시로 이동함에 따라 전송 워크플로우에 대한 가시성이 점점 더 중요해지고 있습니다.
그러나 이전에 사용자 요청을 처리하는 데 사용되었던 다양한 기술과 하드웨어 어플라이언스의 조합은 이러한 인사이트를 확보하는 데 상당한 장애가 되었습니다.
NGINX Plus에는 스트림 전송의 업스트림 및 다운스트림 성능에 대한 향상된 가시성을 제공하는 Advanced 모니터링 기능이 포함되어 있습니다.
이를 통해 Digital Imported 운영 엔지니어는 API 요청이 어떻게 처리되고 NGINX Plus 아키텍처 전반으로 확산되는지 면밀히 파악할 수 있습니다.

3-3. 운영 효율성 향상 및 TCO 절감

여러 공급업체, 하드웨어 어플라이언스 및 소프트웨어 배포를 관리하면 많은 리소스를 소모할 수 있습니다.
업그레이드부터 패치 및 수정, 지속적인 모니터링에 이르기까지 다양한 기술과 제품을 사용하는 아키텍처는 결국 그 자체의 무게에 눌려 무너질 수 있습니다.

Digital Imported의 경우 소규모 운영 팀으로 인해 이러한 아키텍처 관리의 어려움이 가중되었습니다.
NGINX Plus는 여러 공급업체의 네트워크 기능을 단일 소프트웨어 기반 접근 방식으로 근본적으로 통합할 수 있게 해주었습니다.
이를 통해 이전에는 없었던 수준의 중복성을 확보하고 단일 구성 언어 및 배포 전략 내에서 쉽게 배포, 테스트 및 모니터링할 수 있는 방법을 제공했습니다.

Digital Imported 은 여러 공급업체 제품을 관리하기 위해 전문 리소스를 찾거나 고용할 필요가 없었습니다.
그렇기 때문에 네트워크 관리에 대한 높은 신뢰도를 확보하는 동시에 간결하고 민첩한 상태를 유지할 수 있었습니다.
여러 공급업체의 도구를 단일 도구로 통합하면 스트리밍 인프라를 유지 관리하는 데 필요한 전체 시간이 크게 줄어들어 운영 비용이 절감되는 동시에 기본적으로 지원되는 HA/ 조치 구성을 통해 전반적인 운영 효율성이 향상됩니다.
따라서 다운타임이 발생하더라도 사용자 요청이 여전히 확장 가능한 대용량 방식으로 처리됩니다.

Digital Imported 와 같이 Layer 7 로드 밸런서를 통해 운영 효율성을 향상하고 가시성을 확보하고 싶으신가요?
지금 NGINX Plus의 30일 무료 체험판으로 시작할 수 있습니다. 또한 NGINX STORE에 문의하여 다양한 사용 사례에 대해 상담 받아보세요.

NGINX STORE를 통한 솔루션 도입 및 기술지원 무료 상담 신청

* indicates required