[Lambda + S3 + FFmpeg] 파일 업로드 시 FFmpeg 사용

leyoug·2021년 4월 13일
3

aws 계정, s3 버킷 생성 스킵
코드 작성 예제 없음
개인 기록용

목적

S3에서 파일 업로드 시 Lambda 로 FFmpeg 실행

IAM 역할 생성

AWS - 서비스 - IAM - 역할 만들기 클릭

  1. 신뢰할 수 있는 유형의 개체 선택 - AWS 서비스
    사용 사례 선택 - Lambda
  2. 권한 정책 연결
    S3, CloudWatch Logs 권한이 필요함 (상황에 따라 strict 하게 변경)

AmazonS3FullAccess
CloudWatchLogsFullAccess

  1. 태그 추가 (선택 사항) 건너뜀
  2. 검토
    1. 역할 이름: lambda-ffmpeg-role

FFmpeg 계층 생성

계층을 생성하여 bin 파일을 실행할 수 있다

FFmpeg 다운

  1. https://johnvansickle.com/ffmpeg/ 홈페이지로 이동
  2. release: 4.4 - ffmpeg-release-amd64-static.tar.xz 다운 및 압축 해제
  3. ffmpeg-release-amd64-static 폴더 ffmpeg.zip 으로 압축

S3 업로드

ffmpeg.zip 파일을 S3 에 업로드

Lambda 계층 생성

AWS - Lambda - 추가 리소스 - 계층 - 계층 생성 클릭

  1. Amazon S3에서 파일 업로드 클릭하여 ffmpeg.zip 파일 경로 입력

Lambda 함수 생성

AWS - Lambda - 함수 - 함수 생성

  1. 런타임 설정
  2. 기존 역할 사용 - lambda-ffmpeg-role 설정
  3. 함수 생성

Layers 추가

계층 - [Add a layer] 클릭

  1. 사용자 지정 계층 - ffmpeg 선택

트리거 추가

  1. 버킷 - 트리거 적용할 버킷 설정
  2. 이벤트 유형 설정
  3. 접미사 - .webm 파일이 업로드 될때만 트리거되도록 한다
  4. 재귀 호출 발생할 수 있는지 한번 더 생각해보기

코드 작성

위에서 추가한 레이어 ffmpeg 은 아래와 같이
코드 내부에서 호출해 사용하면 된다

/opt/ffmpeg/ffmpeg

관리

CloudWatch 호출 로그 그룹 삭제

참고

https://aws.amazon.com/ko/blogs/media/processing-user-generated-content-using-aws-lambda-and-ffmpeg/
https://github.com/simalexan/s3-lambda-ffmpeg-mov-to-mp4-s3

profile
기록하자!

0개의 댓글