[UPDATE] AWS Elemental MediaTailorのChannel Assemblyでタイムラインログをサポートしました!

仮想ライブストリームを作成するChannel Assembly機能で再生したプログラムやソース、広告などの情報を記録できるAs Runログがサポートされました。実際に設定を行いCloudWatch Logsに出力されるログを確認してみます。
2023.01.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

清水です。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についての詳細は以下ブログエントリなどをご参照ください。

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/
  • VOD source 1
    • Name
      • asrunlog-test-vod-source-sample1
    • source-group-1
      • Source group
        • source-group-1
      • Type
        • HLS
      • Relative path
        • Sampel1.mov.m3u8
  • VOD source 2
    • Name
      • asrunlog-test-vod-source-sample2
    • source-group-1
      • Source group
        • source-group-1
      • Type
        • HLS
      • Relative path
        • Sampel2.mov.m3u8

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内で使用した回数)などの集計が容易になる、嬉しいアップデートだと思います。ログの分析方法なども含め、上手に活用していきたいですね。