Appearance
운영
Transcoder v2는 Lambda와 Step Functions, DynamoDB, S3, SQS를 함께 사용하는 파이프라인이에요.
Lambda bundle과 비디오 처리용 Docker image가 별도로 배포돼요.
비디오 처리 image에는 ffmpeg가 포함되고, Step Functions의 Probe, Transcode, Finalize 단계에서 사용돼요.
빌드와 배포
| 항목 | 설명 |
|---|---|
build:lambda | CreateVideoEncodingJob, CancelVideoEncodingJob, GetVideoEncodingJobHttp handler를 bundle해요. |
build:batch | Probe, Transcode, Finalize 실행 코드를 Docker image에 포함할 수 있게 bundle해요. |
scripts/deploy-lambdas.sh | Lambda 코드를 zip artifact로 배포하고 runtime과 handler를 갱신해요. |
scripts/deploy-batches.sh | Docker image를 빌드해서 ECR에 push해요. |
AWS 리소스
Transcoder가 사용하는 AWS 리소스예요.
실제 리소스 이름과 값은 youvico.transcoder-v2의 코드와 배포 스크립트를 참조해요.
| 필드 | 설명 |
|---|---|
| Region | AWS 리소스를 생성하고 호출하는 리전이에요. |
| DynamoDB table | Transcoder 작업 상태와 실행 계획을 저장하는 테이블이에요. |
| 내부 S3 bucket | 중간 청크 산출물을 저장하는 내부 버킷이에요. |
| Step Functions | Probe, Transcode, Finalize 단계를 실행하는 상태머신이에요. |
| Lambda | 작업 생성, 작업 취소, HTTP 작업 조회를 처리하는 함수예요. |
| SQS | 성공 또는 실패 결과 메시지를 전달하는 queue예요. |
| ECR repository | 비디오 처리 Docker image를 저장하는 repository예요. |
환경 변수
비디오 처리 단계는 Step Functions 또는 실행 환경에서 다음 값을 받아요.
| 이름 | 사용 위치 | 설명 |
|---|---|---|
ID | Probe, Transcode, Finalize | 작업 ID예요. |
PRESET | Transcode | 변환할 출력 프리셋이에요. |
CHUNK_INDEX | Transcode | 변환할 청크 index예요. |
코드 고정값
src/config.ts에는 운영 리소스를 참조하는 필드가 정의돼요.
자세한 값은 youvico.transcoder-v2의 src/config.ts를 참조해요.
| 필드 | 설명 |
|---|---|
AwsRegion | AWS client가 사용할 리전이에요. |
JobTableName | 작업 정보를 저장할 DynamoDB table 이름이에요. |
InternalBucket | 중간 산출물을 저장할 내부 S3 bucket 이름이에요. |
StateMachineArn | 비디오 인코딩 Step Functions 상태머신 ARN이에요. |
실제 Step Functions 상태머신 정의는 youvico.transcoder-v2 저장소에 포함되어 있지 않아요.
실패 확인
처리 단계에서 예외가 발생하면 작업 상태가 FAILED로 바뀌고 SQS로 실패 메시지를 보내요.
취소된 작업은 실패 SQS 메시지를 보내지 않아요.