라이브 스트리밍 서비스를 운영하는 조직의 일원으로 예기치 않은 트래픽 급증이나 서비스 중단을 겪은 적이 있다면, 팀원들이 문제를 해결하고 지연을 해결하기 위해 분주하게 움직여야 했던 경험이 있을 것입니다. 이러한 중단은 시청자에게는 심각한 문제가 되고 팀에게는 큰 어려움이 될 수 있습니다.
문제의 근본적인 원인은 갑작스러운 트래픽 급증을 효과적으로 처리하고 장애 발생 시 트래픽을 재지정하는 클라우드 제공업체의 능력에 있는 경우가 많습니다. 클라우드 제공업체가 증가하는 수요를 수용할 수 있을 만큼 리소스를 신속하게 확장하지 못하면 스트리밍 플랫폼이 압박을 받아 다운타임, 스트리밍 지연 또는 완전한 충돌이 발생할 수 있습니다.
분산 서버 및 클라우드 기반 솔루션과 같은 확장 가능한 인프라에 투자하고 엣지 컴퓨팅과 강력한 콘텐츠 전송 네트워크(CDN)를 활용하면 사용자가 중단 없는 라이브 경험을 즐기고 콘텐츠가 시청자에게 안정적으로 도달하며 스트리밍 서비스가 갈수록 경쟁이 치열해지는 세상에서 명성을 유지할 수 있습니다.
이 블로그에서는 많은 고객이 안정적인 스트리밍을 위해 활용하고 있는 도구를 소개합니다.
Akamai의 PoP 활용하기
Akamai와 같은 CDN은 최종 사용자와 가까운 곳에 전략적으로 배치된 분산형 및 로컬라이즈된 엣지 서버를 제공합니다. 엣지 서버는 중앙 데이터 센터와 사용자 디바이스 사이의 중개 허브 역할을 하는 PoP(Point of Presence) 역할을 합니다. 사용자가 동영상을 요청하면 콘텐츠가 중앙 데이터 센터까지 이동하지 않고 가장 가까운 엣지 서버에서 전송되므로 트래픽이 많을 때 이러한 서버는 지연 없이 여러 지역의 사용자에게 동시에 콘텐츠를 분할하여 배포할 수 있습니다.
위 이미지는 Akamai의 분산 네트워크를 보여줍니다. 이 아키텍처는 트래픽 급증과 수요 변동을 처리하기 위해 동적으로 확장하도록 설계되었습니다. 이러한 탄력성 덕분에 인프라는 가장 까다로운 조건에서도 응답성과 복원력을 유지할 수 있습니다. 이러한 근접성은 콘텐츠가 디바이스에 도달하는 데 걸리는 시간을 크게 단축하여 최종 사용자에게 지연 시간을 줄이고 원활한 스트리밍 환경을 제공합니다.
라이브 스트리밍 서비스가 낮은 지연 시간을 달성하도록 Akamai가 지원하는 방법
온라인 시청자에게 고품질의 경험을 제공하려면 VM이 라이브 스트림에 지연 시간을 추가하지 않도록 해야 합니다. Akamai는 라이브 리니어 및 라이브 스트리밍에 10초의 엔드투엔드 핸드웨이브 지연 시간을 지원합니다. 라이브 스트리밍 서비스가 낮은 지연 시간을 달성할 수 있도록 Akamai가 지원하는 방법은 다음과 같습니다:
- 실시간 라이브 트랜스코딩
라이브 트랜스코딩 시스템은 실시간으로 최대 동영상 부하를 처리할 수 있도록 확장해야 합니다. 트랜스코딩 중에 추가되는 지연 시간은 결국 최종 사용자에게 전달되어 시청 환경이 최적화되지 않게 됩니다. - 작은 세그먼트 크기
Akamai의 아키텍처는 HTTP 기반 스트리밍의 작은 세그먼트 크기(2초 이하)를 안정적으로 처리하도록 설계되어 플레이어가 대역폭 저하 시 빠르게 전환하고 플레이어 지연을 방지하며 클라이언트 측 버퍼를 효과적으로 줄일 수 있도록 지원합니다. - HTTP 청크 인코딩 전송
인제스트부터 엣지까지 청크 인코딩 전송을 지원하여 데이터를 사용할 수 있는 즉시 전송을 시작하면 지연 시간을 최소화하는 데 도움이 됩니다. - 엣지에서 프리페칭
엣지 서버는 특정 비트레이트의 다음 세그먼트 세트를 미리 가져와서 이전 세그먼트가 이미 수신되어 재생 중이므로 로컬에 캐시합니다. 이렇게 하면 세그먼트를 즉시 사용할 수 있고 추가 지연 시간이 발생할 위험이 줄어듭니다.
한 고객이 Akamai를 사용하여 라이브 스트리밍을 확장한 방법을 자세히 알아보겠습니다.
엣지에서 라이브 스트리밍 서비스를 확장하는 방법
라이브 스트리밍 메커니즘은 Akamai의 미디어 서비스 라이브(MSL)를 통해 이루어집니다. MSL은 다양한 지리적 위치에 분산된 Akamai의 광범위한 엣지 서버 네트워크를 활용하여 전 세계 시청자에게 라이브 비디오 콘텐츠를 효율적으로 전송하도록 설계되었습니다.
라이브 스트리밍 이벤트의 수집 워크플로우와 전송 워크플로우를 모두 자세히 설명하는 위의 레퍼런스 아키텍처를 살펴보겠습니다. 라이브 스트리밍 서비스를 개선하고자 하는 경우 이벤트의 라이브 스트리밍을 처리하기 위해 MSL을 설정하는 방법을 제안합니다.
1단계: 인코딩 및 수집
먼저 생방송 사이트에서 실시간 동영상 콘텐츠를 캡처해야 합니다. 콘텐츠가 확보되면 인코더를 설정하여 원본 비디오 피드를 HTTP 라이브 스트리밍(HLS) 또는 실시간 메시징 프로토콜(RTMP)과 같은 디지털 포맷으로 변환해야 합니다. 그런 다음 Akamai의 고객 포털을 통해 다운로드할 수 있는 Akamai의 IAS(인제스트 가속 소스)를 사용합니다. IAS는 인코더에서 스트림을 가져와 독점적인 UDP 전송 프로토콜을 통해 전달합니다. 그런 다음 인코더에서 스트림을 수신하도록 IAS를 구성해야 합니다.
다음으로, Akamai 네트워크에서 IAT(인제스트 가속 타겟)를 설정하고 스트림을 원래 포맷으로 다시 디코딩하도록 IAT가 구성되어 있는지 확인해야 합니다. 그런 다음 추가 처리를 위해 IAT를 Akamai의 엔트리 포인트 소프트웨어에 연결합니다. 이 인코딩 및 수집 단계에서 많은 사람들이 패킷 손실이라는 문제에 직면합니다. 라이브 비디오 스트리밍은 패킷 손실에 매우 민감하기 때문에 스트림 품질이 저하되고 버퍼링이 발생하며 시청 경험이 불만족스러워질 수 있습니다. 하지만 라이브 스트리밍에 Akamai를 사용하는 고객은 이러한 문제가 발생하지 않는데, 이는 Akamai가 사용하는 UDP 기반 가속 기술이 불안정한 네트워크 환경에서도 데이터 패킷이 보다 안정적이고 빠르게 전송되도록 보장함으로써 패킷 손실의 영향을 완화하는 데 도움을 주기 때문입니다. 이 기술이 라이브 스트리밍 프로세스에서 중요한 또 다른 이유는 기존 TCP 기반 전송은 혼잡 제어 및 오류 수정 메커니즘으로 인해 지연 시간이 길어질 수 있기 때문입니다. 라이브 스트리밍은 시청자가 실시간으로 콘텐츠를 수신할 수 있도록 지연 시간이 짧아야 합니다. Akamai의 UDP 기반 가속은 이러한 오버헤드를 최소화하여 더 높은 처리량과 짧은 지연 시간을 제공하며, 이는 적시 전송이 필수적인 라이브 콘텐츠에 매우 중요합니다.
2단계: 중간 계층 배포 및 선택적 스토리지
다음으로, 처리된 비디오 스트림을 Akamai의 중간 계층 서버로 전송해야 합니다. 이 서버는 인제스트 서버와 엣지 전송 네트워크 사이의 중개자 역할을 합니다. 중간 계층 서버는 비디오 스트림을 추가로 분산하여 네트워크의 여러 지점에 복제 및 캐시함으로써 부하를 분산하고 중복성을 개선합니다. 클라우드 사업자가 라이브 스트리밍을 처리할 때는 이러한 부하 분산이 올바르게 처리되는 것이 중요합니다. 그렇지 않으면 프로세스에 병목 현상이 발생할 수 있기 때문입니다. Akamai의 엣지 전송 네트워크를 사용하면 단일 서버가 병목 현상이 발생하는 것을 방지하여 개별 서버가 너무 많은 요청으로 인해 과부하가 걸리지 않도록 합니다. 이는 트래픽이 많은 이벤트가 발생할 때 특히 중요합니다.
선택 사항으로 Akamai의 NetStorage 시스템에 비디오 콘텐츠를 저장할 수 있습니다. NetStorage는 콘텐츠를 항상 사용할 수 있고 필요한 경우 신속하게 검색할 수 있도록 보장합니다. 이는 백업 또는 온디맨드 재생용으로 사용할 수 있는 확장 가능하고 안전한 스토리지 솔루션을 제공합니다.
3단계: 오리진 실드
그런 다음 동영상을 오리진 쉴드로 전송하면 오리진 쉴드는 인제스트 서버와 Akamai CDN 사이에서 버퍼 역할을 수행하여 트래픽 급증을 관리합니다. 피크 시간대 또는 예상치 못한 시청자 수 급증 시 Origin Shield가 부하 증가를 처리하여 인제스트 서버가 과부하되는 것을 방지할 수 있습니다. 따라서 성능 저하 없이 많은 수의 시청자를 수용할 수 있습니다. 또한 오리진 쉴드는 캐시 효율성을 최적화합니다. 오리진 쉴드는 캐싱 계층을 추가함으로써 요청이 오리진 서버로 되돌아가는 빈도를 줄입니다. 이렇게 하면 오리진 서버의 부하가 감소하고 대역폭이 절약되며 최종 사용자에게 콘텐츠 전송 속도가 빨라집니다. 최종 사용자의 입장에서는 콘텐츠에 더 빠르게 액세스하여 지연 시간을 줄이고 시청자 경험을 향상시킬 수 있습니다.
4단계: 전송 구성 및 최종 사용자 전달
이제 콘텐츠를 배포할 차례입니다. 콘텐츠를 전 세계 여러 지역에 배포할 때 네트워크 조건, 규제 요구 사항, 시청자 선호도 등이 다를 수 있습니다. 이러한 문제를 해결하기 위해 고객사는 Akamai 전송 계정을 사용합니다. Akamai 전송 계정은 콘텐츠 전송을 위한 다양한 구성 및 설정에 해당하며, 콘텐츠 사업자는 캐싱 정책, 보안 프로토콜, 전송 최적화 등 각 지역에 맞는 다양한 설정을 구성할 수 있습니다. 각 전송 계정에는 다양한 지역, 디바이스 또는 콘텐츠 유형의 요구 사항에 맞는 특정 설정이 있을 수 있습니다. 이는 콘텐츠 제공업체가 여러 전송 채널에 콘텐츠를 효율적이고 유연하게 배포해야 하기 때문에 중요합니다.
마지막으로 비디오 콘텐츠는 컴퓨터, 스마트폰, 태블릿, 스마트 TV 등 다양한 디바이스를 통해 최종 사용자에게 전달됩니다. 엣지 서버는 지연 시간을 최소화하면서 플레이어의 디바이스에 비디오 스트림을 전송하여 원활하고 고품질의 시청 환경을 보장합니다.
결론
라이브 스트리밍 솔루션을 구축할 때는 고려해야 할 사항이 매우 많습니다. 첫째, 특히 실시간 전송이 중요한 라이브 이벤트에서는 지연 시간과 버퍼링을 고려해야 합니다. 지연 시간이 길면 라이브 피드에 지연이 발생하여 최종 사용자가 매우 불쾌해할 수 있습니다. 또한 비디오 품질을 저하시키거나 중단을 유발할 수 있는 패킷 손실에 대한 아키텍처를 설계해야 합니다. 패킷 손실이 발생하면 최종 사용자는 일관되지 않고 불안정한 스트림으로 인해 어려움을 겪게 되며, 이는 시청 환경의 저하로 이어집니다. 마지막으로, 확장 및 로드 밸런싱이 가능해야 합니다. 서버 과부하 및 충돌로 인해 서비스가 중단되고 최대 부하를 효율적으로 처리하지 못할 수 있습니다. Akamai의 최적화된 전송 네트워크는 UDP 기반 가속, 수집 네트워크, 확장 가능한 CDN을 통해 이러한 모든 문제를 해결합니다.
라이브 스트리밍에 Akamai를 사용하면 라이브 비디오 스트림을 효율적이고 확장 가능하며 지연 시간이 짧은 방식으로 전송하여 최종 사용자에게 우수한 경험을 제공할 수 있습니다. Akamai를 통해 처리 능력을 네트워크 엣지에 더 가까이 가져감으로써 스트리밍 서비스는 성능을 최적화하고 확장성을 향상시킬 수 있습니다.
동영상 트랜스코딩에 대한 단계별 튜토리얼을 따라가려면 이 링크를 따라 mp4 파일을 HLS 형식으로 변환하세요. 미디어 서비스 라이브 스트림 프로비저닝 API에 대한 문서도 읽어볼 수 있습니다.
이를 직접 구현하는 방법에 대해 자세히 알아보려면 뉴스레터를 구독하거나 트위터 또는 LinkedIn을 통해 연결하거나 YouTube 채널을 구독하세요.
여러분 또는 여러분의 조직에서 비디오 트랜스코딩 및 Kubernetes 솔루션의 최적화를 고려하고 있다면, 가입하여 $100의 무료 크레딧을 받아 Linode의 솔루션을 사용해 볼 수 있습니다.
내용