민프

[AWS] S3 + Lambda + CloudFront + MediaConvert를 이용하여 Vod Streaming Server를 구축해보자 - 3. MediaConvert 자동화 (Lambda Trigger 설정) 본문

[AWS]

[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을 생성할 수 있도록 수정해보도록 하겠습니다. 

 

Comments