[UPDATE] AWS Elemental MediaTailorのChannel Assemblyでタイムラインログをサポートしました!
はじめに
清水です。AWS Media Servicesのアップデート情報をお届けするコーナーです。本エントリでお伝えするアップデート情報はこちら!リニアチャネルアセンブリとパーソナライズされた広告挿入サービスであるAWS Elemental MediaTailorでChannel Assemblyのタイムラインログをサポートしました!(2023/01/30付でポストされたアップデート情報になります。)
VODソースやLIVEソースから、広告挿入を含めた仮想ライブストリームを作成するMediaTailorのChannel Assembly機能、今回サポートされたタイムラインログ(As Runログ)を使用することで、再生したプログラムやソースコンテンツ、挿入された広告などの情報が時間とともにAmazon CloudWatch Logsに出力されます。CloudWatch Logsに出力されたあとはほかのログと同様、例えばAmazon CloudWatch insightsなどで分析を行うといったことが可能となります。
本エントリでは、このMediaTailor Channel Assemblyのタイムラインログ(As Runログ)について、実際に出力を確認してみたのでまとめてみたいと思います。
なお、MediaTailor Channel Assemblyについての詳細は以下ブログエントリなどをご参照ください。
- [UPDATE] AWS Elemental MediaTailorにChannel Assembly機能が追加されました | DevelopersIO
- AWS Elemental MediaTailorのChannel Assemblyで時間ベースのスケジューリングをしてみた | DevelopersIO
- [UPDATE] AWS Elemental MediaTailorのChannel AssemblyがLiveソースに対応しました! | DevelopersIO
MediaTailor Channel AssemblyでAs Runログを設定してみた
それでは実際にMediaTailor Channel Assemblyにタイムラインログを設定していきます。今回はChannel AssemblyとしてVODソースを使用、またこれをループする仮想ライブストリームを作成して確認を行いました。広告は挿入していません。
Source locationの準備
Channel作成の前に必要となるSource locationについては、以下ブログエントリと同様の手順で作成しました。手順詳細についてはブログエントリを参照ください。
以下、設定のポイントのみ箇条書きでまとめます。
- Source location
- Name
- asrunlog-test-source-location
- Base URL
- https://my-s3-bucket.s3-ap-northeast-1.amazonaws.com/
- Name
- VOD source 1
- Name
- asrunlog-test-vod-source-sample1
- source-group-1
- Source group
- source-group-1
- Type
- HLS
- Relative path
- Sampel1.mov.m3u8
- Source group
- Name
- VOD source 2
- Name
- asrunlog-test-vod-source-sample2
- source-group-1
- Source group
- source-group-1
- Type
- HLS
- Relative path
- Sampel2.mov.m3u8
- Source group
- Name
Channelの作成とログ出力の設定
Source locationが準備できたら、続いてChannelを作成します。タイムラインログ(As Runログ)についてはこのChannel設定に含まれます。Channel作成時、またはChannelの設定として有効/無効が行えます。
MediaTailorのマネジメントコンソール、Channel assemblyのChannelの項目の[Create channel]ボタンから進みます。Nameを適切に入力し、TierはVODソースのみを扱うためBasic
、Playback modeはLoop
を選択しました。
続くConfigure outputでは、Manifest nameにデフォルトとなっているindex
を入力しました。Format typeはHLS、Source groupについてもデフォルトのsource-group-1
まま[Next]で進みます。
Access controlの項目、今回は検証目的のためAttach a public policyを選択しました。実際には要件など確認の上、適切な公開範囲としましょう。
そして「Step 4 Logging」のページに進みます。ここが今回のアップデート内容ですね。Enable as runのチェックボックスをonにします。なおMediaTailor User Guideに記載があるとおり、As Runログを有効にすることでMediaTailorのサービスリンクロールが自動的に作成されるようです。こちらの詳細は後ほど確認します。
「Step 5 Review and create」で内容を確認して[Create channel]します。
Channel作成後の画面でChannel logging enabled.と、ログが有効になったことが確認できました。
ChannelにProgramを追加
Channelが作成できたので、このChannelにProgramを追加していきます。Channelの詳細画面のScheduleのタブ、から[Add Program]ボタンで進みます。Nameを適切に選択し、Source location nameで先ほど作成したSource location asrunlog-test-source-location
を選択します。VOD source nameでは1つ目のVOD sourceのasrunlog-test-vod-source-sample1
を選択しました。
Playback configurationについてはデフォルトの設定、Ad breaksについては追加せずに[Add Program]します。
1つ目のProgramが追加できました。
2つ目のVOD sourceも追加します。Channel詳細画面ののScheduleタブに戻り、再び[Add program]ボタンで進みます。
Program detailsを以下のように設定(2つ目のVOD Sourceを指定するかたちです)します。
Playback configurationのRelative program、Select an existing programで1つ目のVOD Sourceを指定したasrunlog-test-program
を選択します。Ad breaksは追加しないまま、[Add Program]します。
2つ目のProgramが作成できました。Channel全体のProgramとして、2つのコンテンツが交互に繰り返されるかたちになっていますね。
As Runログ設定状態とIAMロールの確認
As Runログ(タイムラインログ)を設定したChannelが作成できました。あらためてこのChannelのログ設定状態を確認しておきましょう。Loggingタブから、As run
が有効になっていることが確認できますね。
[Edit]ボタンから有効/無効の切り替えも可能です。
またAs Runログを有効にした際に自動で作成されるMediaTailorのサービスリンクロールも確認しておきましょう。IAMのマネジメントコンソール、ロールの項目でMediaTailorで検索するとIAMロールAWSServiceRoleForMediaTailor
が作成されていることがわかります。
仮想ライブストリームの視聴と出力されるAs Runログの確認
では実際にChannelをStartさせ仮想ライブストリームを視聴しつつ、その際に出力されるAs Runログ(タイムラインログ)の内容を確認してみます。
まずはMediaTailor Channel AssemblyのChannelをStartさせます。なお、MediaTailorのChannel Assemblyの料金については、このStart後、Running状態に対して発生します。AWS Elemental MediaLiveのChannelなどと同様、検証時などの停止忘れにはくれぐれも注意しましょう
仮想ライブストリームの視聴はOutputsのタグ、Playback urlから行うことができます。
今回はvideojs-http-streaming Demoのページで仮想ライブストリームの視聴確認を行いました。以下のように2つのコンテンツ(夜の吉祥寺の街並みと、昼の吉祥寺の街並み)が交互に再生されます。
仮想ライブストリームの視聴が確認できたところで、出力されるAs Runログについても確認してみましょう。As RunログはCloudWatch Logsに出力されます。MediaTailor/Channel/AsRunLog
というLog groupが作成されていました。
実際に中身を確認してみます。以下のようにProgramの開始のタイミングが記録されていました。2つのProgram内の1つのソースをそれぞれ交互に再生するかたちの仮想ライブストリームですが、それが記録されているぐあいですね。
{ "channelName": "asrunlog-test-channel", "eventType": "VodProgramStart", "programName": "asrunlog-test-program1", "sourceGroup": "source-group-1", "sourceLocationName": "asrunlog-test-source-location", "timeStamp": "2023-01-31T05:00:51.996Z", "vodSourceName": "asrunlog-test-vod-source-sample1" }
今回は単純な2つのProgramをループするChannelとなっていますが、複数のSourceからなる複数のProgramをライブストリーミングしている、といった場合に、このログを集計することでChannel内での表示回数のカウントを行う、といったことが容易にできそうですね。また今回は広告挿入まわりは設定していませんが、広告を表示した時間などもこちらに表示されるかと思います。
まとめ
AWS Elemental MediaTailorのアップデート、Channel AssemblyでのAs Runログ(タイムラインログ)のサポートについて、実際にAmazon CloudWatch Logsにログを出力させて確認してみました。コンテンツや広告の表示回数(Channel内で使用した回数)などの集計が容易になる、嬉しいアップデートだと思います。ログの分析方法なども含め、上手に活用していきたいですね。