Video on Demand on AWS Foundation에 큐 호핑 추가

전제


  • AWS Elemental MediaConvert에서 동영상 변환 처리를 구현합니다.
  • 다음과 같은 구성



  • 경위



    AWS Elemental MediaConvert로 동영상 변환 처리를 구현했습니다만, 통상 1분 정도로 완료해야 하는 처리가 5분 이상 걸릴 때가 있었습니다. 상세하게 보면 변환 처리는 1분 정도로 끝나고 있습니다만, 처리 개시까지의 대기 시간이 긴 것을 알았습니다.

    원인



    처리가 시작되기까지 대기 시간이 길기 때문에 그 이유는 지원팀에 문의해도 답변을 받지 못했습니다. 대신 아래 페이지에 있는 것처럼 큐 호핑 설정을 함으로써 상황을 개선할 수 있다는 것이었습니다.
    htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 메아 아콘 ゔ ぇ rt / ㅁ st / u g / 싯찐 ㅁ ぅ く ええ ほっぴん g ー ー ら ぉ い ぉ ん 와이 ts. HTML

    큐 호핑 설정



    큐 만들기



    우선 호핑을 위한 큐를 CloudFormation에서 작성합니다. AWS 페이지에서는 예약 대기열을 권장하지만 CloudFormation에서는 ON_DEMAND만 지원하는 것 같습니다. 사용중인 상황에 따라 선택하십시오.
      MediaConvertHopDestination:
        Type: 'AWS::MediaConvert::Queue'
        Properties: 
          Name: 'hopDestination'
          PricingPlan: 'ON_DEMAND'
          Status: 'ACTIVE'
    

    MediaConvert 설정 파일 수정



    Video on Demand on AWS Foundation에서 CloudFormation을 실행하면 job-settings.json이라는 파일이 생성됩니다. 여기에 큐 호핑 설정을 추가합니다.
    {
        "Queue": "Default",
        "Role": "",
        "Settings": {
          "OutputGroups": [
            {
    
    ---  省略 ----
    
        "AccelerationSettings": {
          "Mode": "PREFERRED"
        },
        "StatusUpdateInterval": "SECONDS_60",
    
    ---  以下を追記 ----
        "Priority": 0,
        "HopDestinations": [
          {
            "WaitMinutes": 1,
            "Queue": "arn:aws:mediaconvert:ap-northeast-1:XXXXXXXXXX:queues/QueueHopping"
          }
        ]
      }
    
    

    LambdaFunction 수정



    job-submit/index.js
    /**
     * 追記
     */
    const hopDestinationArn = `arn:aws:mediaconvert:ap-northeast-1:${accountId}:queues/hopDestination`
    
    /**
     * 修正
     */
    job = await utils.updateJobSettings(job,inputPath,outputPath,metaData,MEDIACONVERT_ROLE,hopDestinationArn);
    

    job-submit/lib/utils.js
    
            for (let group of outputGroups) {
                switch (group.OutputGroupSettings.Type) {
                    case 'FILE_GROUP_SETTINGS':
                        group.OutputGroupSettings.FileGroupSettings.Destination = getPath(group, fileNum++);
                        break;
                    case 'HLS_GROUP_SETTINGS':
                        group.OutputGroupSettings.HlsGroupSettings.Destination = getPath(group, hlsNum++);
                        break;
                    case 'DASH_ISO_GROUP_SETTINGS':
                        group.OutputGroupSettings.DashIsoGroupSettings.Destination = getPath(group, dashNum++);
                        break;
                    case 'MS_SMOOTH_GROUP_SETTINGS':
                        group.OutputGroupSettings.MsSmoothGroupSettings.Destination = getPath(group, mssNum++);
                        break;
                    case 'CMAF_GROUP_SETTINGS':
                        group.OutputGroupSettings.CmafGroupSettings.Destination = getPath(group, cmafNum++);
                        break;
                    default:
                        throw Error('OutputGroupSettings.Type is not a valid type. Please check your job settings file.');
                }
            }
            /**
             *  追記
             */
            job.HopDestinations[0].Queue = hopDestinationArn;
    
    

    요약



    이제 큐 호핑 설정을 추가 할 수 있습니다.
    Video on Demand on AWS Foundation은 거의 Node.js로 만들어졌기 때문에 사용자 정의가 쉽고 편리하다고 느꼈습니다. 세세한 튜닝에도 대응할 수 있기 때문에 고맙습니다.

    좋은 웹페이지 즐겨찾기