MUVI가 S3+CloudFront를 사용하여 제로 다운타임으로 글로벌 OTT 플랫폼을 제공하는 방법 2022년 12월 1일

게시 됨: 2022-12-01

OTT는 이제 어디에나 있습니다. 모바일이든 스마트 TV이든 OTT는 차세대 엔터테인먼트의 첫 번째 라인이 되었습니다. 그리고 OTT 플랫폼의 인기가 높아짐에 따라 OTT 비즈니스에서도 OTT 트래픽이 급격히 증가하고 있습니다! 그리고 이 트래픽은 향후 몇 년 동안 더욱 증가할 것으로 예상됩니다.

하지만 갑작스러운 트래픽 급증에 대비하지 못했다면? 예상보다 훨씬 많은 트래픽이 발생하면 어떻게 됩니까? 이러한 예기치 않은 방문자는 기술적으로 충분히 준비되지 않은 경우 플랫폼에 심각한 문제를 일으킬 수 있습니다. 트래픽이 갑자기 증가하면 서버가 청중에게 서비스를 제공하는 데 어려움을 겪기 때문에 원치 않는 다운타임이 발생할 수 있습니다. S3+Cloudfront에서 애플리케이션과 웹 사이트를 호스팅하면 갑작스러운 확장성 요구 사항을 처리하는 데 도움이 될 수 있습니다.

이 블로그에서는 그렇게 할 수 있는 방법에 대해 자세히 논의할 것입니다. 자, 시작합시다!

S3+ CloudFront에서 React/Angular/NodeJS 애플리케이션 호스팅의 이점

Web 2.0은 클라우드 컴퓨팅 및 클라우드 스토리지 인프라에 크게 의존해 왔습니다. 클라우드 스토리지는 더 많은 콘텐츠를 쉽게 저장할 수 있는 확장성을 제공했습니다. 그리고 시간이 지남에 따라 플랫폼은 스트리밍 서비스를 위해 클라우드로 마이그레이션해야 할 필요성도 깨달았습니다.

그렇기 때문에 S3+CloudFront에서 쉽게 호스팅할 수 있는 React/Angular/Node JS 아키텍처로 이동했습니다. 이 프로세스에는 여러 가지 이점이 있습니다.

S3+CloudFront에서 React/Angular/Node JS 애플리케이션을 호스팅하면 실제로 시스템에서 apache, Nginx 또는 java tomcat과 같은 웹 서비스를 사용하지 않아도 됩니다. 대신 애플리케이션 또는 웹 사이트가 S3 버킷에서 실행됩니다.

그렇게 함으로써 귀하의 비즈니스는 다음과 같은 주요 이점을 얻을 수 있습니다.

1. 서버 수준에서 애플리케이션 중단 없음

이 프로세스에서 서버 사용이 제거되고 S3+CloudFront 기반 아키텍처로 대체되므로 더 이상 서버 측 중단 가능성이 없습니다. 플랫폼에서 예기치 않은 트래픽 급증이 발생하더라도 콘텐츠가 S3 버킷에서 시청자에게 직접 스트리밍되기 때문에 다운타임이 발생하지 않습니다.

2. 한 번에 N개의 요청을 처리합니다.

플랫폼이 S3+CloudFront에서 호스팅되면 더 이상 특정 서버 용량에 의해 제한되지 않기 때문에 무제한 보기 요청을 처리할 수 있습니다. 따라서 귀하의 플랫폼은 확장성이 뛰어납니다.

3. 글로벌 실적

S3+CloudFront 아키텍처를 사용하면 전 세계적으로 동일한 속도로 작동하는 플랫폼을 구축할 수 있습니다. S3+CloudFront 아키텍처는 AWS CDN 네트워크와 통합되므로 보기 요청은 가장 가까운 POP 위치에서 CloudFront에 의해 이행됩니다. 따라서 콘텐츠가 더 빨리 전달되므로 대기 시간과 로드 시간이 줄어듭니다.

S3+CloudFront에서 플랫폼을 호스팅하는 방법: 기술 세부 정보

S3+CloudFront에서 플랫폼을 호스팅하려면 먼저 React JS, Node JS 또는 Angular JS 기반 플랫폼 아키텍처를 개발해야 합니다. 이러한 플랫폼은 문제 없이 S3+CloudFront에서 쉽게 호스팅할 수 있습니다.

코드가 준비되면 아래 단계에 따라 프로세스를 완료해야 합니다.

  • 먼저 AWS 계정에서 S3 버킷을 생성하는 것부터 시작해야 합니다. 이 버킷은 애플리케이션을 저장하는 데 사용됩니다. 여기에서 S3 버킷을 선택하려면 AWS 정적 호스팅 애플리케이션을 생성해야 합니다.
  • 다음으로 위에서 생성한 S3 버킷의 이름을 사용하여 CloudFront 배포 ID를 생성해야 합니다.
  • CloudFront 배포 ID를 생성했으면 CloudFront 배포 ID 구성에서 Origin 실드를 활성화해야 합니다.
  • 다음으로 애플리케이션의 요구 사항에 맞게 CloudFront를 구성해야 합니다. 이는 애플리케이션 유형, 해당 기능 및 POP 위치의 캐시 데이터 저장 시간에 따라 CloudFront를 구성하여 수행할 수 있습니다.
  • 구성을 완료하면 CloudFront 배포의 CNAME을 추가하고 그에 따라 SSL을 설치해야 합니다.
  • 그런 다음 CloudFront 배포 ID를 사용하여 route53에서 도메인/하위 도메인을 구성합니다. 도메인 변경이 전파되면 애플리케이션이 도메인 이름으로 작업을 시작합니다.

이제 S3 버킷에서 직접 콘텐츠를 스트리밍하도록 설정되었습니다!

전체 시스템 워크플로는 아래에 제공된 흐름도와 다소 비슷합니다.

순서도 - MUVI가 S3+CloudFront를 사용하여 다운타임 없이 글로벌 OTT 플랫폼을 제공하는 방법

S3+CloudFront 기반 호스팅을 배포하기 위한 샘플 코드

스크립트 파일 이름: deploy.sh

==================================================== ========

BUCKET_NAME=$1

DISTRIBUTION_ID=$2

에코 "– 설치 –"

# 종속성 설치

원사 – 생산

에코 "– 빌드 –"

# 짓다

원사 빌드

에코 "– 배포 –"

# S3 버킷과 동기화 빌드

aws s3 동기화 빌드 s3://$BUCKET_NAME

# cloudFront에서 캐시 무효화

aws cloudfront create-invalidation –distribution-id $DISTRIBUTION_ID –paths “/*” –no-cli-pager

==============================================

S3 버킷 이름:

CloudFront 배포 ID:

실행할 명령

# sh deploy.sh “YOUR_BUCKET_NAME” “YOUR_DISTRIBUTION_ID”

방법의 한계

이 방법은 S3 버킷에서 직접 정적 페이지를 호스팅하는 데 놀라운 일을 할 수 있지만 한 가지 제한이 있습니다. S3+CloudFront를 사용하는 정적 호스팅에서는 .htaccess가 작동하지 않습니다. .htaccess는 웹 서버가 실행되는 곳에서만 작동하기 때문입니다. 그러나이 환경에서는 웹 서버를 사용하지 않습니다. 따라서 .htaccess가 작동하지 않습니다.

그러나 플랫폼의 정상적인 기능을 전혀 방해하지 않으므로 걱정할 필요가 없습니다!

요약하자면

S3+CloudFront에서 React/Node/Angular JS 플랫폼을 호스팅하면 호스팅 서버에서 설정한 제한을 제거하여 다운타임을 줄이고 확장성을 높일 수 있습니다. 따라서 더 이상 예기치 않은 트래픽 급증에 대해 걱정할 필요가 없습니다.

MUVI는 S3+CloudFront를 사용하여 정적 웹사이트 호스팅을 성공적으로 구현했습니다. 당사의 내부 커뮤니케이션 웹사이트인 intranet.muvi.com은 성공적으로 호스팅되었으며 훌륭하게 작동하고 있습니다. 앞으로도 동일한 기술을 사용하여 고객에게 서비스를 제공할 수 있기를 기대합니다!

여러분 모두에게 작별 인사를 하기 전에 이 기사를 작성하는 데 도움을 준 엔지니어링 팀, 특히 Ranjan Kumar Gayadhar Khilar 에게 감사를 전하고 싶습니다 .

OTT 플랫폼 시작