Skip to content

서버리스 트랜스코딩 시스템 2차 테스트 #3

@jeongmallro

Description

@jeongmallro

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

arm

  • 실행 시간: 228918.09ms (3분 50초) (Cold Start)
  • 비용: 0.03USD

x86_64

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는 오토 스케일링같이 서버의 확장성, 스레드 설정 등을 고려해야 하기 때문에 개발자가 고려해야 하는 부분이 많다는 단점이 있다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions