MBC: 예능 연구소 사례 분석

jjuyaa·2022년 9월 1일
0

CloudClub

목록 보기
1/8

MBC 사례의 경우 예능 연구소touch MBC 두 가지 서비스에 대해 AWS 환경을 도입해 개선을 이루냈습니다. 그 중 우선 예능 연구소의 경우에 대해 분석하겠습니다.

1. MBC 예능 연구소란?

  • 인터넷 상에 영상을 올려 시청자들이 볼 수 있도록 제공되는 동영상 기반의 서비스
  • 주로 불특정 다수에게 영상 위주의 서비를 제공하는 비가입 서비스

2. 당면 과제

  • 만약 인기 있는 아이돌이 컴백을 하거나 네이버 메인에 영상이 올라올 경우, 해당 콘텐츠에 대해 트래픽이 증가할 것. 기존의 사내 프라이빗 클라우드를 사용해서는 트래픽 급증과 같은 탄력적인 트래픽 예측 불가 & 추가적 비용 부담
  • 사용자들은 다양한 종류의 모바일 디바이스로 콘텐츠에 접근 따라서 단말에 따른 서비스 포맷이 달라 각 단말에 따른 파일별 트랜스 코딩의 수동적 작업 시행됨

3. 해결 방법

3-1. cloudfront 활용 탄력적인 트래픽 대비해 영상 소스 제공

https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Introduction.html

[cloudfront] 란

  • 정적 & 동적 웹 컨텐츠 예를 들어 .html, .css, .js 그리고 이미지 파일과 같은 것들의 배포를 빠르게 하는 웹 서비스
  • 콘텐츠가 이미 지연 시간이 가장 낮은 엣지 로케이션에 있는 경우 CloudFront가 콘텐츠를 즉시 제공
  • 콘텐츠가 엣지 로케이션에 없는 경우 CloudFront는 콘텐츠의 최종 버전에 대한 소스로 지정된 오리진(Amazon S3 버킷, MediaPackage 채널, HTTP 서버(예: 웹 서버) 등)에서 콘텐츠를 검색
  • cloudfront를 사용하지 않을 경우 사용자의 요청은 컨텐츠를 찾기 위해 많은 network를 이동하며 지연 시간이 길어긴다. 그러나 cloudfront 를 활용할 경우 가까운 에지 로케이션으로 요청이 라우팅되어 컨텐츠 제공 시간을 최적으로 줄일 수 있다.
  • 또한 컨텐츠의 복사본이 다양한 에지 로케이션에 저장되므로 컨텐츠에 안정성과 가용성을 높일 수 있다.

cloudfront set up 방법

cloudfront distribution을 생성해 cloudfront 에 어떤 경로로 컨텐츠가 제공되길 원하는지, 컨텐츠 전달을 track 하고 , manage 하는 방법 설계할 수 있다

1. 아마존 S3 버킷 또는 HTTP server 와 같은 origin server 에서 부터 파일이 전세계 cloudfront edge location 으로 분배된다.
2. orgin server에 파일을 올리면 cloudfront url 을 알고 있는 사용자가 해당 object 에 접근 가능하다. object 에 접근 허용을 제어 가능
3. cloudfront distribution 을 생성해 파일에 접근할 때 어떤 origin 에 접근해야하는지 설정, 접근에 대한 Log 기록등을 설정 가능하고, 그 distribution은 edge location에 전달된다.

탄력적인 트래픽에 대처하기 위해 cloudfront 도입 이유

https://goddaehee.tistory.com/173

  • origin 서버에 모든 사용자가 몰릴 경우 origin 서버가 모든 사용자에 응답 해야한다. 이럴 경우 트래픽 부하가 높아지고, 장애 가능성 또한 높아진다.
  • origin 서버를 늘릴 경우 시간 & 비용에 대한 부담이 높아지고, 이미 서버를 늘려놓았는데 사용하지 않는다면 낭비
  • CDN 을 통해 cache 서버 (edge location) 로 가까운 사용자의 요청을 따로 처리할 경우 트래픽이 급증하더라도 탄력적으로 대응 가능 & 빠르게 영상 제공 가능

3-2. S3, Lambda, ETS 활용해 자동화된 트랜스 코딩 환경 구축

S3 객체 Lambda를 사용하여 객체 변환

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/transforming-objects.html

  • S3 객체 Lambda를 통해 Amazon S3 GET 요청이 올 경우 자체 코드를 추가해 사용자에게 데이터가 반환될 때 데이터를 수정 및 처리할 수 있다.
  • AWS Lambda는 컴퓨팅 리소스를 관리할 필요 없이 고객 정의 코드를 실행하느느 서버리스 컴퓨팅 서비스
  • 사용자가 지정한 Lamdba 함수를 작성 & 실행하여 특정 사용에 맞게 데이터 변환 가능
  • Lambda 함수를 구성하고 s3 객체 Lambda 서비스 앤드포인트에 연결하면 s3 가 자동으로 함수 호출

Amazon Elastic Transcoder

https://docs.aws.amazon.com/ko_kr/elastictranscoder/latest/developerguide/introduction.html

  • S3 에 저장된 미디어 파일을 소비자 재생 디바이스에 필요한 형식의 미디어 파일로 변환 가능

Elastic Transcoder에는 4가지 구성

1. 작업 : 트랜스 코딩 수행. 하나의 파일을 최대 30가지 형식으로 . 트랜스 코딩하려는 각 형식에 대해 트렌스 코딩된 파일에 사용할려는 오디오 & 비디오 설정을 포함하는 프리셋이라 하는 템플릿 지정 필요
2. 파이프라인 : 트랜스 코딩 작업 관리 대기열, 작업 생성시 작업을 추가하고자 하는 파이프라인 지정
3. 사전 설정 : 한가지 형식의 미디어 파일 다른 형식으로 트랜스 코딩 하기 위한 대부분의 설정 포함하는 템플릿
4. 알림: 작업 처리 시작, 완료 시간, 경고 오류 상태 알려줌

s3 + lambda + ETS 통한 대략적 트랜스 코딩 자동화 과정

https://jeongchul.tistory.com/582

  • 기존에 각 단말에 따른 파일별 트랜스 코딩 작업을 수동으로 했던 것을 s3에 파일이 저장될 경우 lambda 함수를 통해 transcoder가 작업을 하도록 하는 일련의 과정 이뤄질 수 있다.

느낀점

첫 사례 분석이고 , aws에 대한 지식이 부족해 시작에 어려움을 겪었다. 비교적 많이 들어보았던 cloudfront, s3 와 관련된 사례를 분석해보며 각각 어떤 역할을 수행하는지 , 그 역할이 이 사례에서 왜 필요했는지 생각해 볼 수 있는 시간이였다.

0개의 댓글