비디오 트랜스코딩 워크로드에 대한 Amazon ECS 작업 정의
Amazon ECS에서 비디오 트랜스코딩 워크로드를 사용하려면 Amazon EC2 VT1
참고
Amazon ECS가 아닌 컨테이너에서 비디오 트랜스코딩 워크로드를 실행하는 방법에 대한 지침은 Xilinx 설명서
고려 사항
Amazon ECS에 VT1 배포를 시작하기 전에 다음에 주의하세요.
-
클러스터에 VT1과 VT1이 아닌 인스턴스가 혼재되어 있을 수 있습니다.
-
가속 AVC(H.264) 및 HEVC(H.265) 코덱으로 Xilinx U30 미디어 트랜스코딩 카드를 사용하는 Linux 애플리케이션이 필요합니다.
중요
다른 코덱을 사용하는 애플리케이션은 VT1 인스턴스에서 성능이 향상되지 않을 수 있습니다.
-
U30 카드에서 트랜스코딩 태스크는 하나만 실행할 수 있습니다. 각 카드에는 연결된 두 개의 디바이스가 있습니다. 각 VT1 인스턴스 카드만큼 트랜스코딩 태스크를 실행할 수 있습니다.
-
서비스를 생성하거나 독립적 태스크를 실행할 경우 작업 배치 제약 조건을 구성할 때 인스턴스 유형 속성을 사용할 수 있습니다. 이렇게 하면 지정한 컨테이너 인스턴스에서 태스크가 시작됩니다. 또한, 리소스를 효과적으로 사용하고 비디오 트랜스코딩 워크로드에 대한 태스크가 VT1 인스턴스에 있는지 확인할 수 있습니다. 자세한 정보는 Amazon ECS가 컨테이너 인스턴스에 작업을 배치하는 방법을 참조하세요.
다음의 예제에서는
default
클러스터에 있는vt1.3xlarge
인스턴스에서 태스크를 실행합니다.aws ecs run-task \ --cluster default \ --task-definition
vt1-3xlarge-xffmpeg-processor
\ --placement-constraints type=memberOf,expression="attribute:ecs.instance-type == vt1.3xlarge" -
호스트 컨테이너 인스턴스에서 특정 U30 카드를 사용하도록 컨테이너를 구성합니다.
linuxParameters
파라미터 및 지정한 디바이스 세부 정보를 사용하여 이 작업을 수행할 수 있습니다. 자세한 정보는 태스크 정의 요구 사항을 참조하세요.
VT1 AMI 사용
Amazon ECS 컨테이너 인스턴스용 Amazon EC2에서 AMI를 실행하는 두 가지 옵션이 있습니다. 첫 번째 옵션은 AWS Marketplace에서 Xilinx 공식 AMI를 사용하는 것입니다. 두 번째 옵션은 샘플 저장소에서 자체 AMI를 빌드하는 것입니다.
-
Amazon ECS는 비디오 트랜스코딩 워크로드에 대한 AMI를 빌드하는 데 사용할 수 있는 샘플 리포지토리를 제공합니다. 이 AMI는 Xilinx U30 드라이버와 함께 제공됩니다. GitHub
에서 Packer 스크립트가 포함된 리포지토리를 찾을 수 있습니다. Packer에 대한 자세한 정보는 Packer 설명서 를 참조하세요.
태스크 정의 요구 사항
Amazon ECS에서 비디오 트랜스코딩 컨테이너를 실행하려면, 태스크 정의에 가속화된 H.264/AVC 및 H.265/HEVC 코덱을 사용하는 비디오 트랜스코딩 애플리케이션이 포함되어야 합니다. 컨테이너 이미지를 빌드하려면 Xilinx GitHub
태스크 정의는 인스턴스 유형에 고유해야 합니다. 인스턴스 유형은 3xlarge, 6xlarge 및 24xlarge입니다. 호스트 컨테이너 인스턴스에서 특정 Xilinx U30 디바이스를 사용하도록 컨테이너를 구성해야 합니다. linuxParameters
파라미터를 사용해 이 작업을 수행할 수 있습니다. 다음 표에는 각 인스턴스 유형에 해당하는 카드 및 디바이스 SoC가 자세히 나와 있습니다.
인스턴스 유형 | vCPU | RAM(GiB) | U30 액셀러레이터 카드 | 주소 지정 가능한 XCU30 SoC 디바이스 | 디바이스 경로 |
---|---|---|---|---|---|
vt1.3xlarge | 12 | 24 | 1 | 2 | /dev/dri/renderD128 ,/dev/dri/renderD129 |
vt1.6xlarge | 24 | 48 | 2 | 4 | /dev/dri/renderD128 ,/dev/dri/renderD129 ,/dev/dri/renderD130 ,/dev/dri/renderD131 |
vt1.24xlarge | 96 | 182 | 8 | 16 | /dev/dri/renderD128 ,/dev/dri/renderD129 ,/dev/dri/renderD130 ,/dev/dri/renderD131 ,/dev/dri/renderD132 ,/dev/dri/renderD133 ,/dev/dri/renderD134 ,/dev/dri/renderD135 ,/dev/dri/renderD136 ,/dev/dri/renderD137 ,/dev/dri/renderD138 ,/dev/dri/renderD139 ,/dev/dri/renderD140 ,/dev/dri/renderD141 ,/dev/dri/renderD142 ,/dev/dri/renderD143 |
중요
작업 정의에 EC2 인스턴스에 없는 디바이스가 나열되면 태스크가 실행되지 않습니다. 태스크가 실패하면 다음과 같이 오류 메시지가 표시됩니다. stoppedReason
: CannotStartContainerError: Error response from
daemon: error gathering device information while adding custom device
"/dev/dri/renderD
130
": no such file or
directory