Home 기술 문서 라이브 스트리밍을 위한 CDN 최적화
Applications

라이브 스트리밍을 위한 CDN 최적화

About The Author

Outline

플래시 군중 및 라이브 스트림

스트리밍 서비스가 제한된 수의 시청자만을 대상으로 경쟁을 벌이고 있고, 시청자 몰입도를 높이는 데 있어 입증된 동인인 라이브 이벤트는 게시자의 콘텐츠 전략에서 중요한 요소가 되었습니다. 하지만 라이브 스트리밍이 시청자를 안정적으로 전송하는 것만큼이나 대규모 라이브 이벤트를 안정적으로 스트리밍하는 데는 여러 가지 문제가 있습니다. CDN(콘텐츠 전송 네트워크)은 온디맨드 확장성을 제공하는 데 도움이 되지만, CDN도 라이브 스트리밍에 최적화되어야 합니다.

아마도 가장 명백한 라이브 스트리밍 도전은 “플래시 크라우드”입니다.이 현상은 많은 시청자가 한 번에 라이브 스트림에 들어갈 때 발생합니다. NBA 결승전 6차전에서 100,000개 이상의 스포츠 경기를 스트리밍하여 관측한 전형적인 시청자 행동에 따라 시청자는 티포프에서 거의 없는 시청자였지만 3분기에는 최고 시청자 204만 명으로 급격히 증가했습니다. 시청률은 1만 개 미만의 세션에서 1시간 동안 100만 개 이상으로, 하프타임 후에는 150만 개로 증가하여 분당 10만 명의 신규 시청자가 증가했습니다. 이러한 종류의 빠른 확장은 모든 CDN에 압박을 가합니다. 하지만 라이브 비디오를 전송하는 일은 더욱 어렵습니다. 중단이 발생하면 재생이 중단될 수 있습니다.

네트워크에서 최근 라이브 이벤트의 예에서 알 수 있듯이 “플래시 크라우드” 현상은 CDN을 통한 비디오 제공을 일반 콘텐츠 바이트보다 어렵게 만듭니다.

이 기사에서는 급증하는 고객 및 기타 당면 과제에 대해 살펴본 후 Verizon Media가 CDN 분야에서 다년간 쌓아온 경험을 활용하여 고객의 일반적인 고충을 해결하는 방법을 살펴봅니다. 스포츠, 콘서트, 정치 등 화성에 처음 착륙하는 등 고품질의 라이브 이벤트를 제공하기 위한 최적의 선택입니다.

라이브 스트림 캐싱이 다른 이유

인터넷을 통해 라이브 이벤트를 전송하려면 MPEG-DASH, Apple HLS, Adobe HDS 및 Microsoft Smooth Streaming과 같은 하나 이상의 ABR(Adaptive Bitrate) 스트리밍 형식을 사용해야 합니다. 대개 표준 HTTP 웹 서버를 오리진 및 CDN으로 사용하여 콘텐츠를 대규모로 배포합니다.

현재 Edgio인 Verizon Media의 대규모 글로벌 CDN은 많은 PoP와 250Tbps 이상의 용량을 갖추고 있으므로 대규모 트래픽 급증과 급증하는 트래픽을 처리하기 위해 쉽게 확장할 수 있습니다. 그러나 용량과 확장성은 방정식의 일부에 불과합니다. 라이브 스트리밍에서 특히 중요한 것은 CDN이 오리진 서버 및 클라이언트와 얼마나 잘 상호 작용할 수 있느냐는 동시에 한꺼번에 방문하는 대규모 시청자를 위해 확장할 수 있다는 것입니다.

라이브 트래픽 프로필은 VOD와도 매우 다르며, 라이브 이벤트 중에 인코더가 오리진 서버에 새로운 미디어 세그먼트(일반적으로 지속 시간은 2-10초)를 지속적으로 퍼블리싱하기 때문에 VOD와도 뚜렷하게 다릅니다. 그리고 CDN은 항상 새로 출시된 콘텐츠를 가져와 네트워크를 통해 전파합니다. 이 프로세스에는 0이 아닌 시간이 걸리므로 일부 지연 시간을 피할 수 없습니다. 그러나 CDN은 캐시 채우기 프로세스를 시작하기 전에 캐시를 채우고 클라이언트 요청을 처리하는 데 있어 매우 효율적이고 현명해야 합니다. 이상적으로 CDN은 전체 미디어 파이프라인에 과도한 지연 시간을 추가하지 않으면서 오리진 서버의 부하를 최소한으로 유지할 수 있어야 합니다. 따라서 클라이언트 측 최종 사용자가 부드럽고 연속적인 재생을 즐길 수 있습니다.

Akamai의 CDN은 캐시 충전 프로세스가 완료되기 전과 도중, 완료된 후에 오리진 오프로드를 극대화하고 최종 사용자 경험을 개선할 수 있는 다양한 기능을 갖추고 있습니다.

라이브 스트림 캐시 최적화

아래 그래픽에서 볼 수 있듯이 Akamai의 미디어 플랫폼은 일련의 조정 가능한 최적화 기능을 채택하여 라이브 스트리밍을 빠르고 안정적으로 전송합니다. 다음 섹션에서는 이러한 기능이 중요한 이유와 작동 방식에 대해 설명합니다.

Origin Shield

무엇보다도 오리진 쉴드는 CDN 에지 서버와 오리진 사이의 추가 캐싱 계층입니다. PoP 중 하나에 가상 오리진을 생성하여 다른 모든 POP 위치의 모든 요청을 관리합니다. CDN 에지 서버가 사용자로부터 요청을 받고 캐시로부터의 요청을 충족할 수 없는 경우 에지 서버는 고객 오리진에서 직접 가져오지 않고 Shield POP에서 개체를 가져옵니다. 글로벌 CDN으로서 당사는 고객에게 지역(미국, EU, 아시아 등)별로 단일 POP를 방패 또는 방패 POP로 할당하는 옵션을 제공합니다.

Origin Shield는 대규모 트래픽 급증 및 급증하는 트래픽이 발생하는 경우 오리진 서버를 보호하는 데 도움이 됩니다. 그러나 라이브 스트리밍의 고유 트래픽 프로필을 처리하는 것만으로는 충분하지 않을 수 있습니다.

부분 캐시 공유

라이브 스트리밍에서 일반적인 패턴은 여러 클라이언트가 아직 캐시에 없는 스트림 세그먼트를 요청하는 것입니다. CDN은 이러한 요청을 처리하는 몇 가지 방법이 있습니다. 첫째, IT 부서는 오리진으로 여러 개의 동시 캐시 채우기 요청을 보낼 수 있습니다(각 새 클라이언트의 요청당 하나씩). 이를 통해 지연 시간을 최소화하고 최종 사용자 환경을 최적화할 수 있습니다. 두 번째 옵션은 첫 번째 클라이언트에 지연 없이 서비스를 제공하지만 나머지 클라이언트는 전체 파일이 캐시에 로드될 때까지 대기하는 단일 캐시 채우기 요청을 보내는 것입니다(이 방법은 오리진의 부하를 최소화하는 것을 목표로 함).

불행히도, 이러한 옵션 중 어느 것도 특히 훌륭한 솔루션을 나타내지 않습니다.

대신, 이 두 가지 옵션 간에 균형을 맞추기 위해 이미 진행 중인 단일 캐시 채우기를 캐시에 이미 부분적으로 들어 있는 동일한 컨텐츠를 요청하는 여러 클라이언트 간에 공유할 수 있습니다. 부분 캐시 공유를 사용하면 다른 클라이언트가 기존 캐시 채우기를 피기백할 수 있으므로 비디오 콘텐츠가 캐시로 로드되는 즉시 여러 클라이언트에 동시에 전달될 수 있습니다. 그 결과 시작 시간이 단축되고 지연 시간이 단축되며 오리진 로드가 감소합니다.

캐시 채우기 대기 시간

클라이언트가 비디오 파일을 요청하는 시점과 CDN POP에 로딩을 시작하는 시점 사이에는 간격이 있습니다. 이 시점은 매우 작지만(단 몇 밀리초 내에 발생할 수 있음) 라이브 스트리밍 플래시 크라우드는 수백 또는 수천 건의 요청으로 구성될 수 있기 때문에 매우 중요한 과제입니다. 이 경우 위에서 설명한 부분 캐시 공유 기능이 아직 시작되지 않았습니다. 일반적으로 이는 코너 케이스로 간주되지만 플래시 붐으로 인해 라이브 스트리밍에서 발생할 가능성이 더 큽니다. 이 중요한 시점에서 CDN은 한 번에 너무 많은 요청을 전송하여 오리진을 압도할 수 있습니다.

동일한 파일에 대한 여러 요청이 풀링되어 이 문제를 방지하고 오리진에 단일 요청만 수행됩니다. 캐시 채우기 대기 시간은 오리진 오프로드를 개선하고 급증하는 트래픽에 대처하기 위한 가상 대기실입니다. 단일 요청에 대한 HTTP 응답 헤더가 도착하고 하나의 요청이 오리진에서 파일을 수신하기 시작하면 캐시를 대기 중인 풀링된 모든 사용자와 공유할 수 있습니다. 실제 “대기 시간”(밀리초)은 구성이 가능하며 특정 오리진 기능과 고객의 요구에 따라 세밀하게 조정할 수 있습니다.

누락에 대한 하위 요청 생성

여러 사용자가 위에서 설명한 것처럼 캐싱되지 않은 동일한 콘텐츠를 요청할 경우 첫 번째 클라이언트가 3G 연결의 스마트폰과 같이 느린 장치를 사용할 위험이 있습니다. 캐시는 일반적으로 클라이언트가 콘텐츠를 흡수할 수 있는 속도로 채워지기 때문에 다른 모든 클라이언트가 손상됩니다. 이 시나리오를 피하기 위해 잠재적으로 느린/실패한 첫 번째 클라이언트에서 캐시 채우기를 분리하고 오리진에서 더 빠르게(최대 속도로) 채울 수 있습니다. 또한 이 기능은 초기 클라이언트의 연결이 끊어지거나 이로 인해 연결이 끊어지는 경우에도 캐시 채우기가 계속되므로 더욱 안정적입니다. 우리는 이 동작을 스폰 하위 요청(spawn Sub-Request for Miss)이라고 설명합니다. 또한 이 기능은 전체 콘텐츠에 대한 캐시 채우기를 트리거하여 오리진 서버로 한 번의 트립만으로 서로 다른 바이트 범위 요청을 충족합니다. Spawn Sub-Request for Miss 및 Cache Fill Wait Time은 서로 보완하여 라이브 스트리밍을 가속화하고 비디오 시작 시간 및 리버퍼링과 같은 지표를 개선합니다.

기타 라이브 스트리밍 CDN 최적화

핫 파일링
라이브 스트림의 시청률이 급격히 증가함에 따라, 이전에 500,000명의 시청자에서 로드를 쉽게 처리했던 캐시 서버는 몇 분 안에 시청률이 3배 또는 4배로 증가하면 갑자기 압도당하게 됩니다. 추가적으로, 시청자들은 특정한 지리적 영역, 전형적으로 인기있는 스포츠 또는 정치 이벤트에 집중될 수 있다. 많은 라이브 스포츠 방송 또는 챔피언십의 경우 참가하는 팀을 둘러싼 시장에서 시청자 집중도가 상당히 높을 수 있습니다.

이 경우 부하를 분산시키기 위해 영향을 받는 POP 내의 다른 서버로 라이브 스트림 세그먼트를 신속하게 복제해야 합니다.

핫 파일링은 라이브 스트림 세그먼트와 같이 매우 인기 있는 콘텐츠를 자동으로 감지하여 POP의 여러 캐시 서버로 복제하여 큰 수요를 처리하는 프로세스입니다. 이는 콘텐츠 전송 네트워크 사이에서 흔히 발생하는 관행이지만, 이러한 전파가 일어날 수 있는 속도는 궁극적으로 중요합니다. 이것은 Edgio의 지속적인 초점 영역입니다. 최근에 복제 속도를 5초에서 약 1-2초로 낮췄습니다. 라이브 스트림 외에도, 우리는 또한 라이브 스트림 내에서 광고와 같은 다른 콘텐츠를 뜨겁게 만들 수 있습니다.

용량 및 대역폭
용량 및 대역폭은 라이브 스트림의 예측할 수 없는 요구를 충족하기 위해 TAP의 추가 용량을 의미합니다. 근육차의 입방 인치를 대체할 수 없는 것처럼 CDN을 대체할 수 있는 대역폭은 없습니다. 이러한 캐시 최적화 전략과 기타 캐시 최적화 전략을 실행하려면 네트워크가 다른 사용자의 로드 밸런싱을 수행하면서 대규모 라이브 스트리밍을 처리할 수 있는 용량과 대역폭을 갖추고 있어야 합니다.

현재 네트워크 콘텐츠의 80% 이상이 비디오이며, 트래픽의 상당 부분이 라이브 스트리밍에 사용되고 있습니다. 125,000개 이상의 라이브 이벤트를 네트워크에서 관리했습니다. 라이브 스트리밍의 인기가 높아짐에 따라 콘텐츠 품질이 계속 향상됨에 따라 2019년 말까지 네트워크 용량이 100Tbps에 이를 것으로 예상됩니다. 당사의 네트워크는 140개 이상의 글로벌 PoP와 5,000개의 인터커넥트 또는 라스트 마일 연결을 갖추고 있습니다.

모든 것이 함께 작동합니다.

라이브 스트리밍의 무거운 수요는 당신의 기술을 한계를 극복할 것입니다. 수천 또는 수백만 명에게 원활한 스트림을 전송하려면 특별한 캐싱 구성이 필요합니다. 오리진 실드, 부분 캐시 공유, 캐시 채우기 대기 시간, 누락에 대한 하위 요청 생성 및 핫 파일링의 조합은 고유한 라이브 스트리밍 인프라 및 요구에 맞게 조정할 수 있는 강력한 기능입니다. CDN은 객체가 이미 캐시에 있는지, 일부만 캐시에 있는지, 또는 캐시 채우기가 아직 시작되지 않았고 아직 보류 중인지에 관계없이 라이브 스트리밍 이벤트에 대해 가능한 최상의 성능을 제공할 수 있도록 지원합니다. 그리고 요청이 진정한 첫 번째 클라이언트의 고유한 콘텐츠에 대한 요청인 경우에도 마찬가지입니다.

CDN은 라이브 비디오 인프라의 필수 구성 요소입니다. 분산 서버 시스템은 지리적 위치와 네트워크 위치 및 오리진 자체를 고려하여 사용자에게 콘텐츠를 전송하여 가장 빠르고 안정적인 방식으로 콘텐츠를 전송합니다. 그러나 라이브 전송을 위해 CDN을 최적화하는 기술은 VOD(Video On Demand)를 비롯하여 CDN의 이점을 활용하는 다른 애플리케이션과 크게 다릅니다. 적절한 캐시 최적화와 충분한 여유 용량을 갖춘 CDN은 라이브 스트리밍에 내재된 변동과 변동성에 대처하는 것 이상의 이점을 제공합니다.

Akamai의 CDN은 검증된 완성도 높은 콘텐츠 배포 기능과 최적화를 제공하여 오리진 서버의 부하를 최소화하고 시청자에게 대규모 라이브 스트림을 전송합니다. Akamai의 라이브 비디오 캐싱 최적화는 대부분 개별 고객에 맞게 조정이 가능하며, 함께 작동하여 시청자의 수요가 비디오 인프라에 압도되지 않도록 보호합니다.