-
Notifications
You must be signed in to change notification settings - Fork 1
Description
2차 테스트 진행 목적
서버리스 트랜스코딩 시스템 1차 테스트 때는 단일 해상도(1080p)로 트랜스코딩하는 것만 테스트했다.
그때 AWS Lambda 대시보드에서 최대 메모리 설정을 3008MB까지만 할 수 있었기 때문에 vCPU 2개 미만에서는 다양한 해상도로 트랜스코딩하는 것이 불가능했기 때문이다. (AWS Lambda의 타임아웃은 15분이 최대)
AWS 측에 직접 문의글을 남겨 최대 10,240MB로 설정했다.
테스트
- 테스트 잡: 영상을 트랜스코딩하여 다양한 해상도(360p, 480p, 720p, 1080p)의 m3u8, ts, master m3u8 파일 생성
- 테스트 데이터: 45.3MB 크기의 영상 (2분28초 길이)
- 메모리: 10,240MB
- vCPU: 5.7개
ARM64
- 실행 시간: 228918.09ms (3분 50초) (Cold Start)
- 비용: 0.03USD
x86_64
- 실행 시간: 185743.11ms (3분 6초) (Cold Start)
- 비용: 0.03USD
결과
AWS Lambda에서는 x86_64 아키텍처가 성능이 더 좋았다. 비용도 x86_64가 ARM64보다 기본적으로 비싸지만, 실행 시간 차이 덕분에 비용이 똑같이 나왔다!
AWS에서도 미디어 인코딩에는 ARM64를 사용하는 것이 가성비가 좋다고 추천한다.
arm64 아키텍처를 사용하는 데 따른 이점
arm64 아키텍처(AWS Graviton2 프로세서)를 사용하는 Lambda 함수는 x86_64 아키텍처에서 실행되는 동일한 함수보다 훨씬 우수한 가격 대비 성능을 실현할 수 있습니다. 고성능 컴퓨팅, 비디오 인코딩 및 시뮬레이션 워크로드와 같은 컴퓨팅 집약적 애플리케이션에는 arm64를 사용하는 것이 좋습니다.
비용이 기본적으로 ARM64가 더 저렴하기 때문에 기본적으로 그렇게 생각할 수 있지만, x86_64로 실행했을 때 그만큼 실행시간이 줄어들기 때문에 시간을 기준으로 비용을 계산하는 AWS Lamdba에서는 위와 같은 결과가 나올 수 있다.
EC2와의 비교
c7g.2xlarge 인스턴스 기준 같은 테스트 데이터 기준 0.009USD이 들기 때문에 EC2를 사용하면 Lambda 대비 70% 절감할 수 있다. 실행 시간도 EC2를 사용하면 111초로, Lambda 대비 40% 단축할 수 있다. 하지만 EC2는 오토 스케일링같이 서버의 확장성, 스레드 설정 등을 고려해야 하기 때문에 개발자가 고려해야 하는 부분이 많다는 단점이 있다.