AWS Elemental MediaConvert 콘텐츠 소유자와 배포업체에게 모든 규모의 미디어 라이브러리에 대한 확장 가능한 비디오 처리를 제공하는 파일 기반 비디오 처리 서비스입니다.
- AWS Elemental MediaConvert란 ? : https://docs.aws.amazon.com/ko_kr/mediaconvert/latest/ug/what-is.html
AWS Elemental MediaConvert란 무엇인가요? - MediaConvert
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
AWS Elemental MediaConvert 을 사용하여 비디오 파일 트랜스코딩 자동화를 실습을 통해 진행 해보겠습니다.
실습 아키텍처는 위와 같으며 "S3 버킷에 영상 파일 업로드 -> S3 업로드 동작을 트리거로 MediaConvert 작업 실행 -> 트랜스코딩 완료된 영상 대상 S3 버킷에 저장 -> CloudFront를 통한 영상 확인" 의 순서로 동작 합니다.
실습에서의 MediaConvert 작업은 소스 버킷에 올라간 영상 파일 포맷을 MP4 포맷의 640 x 360, 960 x 540, 1280 x 720 3가지 해상도로 변환합니다.
실습 진행은 버지니아 리전에서 진행하겠습니다.
1. S3 버킷 생성
- 트랜스코딩을 할 비디오가 저장될 Source 역할의 S3 버킷과 트랜스코딩 작업이 완료된 Output이 담길 S3 버킷 2개를 생성하도록 하겠습니다.
Output 버킷은 Amazon CloudFront를 통한 읽기 액세스만 허용하고, 해당 버킷에는 CORS 정책 또한 적용하겠습니다.
1) S3 버킷 생성
2) destination 버킷 권한 수정 (CORS 적용)
2. CloudFront 생성
- 콘텐츠를 서빙할 CDN 서비스인 CloudFront 생성
1) CloudFronbt 콘솔 접속 후 배포 생성 클릭
2) 원본 도메인 필드에 이전에 만든 대상 S3 버킷 선택
3) 원본 액세스 에서 원본 엑세스 제어 설정 선택
4) 응답 헤더 정책 에서 SimpleCORS를 선택
5) 웹 애플리케이션 방화벽(WAF) 보안 보호 비활성화 선택
6) 최하단의 배포 생성 클릭
7) 새 화면의 상단의 "S3 버킷 정책을 업데이트 해야 합니다." 경고문 오른쪽의 정책 복사 버튼 클릭
8) 대상 버킷으로 이동 후 버킷 정책의 편집 버튼을 클릭 하고 복사한 정책 붙여넣고 변경 사항 저장 클릭
3. IAM 역할 생성
- MediaConvert가 S3 버킷에서 읽고 쓰는 것과 상태 이벤트를 CloudWatch에 기록하기 위한 IAM 역할과 Lambda 에 쓰일 IAM 역할 생성 하기
1) IAM 콘솔 접속 후 역할 만들기 클릭
2) 아래와 같이 선택 후 다음 버튼 클릭
3) 다음 버튼 클릭
4) 임의의 역할 이름 입력 후 역할 생성 클릭
5) 다시 IAM 콘솔로 돌아와 역할 만들기 클릭
6) 아래와 같이 선택 후 다음 버튼 클릭
7) 권한 추가 에서 AWSLambdaBasicExecutionRole 선택 후 다음 버튼 클릭
8) 임의의 역할 이름 입력 후 역할 생성 클릭
9) 위에서 생성한 IAM 역할 선택 후 권한 탭에서 인라인 정책 생성 클릭
10) JSON 탭 선택 후 아래 정책 복사 후 붙여넣기 (아래 Resource 부분의 "<ARN for VODMediaConvertRole>" 을 4)에서 생성한 IAM 역할의 ARN으로 변경)
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*",
"Effect": "Allow",
"Sid": "Logging"
},
{
"Action": [
"iam:PassRole"
],
"Resource": [
"<ARN for VODMediaConvertRole>"
],
"Effect": "Allow",
"Sid": "PassRole"
},
{
"Action": [
"mediaconvert:*"
],
"Resource": [
"*"
],
"Effect": "Allow",
"Sid": "MediaConvertService"
}
]
}
11) 다음 버튼 클릭
12) 임의의 정책 이름 입력 후 정책 생성 버튼 클릭
4. Lambda 함수 생성
- 소스 버킷에 업로드 된 영상 파일에 대한 MediaConvert 작업을 Lambda 함수를 통해 자동화 해보겠습니다.
1) Lambda 콘솔 접속 후 함수 생성 버튼 클릭
2) 아래와 같이 입력 후 함수 생성 버튼 클릭
3) 왼쪽의 + 트리거 추가 를 선택하고 S3를 트리거로 선택
4) 트리거 구성에서 Bucket 에는 이전에 생성한 소스 버킷 선택, 나머지 값은 그대로 둔 후 마지막 재귀 호출 경고 확인 후 추가 버튼 클릭
5) Lamda 함수 페이지의 환경 변수 에서 아래와 같이 입력 후 저장 클릭
- DestinationBucket = vod-destination-us-east1-YOURLASTNAME-MMDDYYYY (위에서 생성한 대상 버킷 )
- MediaConvertRole = arn:aws:iam::계정 번호:role/VODMediaConvertRole (위에서 생성한 첫번째 IAM 역할)
6) 일반 구성 에서 편집을 클릭하고 제한 시간 = 2분 입력 후 저장 클릭
7) 코드 에서 lambda_function.py 두 번 클릭 한 후 아래의 소스 코드 다운로드. 복사 후 붙여넣기 진행
8) 왼쪽에서 함수가 포함된 폴더를 마우스 우클릭 후 New File 생성. 이름을 job_template.json으로 지정
9) 아래의 MediaConvert 작업 템플릿 다운로드. 복사 후 붙여넣기 진행
10) Deploy 버튼 클릭하여 배포 진행
5. 자동화 테스트
- 소스 버킷에 영상 파일을 업로드 하여 MediaConvert 작업 자동화 테스트를 진행
1) S3 콘솔로 이동하여 생성한 소스 버킷 선택
2) 테스트 용 영상 파일 업로드
3) MediaConvert 작업 페이지에서 소스 업로드에 의해 트리거된 람다 함수에 의해 호출된 작업이 표시 확인
4) 작업 완료 후 대상 버킷에 영상 업로드 확인
5) CloudFront 배포 도메인을 통한 영상 확인
이상으로 실습 진행해봤습니다.
해당 실습은 MP4 포맷의 영상으로의 변환이므로 다른 포맷을 원하실 경우 MediaConvert 작업 템플릿을 해당 포맷으로 생성해서 진행하시면 됩니다.
감사합니다.
Filestreaming on AWS
Process videos for web streaming using AWS services for storage and media transcoding
catalog.us-east-1.prod.workshops.aws
'AWS' 카테고리의 다른 글
AWS User Notifications 로 AWS Management Console 로그인 알람 받기 (0) | 2023.12.19 |
---|---|
Amazon QuickSight 를 사용해 CloudTrail 이벤트 모니터링 하기 (0) | 2023.12.12 |
Amazon Personalize를 활용한 실시간 추천 사이트 만들기 (0) | 2023.07.05 |
AWS CodeSeries를 활용한 CI/CD 구축 (0) | 2023.07.03 |
AWS EC2 Instance Connect Endpoint 사용해보기 (0) | 2023.06.28 |