이슈
•
•
•
→ 지속적인 비디오 강의가 느리다는 이슈 보고
원인
Client에서 m3u8 포맷으로 전환된 url로 접근하지 않고, s3.mp4 파일로 접근하여 동영상을 재생
1.
[ 기존방식 ] 컨텐츠팀에서 직접 S3에 접근하여 비디오 업로드 후, S3 주소를 입력 방식
a.
mildangvideo 라는 버킷에 비디오 업로드
b.
해당 버킷에 파일이 올라가면, lambda로 트리거되어 AWS Elemental Mediaconvert 동작하여 mildangvideo/hls/{fileName}.m3u8 업로드 (화질별 ts 파일로 나뉘어져 저장)
c.
컨텐츠팀에서 올린 비디오 S3 주소가 클라이언트에 들어오면, 자동으로 해당 버킷내에 있는 hls 폴더로 주소를 클라이언트 코드에서 변경하여 접근
i.
파일이 존재한다면, 스트리밍 처리
ii.
존재하지 않는다면, 기존 파일 활용
2.
[ 현재방식 ] 비디오 파일을 직접 업로드
a.
(문제의 시작) presignedURL을 BE에서 제공받아, 해당 버킷으로 동영상 업로드
i.
presignedURL은 범용(음성, 이미지, 비디오 등)으로 쓰이는 API이기 때문에, mildang 이라는 버킷으로 정해져있음
b.
해당 버킷에 파일이 올라가면, lambda 트리거가 걸리지 않아 AWS Elemental Mediaconvert가 동작하지 않음
c.
S3 주소가 클라이언트에 전달되어도, hls 폴더가 존재하지 않기 때문에, 기존 파일 활용
i.
S3 주소가 그대로 노출되어, cdn 처리도 되어 있지 않았음 → 성대님이 @3/13/2025 처리 후 배포
해결방안
•
[BE] presignedURL에 content-type이 video라면, 버킷을 바꿔서(mildang → mildangvideo) 전달
1.
S3 Script + DB Migration Script
작업사항
a.
[Script] 24년 11월 7일 이후 mildang 버킷에 업로드 된 mp4 파일 전체를 mildangvideo로 옮긴다 → hls 트리거 → m3u8 파일 생성
b.
[Script] 24년 11월 7일 이후 비디오타입인 SA, SAI의 S3 주소의 버킷을 mildang → mildangvideo로 바꿔준다.
2.
Script + FE (작업소요시간 가장 작을 것으로 판단)
a.
[Script] 24년 11월 7일 이후 mildang 버킷에 업로드 된 mp4 파일 전체를 mildangvideo로 옮긴다 → hls 트리거 → m3u8 파일 생성
b.
•
[BE] 코드작업 필요 없음
1.
Lambda + Script
a.
[Lambda] mildang 버킷을 바라보는 새로운 람다 트리거 생성 및 적용
b.
[Script] 24년 11월 7일 이후 생성된 모든 mp4 파일에 대해 hls 및 /hls 폴더에 생성
타겟
•
24년 11월 7일 이후 모든 강의 파일
확인필요
•
ncloud 환경
◦
비디오 블럭은 직접 파일을 drag and drop으로 올리는 기능이 오픈되어 있지 않음