민프
[AWS] S3 + Lambda + CloudFront + MediaConvert를 이용하여 Vod Streaming Server를 구축해보자 - 3. MediaConvert 자동화 (Lambda Trigger 설정) 본문
[AWS] S3 + Lambda + CloudFront + MediaConvert를 이용하여 Vod Streaming Server를 구축해보자 - 3. MediaConvert 자동화 (Lambda Trigger 설정)
민프야 2024. 1. 26. 17:53
이전 포스팅에서는 S3 + CouldFront + MediaConvert를 연동해보았는데요
이번 포스팅에서는 이미지가 변환 전 S3에 넣기만 해도 알아서 MediaConvert가 될 수 있도록 해보려고 합니다.
1. Lambda Function Role 만들기 (MediaConvert Role, Lambda Role)
- IAM -> Role -> Create Role
- 사용 사례 : MediaConvert
- 권한 추가
- 역할 이름 지정 후 생성
Role이 잘 생성된 것을 확인할 수 있습니다.
해당 Role은 Lambda에서 MediaConvert에 Job을 추가할 때 사용됩니다.
-
role_lambda_vod_execution_test 생성하기
다시 Role 생성하기를 눌러서 이번엔 서비스 또는 사용 사례에 Lambda를 넣어준다.
- 권한 추가하기
AWSLambdaBasicExecutionRole을 검색한 후 선택하고, 다음을 눌러줍니다.
- 역할 이름 지정 후 생성
- 생성된 2개의 규칙 확인 (MediaConvert, Lambda)
- role_lambda_vod_execution_test에 inline 규칙 추가하기
아래 JSON을 넣어준다.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*",
"Effect": "Allow",
"Sid": "Logging"
},
{
"Action": ["iam:PassRole"],
"Resource": ["이전에 생성한 MediaConvertRole의 ARN"],
"Effect": "Allow",
"Sid": "PassRole"
},
{
"Action": ["mediaconvert:*"],
"Resource": ["*"],
"Effect": "Allow",
"Sid": "MediaConvertService"
},
{
"Action": ["s3:*"],
"Resource": ["*"],
"Effect": "Allow",
"Sid": "S3Service"
}
]
}
출처 : https://lemontia.tistory.com/1034
이전에 생성한 MediaConvertRole ARN은 이전에 만들어 놓은 role -> DetailPage에 있습니다.
복사 후 입력해주고, 다음을 눌러줍니다.
- 검토에서 이름 설정 후 정책 생성
정책이 잘 생성된 것을 확인하실 수 있습니다.
2. Lambda Function 생성
1. 함수 이름
2. 런타임
3. 실행 역할에서 기존 역할 사용에 체크해주시고
4. 기존 역할에서 만들어두었던 역할(role_lambda_vod_execution_test)을 선택해줍니다.
- S3 TRIGGER 추가
아래 사진에서 박스 친 부분 순서대로 말씀드려보면
1. 트리거 : S3
2. 버켓 : s3/input-bucket
3. 이벤트 타입 : 모든 object가 생성될 때 이벤트 발생
4. Prefix : vod/ 이하 모든 폴더가 대상이 됩니다.
5. Input과 Output을 같이 설정하지 말라는 문구인데 Input과 Output 박스를 같이 설정해두면 무한루프에 빠질 수 있어서 과금이 되기 때문에 알림 체크입니다. 특별한 경우가 아니면 절대로 Input과 Output을 같이 설정하지 마세요. 어마어마한.. 과금이 기다리고 있습니다.
추가를 누르시면 트리거가 잘 생성된 것을 확인하실 수 있습니다.
3. (선택) 폴더구조 수정
input-bucket에서 dev, prod, qa로 구조를 변경하였습니다.
여기까지 하셨으면 Lambda Function을 만들고 Trigger 및 권한 설정하는 과정을 완료하신겁니다.
다음 포스팅에서는 Lambda Function을 수정하여서 event를 받은 후 mediaConvert에 Job을 생성할 수 있도록 수정해보도록 하겠습니다.