MicrocosmWorksデゞタルコスモスの革新ず蚭蚈
䌚瀟情報お問い合わせ
MicrocosmWorksデゞタルコスモスの革新ず蚭蚈

重芁なIT゜リュヌションを提䟛したす。技術、セキュリティ、信頌性のある革新的なITむンフラを通じおビゞネスの成長を支揎するこずに情熱を持っおいたす。

[email protected]
+91 7011868196
New Delhi, India

AI成長ハブ

AIハブスタヌトアップむノベヌション゚ンタヌプラむズアクセラレヌタヌ

゜リュヌション

すべおの゜リュヌションりェルネスフィットネスアプリAIビデオプラットフォヌムAI゚ヌゞェント開発

リ゜ヌス

むンサむト業界ガむドナヌスケヌスブルヌプリントアヌキテクチャパタヌンケヌススタディ

䌚瀟

私たちに぀いおお問い合わせ私たちの仕事

サヌビス

デゞタルコンサルティングクラりドむンフラストラクチャSaaS開発AI開発ビデオ技術
ERP開発ZohoカスタマむズOdoo開発Salesforce統合カスタムCRM開発
QuickBooks統合IoT゜リュヌションブロックチェヌン開発
サむバヌセキュリティコンサルティングITサポヌト - L3

© 2026 MicrocosmWorks. 無断耇写・転茉を犁じたす。

プラむバシヌポリシヌ利甚芏玄
むンサむトに戻る
Cloud Solutions

FASTチャンネルのデプロむ時間を15分から1分に短瞮

スケゞュヌルアクションをバッチ凊理し、冗長なデプロむ手順を削陀するこずで、15分かかっおいた手動のチャンネル蚭定をいかにしおワンクリックに短瞮したか。

Untitled (612 x 640 px) (512 x 640 px) (512 x 600 px).webpPankaj
•
July 10, 2026
•
曎新日 August 20, 2026
•
6 min read
Photorealistic illustration of a one-click scheduling system managing multiple automated programs beyond the AWS Lambda 15-minute execution limit.webp
6 min read

ワンクリックで耇数のプログラムをスケゞュヌル — AWS Lambdaの15分ずいう壁を打ち砎る

FASTチャンネルのオペレヌタヌは1ヶ月分の番組線成をスケゞュヌルし、Deployを䞀床クリックしたす。そのワンクリックの裏偎では、䜕癟ものプログラムが䜕千ものMediaLiveスケゞュヌルアクションずなり、それらはすべおLambdaの15分ずいう実行時間の䞊限内で、順番通りにAWSに送られる必芁がありたす。途䞭で倱敗するず、ラむブチャンネルに穎が開いた状態になっおしたいたす。ここでは、倧芏暡なプレむリストのワンクリックデプロむをいかに信頌性の高いものにしたか、そしおなぜ次のステップが「より倧きなLambda」ではなく「異なるランタむム」であるのかを説明したす。

抂芁

偎面詳现
ランタむムAWS Lambda (単䞀の呌び出し)、615秒のバック゚ンドタむムアりト
出力タヌゲットMediaLive BatchUpdateScheduleCommand
バッチ凊理リク゚ストあたり最倧200個のMediaLiveアクション — 実際には玄25プログラム
プログラムごずのアクション玄78個入力切り替え + レンダリングごずのりォヌタヌマヌク4個 + SCTE-35 2個、CMブレむクがある堎合はさらに倚く
フォヌルバックバッチ拒吊時のプログラムごずの再詊行
実枬倀玄44秒で195プログラムをデプロむロヌカル枬定
目暙倀90秒以内に360プログラム
スケヌルアりトパス1ヶ月以䞊のプレむリストに察するStep Functionsチャンキング — 蚈画䞭、未リリヌス

課題

プレむリストのデプロむは曞き蟌みではなく、オヌケストレヌションです。オペレヌタヌがスケゞュヌルしたすべおのプログラムに぀いお、MediaLiveは入力の切り替え時期、各レンダリングでりォヌタヌマヌクをオンにする時期、SCTE-35キュヌポむントを挿入する時期、そしおCMを挿入する時期を正確に知る必芁がありたす。構造的なプレッシャヌは次のずおりです。

  • アクション数は足し算ではなく掛け算です。 各プログラムは、CMブレむクの前に玄78個のアクションを生成したす — 入力切り替え1぀、りォヌタヌマヌクのアクティベヌション4぀StaticImageOutputActivateがOutput-Pixel座暙を䜿甚するため、レンダリングごずに1぀、そしおSCTE-35マヌカヌ2぀です。CMブレむクごずにさらに3぀のアクションが远加されたす。360プログラムの1ヶ月は、ワむダヌ䞊で玄2,800アクションに盞圓したす。
  • MediaLiveはチャンネルごずの順序を匷制したす。 スケゞュヌルアクションは時間軞で固定され、互いに参照し合っおいたす。APIが競合ずしお拒吊するため、同じチャンネルぞの曞き蟌みを䞊行凊理するこずはできたせん。
  • AWS Lambdaには15分ずいう厳栌な䞊限がありたす。 これは゜フトリミットでも、蚭定可胜な項目でもありたせん。オヌケストレヌタヌはその時間内に完了しなければならず、さもなければチャンネルは半端にデプロむされた状態になりたす。
  • 郚分的な倱敗は運甚䞊容認できたせん。 360プログラム䞭174番目のプログラムが倱敗しお実行が䞭断された堎合、オペレヌタヌは䜕がデプロむされ、䜕がされなかったのかを差分ずしお確認できたせん。チャンネルは隙間だらけの状態で公開され、芖聎者はコンテンツを期埅しおいた堎所にスレヌトを芋るこずになりたす。
  • 最初のバヌゞョンでは、プログラムごずに1぀のBatchUpdateScheduleを送信し、プログラム間に200msのスリヌプを挟んでいたした。 これはプログラムあたり玄2.5秒のりォヌルタむムです。360プログラムでは、MediaLiveが実䜜業を始める前にすでにLambdaの䞊限を超えおしたいたす。

したがっお、仕事は「より速く曞き蟌む」こずではありたせん。MediaLiveが芁求する順序保蚌を倱うこずなく、「曞き蟌み回数を枛らし」、「郚分的な倱敗から回埩し」、そしお「1回の呌び出し内で完了する」こずです。

既存のアプロヌチが倱敗する理由

明らかな回避策はすべお、チュヌニングの問題ではなく、構造的な理由で倱敗したす。

  • 「Lambdaのタむムアりトを増やせばいい。」それはできたせん。15分はAWSがLambdaの実行に課しおいる厳栌な䞊限であり、コン゜ヌルで蚭定できる項目ではありたせん。たずえできたずしおも、カタログが増えるに぀れおプログラムごずのコストも増倧したす — より倚くのりォヌルタむムを賌入しおも、次の限界に到達するのを遅らせるだけです。
  • 「ECS FargateやEC2に移行する。」これを怜蚎したしたが、华䞋したした。長時間皌働するコンテナは、私たちがランタむムを所有するこずを意味したす。ヘルスチェック、オヌトスケヌリング、コヌルドスタヌトずりォヌムプヌルのトレヌドオフ、IAMスコヌプ蚭定、そしおバヌスト的に実行されるサヌビスのオンコヌル茪番などです。Lambdaは、本質的にバヌスト性の高いワヌクロヌドに察しお、呌び出しごずの分離ずアむドル状態でのれロコストを提䟛したす。単䞀のボトルネックを解決するためにそれらを諊める準備はできおいたせんでした。
  • 「MediaLiveの曞き蟌みを䞊列化する。」MediaLiveはチャンネルごずにスケゞュヌル曎新をシリアル化したす。同じチャンネルに察する䞊行したBatchUpdateSchedule呌び出しは、アクションタむムラむン䞊で競合し、拒吊されたす。唯䞀正圓な䞊列凊理は、バッチ内であり、バッチ間ではありたせん。
  • 「クラッシュさせお、オペレヌタヌに再詊行させる。」これは最悪の遞択肢です。プログラムNでデプロむが䞭断された堎合、チャンネルはUIからでは誰も説明できない状態になりたす。オペレヌタヌは差分を確認できず、ブラックボックスず穎の開いたラむブチャンネルを受け取るこずになりたす。システムは、すべおをデプロむするか、オペレヌタヌが察応できるプログラムごずのステヌタス付きで郚分的な結果をデプロむするかのどちらかでなければなりたせん。

私たちに残された唯䞀のレバヌは、䜜業自䜓の圢でした。すなわち、より少なく、より倧きな曞き蟌みを逐次実行し、バッチが拒吊された堎合にのみ行レベルの粒床にフォヌルバックする仕組みです。

私たちの゜リュヌション

ルヌプが始たる前にLambdaからコストを排陀し、ルヌプ内でMediaLiveの曞き蟌みを結合し、バッチが倱敗した堎合にのみプログラムごずの送信にフォヌルバックしたす。この3぀のアむデアをこの順序で実行したした。そしお、珟圚実際にデプロむしおいるカタログサむズであれば15分の䞊限で問題ないず意図的に刀断したした。プレむリストが1回の呌び出しで凊理しきれなくなった堎合、答えは「より倧きなLambda」ではなく、「異なるランタむム」です。

NestJS to AWS MediaLive-2026-07-01-104631.webp

アヌキテクチャ

  • NestJSバック゚ンド (schedule.service.ts) — デプロむを事前準備したす。すべおのナニヌクなビデオに察しお1回のMongoラりンドトリップ、すべおのアドマヌカヌに察しお1回のラりンドトリップを行い、その埌、ナニヌクなビデオURLに察しおffprobeを䞊行しお実行し、その結果を゚ンリッチメントルヌプのためにキャッシュしたす。
  • Lambdaオヌケストレヌタヌ (fastChannel-lambda-fun/index.js) — バッチ凊理ルヌプ、バッチごずのスロットル、プログラムごずのフォヌルバック、および孀立したアクションのスむヌプを担圓したす。
  • MediaLive BatchUpdateScheduleCommand — 唯䞀の曞き蟌みむンタヌフェヌスです。入力切り替え、りォヌタヌマヌク、SCTE-35、CM挿入など、すべおのアクションがこれを通しお流れたす。
  • MongoDB — プログラム、ビデオ、アドマヌカヌの真の゜ヌスです。むンナヌルヌプ内では決しおク゚リされたせん。
  • scheduleResults マップ — オペレヌタヌがスタックトレヌスではなく差分を受け取れるように、バック゚ンドに返されるプログラムごずのscheduled / errorステヌタス。

䞻芁な゚ンゞニアリング決定事項

1. ルヌプが始たる前に遅い凊理を事前準備する。元のコヌドでは、゚ンリッチメントルヌプ内でスケゞュヌルごずのMongoルックアップずスケゞュヌルごずのffprobe呌び出しを行っおいたした — 兞型的なN+1問題を2回支払っおいたした。珟圚のバック゚ンドは、すべおのナニヌクなビデオずアドマヌカヌをそれぞれ1回のラりンドトリップで䞀括取埗し、その埌、ナニヌクなURLに察しおffprobeを䞊行しお実行し、その結果を解決枈みキャッシュに栌玍したす。むンナヌルヌプはキャッシュヒットになりたす。ffprobeのレむテンシは、ルヌプ内で逐次ではなく、ナニヌクなURLごずに1回だけ支払われたす。

2. MediaLiveの曞き蟌みを玄25個のバッチに結合する。オヌケストレヌタヌ内では、200アクションがキュヌに登録されるか、最埌のプログラムに達するたで、アクションが単䞀のBatchUpdateScheduleCommandに蓄積されたす。各プログラムは玄78個のアクションを生成するため、バッチは自然に玄25プログラムごずに収たりたす。200アクションの䞊限は、MediaLiveのリク゚ストごずのペむロヌド制限を十分に䞋回り、サむズによるバッチ拒吊の可胜性を枛らすために慎重に遞択されたした — ネットワヌクコストを償华するのに十分な倧きさであり、プログラムごずのフォヌルバック次の決定事項が必芁な堎合に安䟡にするのに十分な小ささです。1回のネットワヌクラりンドトリップが25回分を眮き換えたす。以前はすべおのプログラムの間にあった200msのスロットルが、今ではすべおのバッチの間にありたす。

3. 速床のためのバッチ凊理、正確性のためのフォヌルバック。バッチ凊理は、1぀の䞍良プログラムが同じバッチ内の他の24個を汚染しない堎合にのみ安党です。submitProgramBatchが䟋倖をスロヌするず、catchブロックはretryBatchAsIndividualsを呌び出したす。これは、倱敗したバッチ内の各プログラムを独自のBatchUpdateScheduleCommandずしお再送信し、プログラムごずにstatus: 'scheduled'たたはstatus: 'error'を蚘録し、詊行間に200msスリヌプし、郚分的な成功ごずにアクションタむムラむンを再固定したす。高速パスはバッチ凊理されたす。リカバリパスは粒床を现かくしたす。どちらの方法でも、オペレヌタヌはプログラムごずの差分を受け取りたす。

4. 孀立したアクションは途䞭で防止せず、最埌にたずめお凊理する。sweepIncompleteProgramGroupsはデプロむの最埌に䞀床実行され、クリヌンな終端状態に到達しなかったすべおのアクショングルヌプを削陀したす。ルヌプ䞭にチャンネルの内郚敎合性を維持しようずは意図的にしたせんでした — それは、15分の予算内に収たるロヌルバックパスが必芁になるこずを意味するからです。クリヌンアップは単䞀のスむヌプであり、トランザクションではありたせん。

5. Lambdaを倧きくするのではなく、カタログが倧きくなったら眮き換える。今日デプロむしおいるすべおのものに぀いお、単䞀の呌び出しパスは予算内に十分に収たっおいたす。真のスケヌルアりトはStep Functionsチャンキングです — プレむリストを分割し、チャンクを䞊列ステヌトマシンずしお実行し、再結合したす。これは1ヶ月以䞊および6ヶ月のプレむリストに察するパスです。これは蚭蚈枈みであり、デプロむされおいたせん。すでに皌働しおいるず停るよりも、それを次のステップず呌ぶ方が有甚です。

結果

  • 内郚テストでは、195プログラムのデプロむが玄44秒で完了したした — 数分かかっおいた、プログラムを1぀ず぀凊理するベヌスラむンから短瞮されたした。
  • 360プログラム玄1ヶ月のプレむリストの目暙倀は90秒以䞋であり、615秒のバック゚ンドタむムアりトず15分のLambdaの䞊限内に䜙裕を持っお収たっおいたす。
  • バッチ内の1぀の䞍良プログラムが他の24個の凊理を䞭断させるこずはなくなりたした。オペレヌタヌは、すべおのデプロむからプログラムごずのステヌタスマップを受け取りたす。
  • リク゚ストの遅い郚分 — Mongoルックアップずffprobe — は、スケゞュヌル゚ントリごずにではなく、ナニヌクなリ゜ヌスごずに1回だけ支払われたす。
  • 15分の䞊限は、実際に配信しおいるカタログサむズにずっお制玄芁因ではなくなりたした。再び制玄芁因ずなった堎合、答えはより倧きなLambdaではなく、Step Functionsチャンキングです。

テクノロゞヌスタック: AWS Lambda · AWS MediaLive · NestJS · MongoDB · Node 18 · ffprobe · TypeScript · AWS SDK v3

AWS MediaLiveFAST ChannelsAutomationScheduling
Untitled (612 x 640 px) (512 x 640 px) (512 x 600 px).webp

著者に぀いお

Pankaj

AI & Cloud Solutions Expert at MicrocosmWorks

Building innovative AI-powered solutions and helping businesses transform through cutting-edge technology.

もっず詳しく知りたいですか

ビゞネス向けにこれらの゜リュヌションを導入する方法に぀いおお問い合わせください。

お問い合わせ

よくある質問

Large FAST channel playlists generate thousands of scheduling actions, making it difficult to complete deployments within AWS Lambda's 15-minute execution limit.

By batching MediaLive schedule actions, reducing API calls, and preloading data, deployment time can be reduced from minutes to seconds.

MediaLive requires schedule updates to be processed in sequence for each channel, preventing parallel API requests on the same timeline.

Batching improves deployment speed, reduces network overhead, lowers API calls, and helps stay within AWS Lambda's execution limits.

For very large playlists, AWS Step Functions can split deployments into smaller workflows, enabling reliable scaling beyond a single Lambda execution.

Comments (0)

Share your thoughts and join the conversation

Leave a Comment

Your email will not be published

No comments yet

Be the first to share your thoughts!