Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9409

Video on Demand on AWS Foundationにキュー・ホッピングを追加する

$
0
0
前提 AWS Elemental MediaConvertで動画の変換処理を実装している 以下のような構成 経緯 AWS Elemental MediaConvertで動画の変換処理を実装しましたが、通常1分程度で完了するはずの処理が5分以上かかる時がありました。詳細に見ていくと変換処理は1分程度で終わっているのですが、処理開始までの待機時間が長いことがわかりました。 原因 処理開始までの待機時間が長いことが原因ですが、その理由についてはサポートに問い合わせても回答が得られませんでした。代わりに以下のページにあるようにキューホッピングの設定をすることで状況を改善できるとのことでした。 https://docs.aws.amazon.com/ja_jp/mediaconvert/latest/ug/setting-up-queue-hopping-to-avoid-long-waits.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で出来ているのでカスタマイズがしやすくて便利だと感じました。細かいチューニングにも対応できるのでありがたいです。

Viewing all articles
Browse latest Browse all 9409

Trending Articles