aws 계정, s3 버킷 생성 스킵
코드 작성 예제 없음
개인 기록용
목적
S3에서 파일 업로드 시 Lambda 로 FFmpeg 실행
IAM 역할 생성
AWS - 서비스 - IAM - 역할 만들기 클릭
- 신뢰할 수 있는 유형의 개체 선택 - AWS 서비스
사용 사례 선택 - Lambda
- 권한 정책 연결
S3, CloudWatch Logs 권한이 필요함 (상황에 따라 strict 하게 변경)
AmazonS3FullAccess
CloudWatchLogsFullAccess
- 태그 추가 (선택 사항) 건너뜀
- 검토
- 역할 이름: lambda-ffmpeg-role
FFmpeg 계층 생성
계층을 생성하여 bin 파일을 실행할 수 있다
FFmpeg 다운
- https://johnvansickle.com/ffmpeg/ 홈페이지로 이동
- release: 4.4 - ffmpeg-release-amd64-static.tar.xz 다운 및 압축 해제
- ffmpeg-release-amd64-static 폴더 ffmpeg.zip 으로 압축
S3 업로드
ffmpeg.zip 파일을 S3 에 업로드
Lambda 계층 생성
AWS - Lambda - 추가 리소스 - 계층 - 계층 생성 클릭
- Amazon S3에서 파일 업로드 클릭하여 ffmpeg.zip 파일 경로 입력

Lambda 함수 생성
AWS - Lambda - 함수 - 함수 생성
- 런타임 설정
- 기존 역할 사용 - lambda-ffmpeg-role 설정
- 함수 생성

Layers 추가
계층 - [Add a layer] 클릭
- 사용자 지정 계층 - ffmpeg 선택

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

코드 작성
위에서 추가한 레이어 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