개발자
영상파일을 서버 - aws s3로 저장하는 로직을 구현중입니다. 서버단에서 영상파일에 대한 편집작업을 한 다음 s3에 원본과 같이 저장시키는 것이 계획이었습니다. 서버에서 ffmpeg, fluent-ffmpeg를 이용한 변환작업은 다음과 같습니다. - 영상 watermark 작업 - hls를 위한 .m3u8파일 변환 작업 - 썸네일 생성 작업(.ts파일의 0초대를 썸네일 및 미리보기로 생성)- 이부분은 테스트중입니다. s3 url을 요청하여 영상파일을 실행시키는 계획을 생각했고 이는 로컬에서 성공했습니다. ec2서버에 배포한다음 위 과정을 실행해보니 변환과정에서 서버단 부하가 너무 심해서 변환하는 시간이 너무길거나 서버가 다운되는 이슈가 생겼습니다. ec2성능 자체를 올리고 업로드 용량 제한도 다시 설정할 계획이나 여전히 많은 유저가 이 기능을 사용할 경우 서버가 견디지 못할 가능성이 있다고 생각합니다. 지금 생각해보고 있는 대안은 두가지입니다. 대안 1: aws mediaConverter를 이용해 변환한다. 1. 원본 영상을 버킷a로 보낸다. 2. 람다 트리거를 이용해 aws mediaConverter로 변환요청을 보낸다. 3. 변환한 영상을 버킷 b에 저장한다. 4. 클라이언트에서 버킷 b에서 cloudFront를 통해 요청한다. 대안 2: 업로드 전용 ec2를 생성하여 따로 변환한다.(처음 계획했던 과정에 ec2를 새로 생성, 성능 고도화하기) mediaConverter의 영상변환에 필요한 작업 생성(또는 작업 프리셋 생성)이 너무 어려웠던 기억이 있어 ffmpeg를 이용할 생각을 하였는데 영상변환에 너무 많은 리소스가 들어간다는 생각을 못했습니다. 영상 변환 및 업로드 작업을 경험해본 분들이 있다면 좋은 공유를 받고싶습니다.
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 03월 23일
각 대안마다 장단점이 있으므로 여러 가지 요소를 고려해야 합니다. 1. **AWS MediaConvert**을 사용하는 방법은 서버 부하를 크게 줄일 수 있는 방법입니다. AWS MediaConvert는 스케일을 확장하여 처리를 관리하므로 변환된 파일이 필요할 때 이를 가져올 수 있습니다. 하지만 비용이 상대적으로 높으며, 설정과 사용에 더 많은 AWS 지식이 필요합니다. 2. **별도의 EC2 인스턴스**를 사용하면 전체 시스템에 대한 더 세밀한 제어가 가능합니다. 원하는대로 ffmpeg 및 기타 도구를 설정하고 실행할 수 있습니다. 하지만 서버 부하 문제는 여전히 존재하며, 별도의 EC2 인스턴스비용도 생각해야 합니다. 또한 AWS Elastic Transcoder라는 서비스도 고려해보시는 것을 추천드립니다. 이 서비스는 MediaConvert와 유사하지만 비용 구조와 설정 옵션이 다르다는 차이점이 있습니다. 추가적으로 S3 이벤트 알림과 Lambda를 활용하여 업로드 이벤트가 발생했을 때 특정 작업을 자동화 하는 것도 한 번 고려해보세요. 어떠한 선택도 완벽하지는 않으므로 비즈니스의 요구사항, 예산, 팀 능력 등을 고려하여 결정을 내리는 것이 중요합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!