> 웹 프론트엔드 > JS 튜토리얼 > AWS Sideo 썸네일 생성기 - 서버리스 Node.js 솔루션 가이드

AWS Sideo 썸네일 생성기 - 서버리스 Node.js 솔루션 가이드

Barbara Streisand
풀어 주다: 2024-12-27 10:45:11
원래의
233명이 탐색했습니다.

참고: 두 부분으로 나누지 마십시오. 여기에는 분할을 정당화할 만큼 텍스트가 충분하지 않으며 기사에서는 선택에 대해 논의하지 않고 솔루션에 중점을 둡니다.

규모에 맞게 효율적이고 비용 효율적으로 동영상 썸네일을 생성해야 합니까? 전용 미디어 처리 서비스를 사용하는 것에 비해 실행 비용이 단 몇 푼도 드는 AWS Lambda를 사용하여 진정한 서버리스 솔루션을 구축해 보겠습니다.

우리가 만들려는 것

이 솔루션은 다음과 같은 Node.js Lambda 함수로 구성됩니다.

  • 일반적인 비디오 형식 처리
  • 워크로드에 따른 확장
  • 실패한 작업에 대한 재시도 논리 구현
  • 코드형 인프라를 통해 배포
  • 동영상 실행 비용은 1센트도 안 됩니다

왜 맞춤인가?

미리보기 이미지를 대규모로 생성하는 것은 매우 쉽거나 비용이 많이 들지 않습니다. 비디오의 경우 비용 요소가 특히 중요합니다. 이미지의 경우 동일한 유형의 출력을 크기 조정하고 자르고 저장하기만 하면 됩니다. 이 책임을 타사 클라우드 서비스에 오프로드하여 다른 기능 제공에 집중하거나 AWS VPC를 떠나지 않고도 약간의 작업만으로 작업을 수행할 수 있습니다. 동영상의 경우에는 경우가 다릅니다. 비디오 파일은 훨씬 더 크고 다양한 인코딩 표준을 지원해야 하며 최종 결과는 더 이상 비디오가 아닙니다. 본질적으로 정지 이미지를 추출하는 것입니다.

AWS 네이티브 = 매우 비싸다

AWS Sideo Thumbnail Generator - The Serverless Node.js Solution Guide

옵션을 조사할 때 저는 항상 애플리케이션이 실행되는 플랫폼에 고유한 솔루션을 찾습니다. AWS에서는 MediaConvert 또는 MediaLive입니다. 둘 다 전문가 수준의 비디오 처리가 필요할 때 훌륭하지만 비디오에서 썸네일을 가져오는 것이 전부일 때... 음, 확실히 할 수 있지만 이러한 사용 사례를 처리하도록 설계되어 있습니까? ? 꼭 그렇지는 않습니다.

놀랍게도 AWS에는 썸네일 생성 전용 서비스가 없습니다. 사용 가능한 솔루션은 스트리밍 미디어 지원 제공 또는 고급 비디오 변환 작업 실행과 같은 다른 사용 사례에 중점을 둡니다.

이러한 서비스로 이러한 기능을 구축하기 위한 요구 사항을 살펴보면 문제가 매우 분명합니다

  • AWS 미디어 서비스로 작업할 때는 비디오 출력이 정의되지 않은 처리 파이프라인을 생성할 수 없습니다. 전체 비디오를 처리하고 해당 프로세스의 부산물인 썸네일을 사용하기 위해서만 결과를 삭제해야 합니다.
  • 따라서 썸네일 생성기로서는 매우 비쌉니다. 처리된 동영상의 분당 0.0075달러를 지불하는 것은 별것 아닌 것처럼 느껴지지만 합산하면 매우 빠르게 증가합니다. 동영상 1,000개에 대해 15분마다 처리 비용이 듭니다. $100 이상일 것입니다.

동영상 썸네일 몇 개를 생성하는 데 모닝 커피를 마시는 것보다 비용이 더 많이 들까요? 😄 단순히 그 서비스가 강력하기는 하지만 썸네일 생성과 같은 간단한 작업에는 너무 과하기 때문입니다.

AWS 미디어 서비스의 실제 비용은 단지 달러 단위가 아니라 종종 필요하지 않은 복잡성에도 있습니다.

새로운 요구 사항이 발생할 때마다 내 마음은 '작업에 딱 맞는 도구 찾기' 모드로 전환됩니다. 나는 당신이 알고 있는 것을 따르지 않고 항상 가능한 한 많은 대안을 탐구하는 것의 중요성을 설교해 왔습니다. 깨진 레코드처럼 들리기 시작할 수 있습니다... 하지만 레코드가 재생되는 곡을 좋아하는 것 같아요! ??

질병이라고도 할 수 있습니다. 나는 엔지니어링 OCD 문제를 충분히 알고 있습니다... ?

AWS Sideo Thumbnail Generator - The Serverless Node.js Solution Guide

그러나 나는 빗나갔다...

AWS를 넘어

물론, 다른 솔루션도 있지만 그 자체로 골치 아픈 문제가 발생하는 경우가 많습니다.

  • 외부 서비스는 일반적으로 API 호출 또는 처리된 데이터 양에 따라 요금을 청구합니다
  • 처리를 위해 외부 서비스에 동영상을 업로드해야 하며 이는 송신 비용이 더 많이 발생함을 의미합니다
  • 확장성이 좋지 않아 제한을 처리해야 할 수 있습니다

맞춤형 목적으로 구축된 솔루션

저렴할 뿐만 아니라 실제로 필요한 것에 초점을 맞춘 서버리스 솔루션을 구축해 봅시다. 아주 적은 비용으로 동영상 썸네일을 생성할 수 있습니다. ?

시스템은 다음과 같은 AWS 서비스 및 도구를 사용합니다.

  • Amazon S3 - 소스 비디오 및 생성된 썸네일을 위한 스토리지
  • AWS Lambda - 서버리스 컴퓨팅 환경
  • FFmpeg - 비디오 처리 프레임워크
  • Docker - FFmpeg 및 Lambda 코드용 컨테이너 패키징
  • Amazon SQS - 처리 조정을 위한 메시지 대기열

AWS Sideo Thumbnail Generator - The Serverless Node.js Solution Guide

동영상이 소스 S3 버킷에 업로드되면 처리 요청을 대기열에 추가하는 이벤트가 트리거됩니다. Lambda 함수는 Docker 컨테이너에서 실행되는 FFmpeg를 사용하여 이를 선택하고 처리합니다. 생성된 썸네일은 대상 S3 버킷에 저장됩니다. 제한이나 인프라 관련 문제 등 복구 가능한 일시적인 문제는 자동으로 재시도되며, 실패한 다른 모든 이벤트는 감사 목적으로 자동으로 배달 못한 편지 대기열로 전송됩니다.

이 서비스는 두 가지 크기의 동영상 썸네일을 자동으로 생성합니다. 더 큰 버전에는 프레임 중앙에 반투명 비디오 아이콘이 포함되어 있어 사용자가 비디오 콘텐츠를 빠르게 식별할 수 있습니다.

샘플 프로젝트

  • GH에서 가져오기

서비스

  • 편성 영상 처리 유틸리티
  • FFmpeg
  • 두 가지 썸네일 유형
  • 오버레이가 있는 다양한 크기 컨테이너의 FFmpeg
  • 이것이 Lambda에서 Ffmpeg CLI를 사용할 수 있게 만드는 방법입니다
  • 도커파일 배포
  • 컨테이너 빌드
  • 서버리스 배포
  • Docker화된 Lambda 정의 테스트
  • 정수
  • e2e 서버리스
  • 이 시점에서 다른 건 없나요?

마법의 컨테이너?

다음은 Lambda와 함께 FFmpeg를 패키징하는 Dockerfile입니다.

돈을 보여주세요! ?

월별 1000개의 동영상을 처리하는 데 드는 비용을 분석해 보겠습니다.

AWS 미디어변환

  • 동영상 분당 $0.08
  • 동영상 1,000개 × $0.08 = $80

우리의 솔루션

  • 람다: 1024MB × 10초 × 1000 = $0.17
  • S3: 스토리지 GET/PUT = $0.05
  • 총액: $0.22

99.7% 비용 절감이군요! ?

AWS Sideo Thumbnail Generator - The Serverless Node.js Solution Guide

무엇이 잘못될 수 있나요? ?

이 솔루션은 훌륭하지만 문제점도 있습니다.

  • 메모리 사용량: FFmpeg는 메모리가 부족할 수 있습니다. 4K 비디오를 처리하는 경우 Lambda 메모리를 늘려야 할 수도 있습니다.
  • 시간 초과 제한: 매우 긴 동영상의 경우 Lambda의 시간 초과에 도달할 수 있습니다. 이러한 경우에는 단계 함수를 사용해 보세요.
  • 콜드 스타트: 컨테이너가 상당히 크기 때문에 첫 번째 호출이 느려질 수 있습니다.

다음은 무엇입니까? ?

이제 시작에 불과합니다! 이 솔루션을 다음으로 확장할 수 있습니다.

  • 다양한 썸네일 크기 생성
  • 동영상 메타데이터 추출
  • 미리보기 GIF 만들기
  • 동영상 워터마크 추가

마무리?

저희는 비용을 들이지 않고 비디오 썸네일 생성을 위한 비용 효율적이고 확장 가능한 솔루션을 구축했습니다. 더 이상 필요하지 않은 기능에 대해 비용을 지불하지 마세요!

기억하세요: 때로는 가장 좋은 솔루션은 가장 비싸거나 복잡한 솔루션이 아니라 필요한 것을 정확히 수행하는 솔루션입니다. 그 이상도 그 이하도 아닙니다.

메모

이 정보가 도움이 되었나요? 더 많은 AWS 및 서버리스 콘텐츠를 보려면 저를 팔로우해 보세요! 그리고 동영상이 아닌 썸네일이 현대 예술처럼 보인다면... 먼저 동영상 형식을 확인한 후 아래에 댓글을 남겨주세요! ?

농담은 제쳐두고 AWS에서의 비디오 처리 경험에 대해 듣고 싶습니다. 비용을 최적화할 수 있는 다른 창의적인 방법을 찾았습니까? 댓글로 공유해주세요!

부인 성명

이 솔루션은 프로덕션 환경에서 철저한 테스트를 거쳤지만 배포하기 전에 자체 환경에서 철저하게 테스트하시기 바랍니다. 불이 붙으면 훌륭한 마시멜로 레시피가 있어요! ?


--- 내 메모 - 기사의 요점

Docker를 Lambda로 사용하는 이유 - 첫 번째 선택은 아니지만 때로는 유일한 선택, 레이어 대안
AWS 미디어 서비스에 비해 실행 비용이 매우 저렴합니다
속도가 빠릅니다. 다양한 파일 크기에서 비교를 실행하세요
테스트 가능한 Ffmpeg

위 내용은 AWS Sideo 썸네일 생성기 - 서버리스 Node.js 솔루션 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿