Media Services Application Mapperでメディアワークフローの監視を試してみた

こんにちは、大前です。

皆さん、Media Services Application Mapper (以後MSAM)というものをご存知でしょうか。

(参考Introduction to Top-Down Monitoring of Live Video Workflows

AWS でメディアワークロードを構築すると、MediaLive、MediaPackage などの複数の MediaServices を組み合わせる事になります。

MSAM は、そんな複数のサービスで構成されたメディアワークロードの状態を包括的に監視、可視化する事ができるソリューションです。

このアーキテクチャはデプロイガイド が公開されていますので、どなたでも簡単にアーキテクチャを手元に再現する事が可能です。

そこで、今回は実際に MSAM のデプロイをして、どのような仕組みになっているのか見ていきたいと思います。

デプロイしてみる

下記のデプロイガイドに沿って進めていきます。

Automated Deployment

基本的に CloudFormation のスタックを作成していくだけなので、誰でも問題なく出来るかと思います。

1. DynamoDB テンプレートの起動

Step 1. Launch the DynamoDB Template

まずは DynamoDB のテーブルを作成します。

 

上記手順ページより、CloudFormation テンプレートを起動すると下記の画面が表示されるので、次へ。

 

任意のスタック名を入力して次へ。オプション画面が表示されますが何もせず次へ。

 

IAM リソース作成を承認するチェックを入れ、作成。

 

しばらく待つと無事リソースが作成完了しました。

 

作成したスタックのリソースタブを見てみると、6つの DynamoDB テーブルを作成していることがわかります。

 

また、出力タブに出力されている情報は次の手順で使用します。

 

 

これで 1つ目の手順は完了です。イメージとしては以下図になります。

2. Core テンプレートの起動

Step 2. Launch the Core Template

手順 1 と同様に、CloudFormation テンプレートを起動していきます。

 

ここでは、スタック名の他に手順 1 で出力されていた値をそれぞれ入力します。

 

IAM リソース作成承認のチェックを入れ、変更セットの作成を押下したのち、スタックの作成を実行します。

 

スタックの作成が完了し、作成したリソースを見てみると色々作成しているようです。

ざっくり見てみると、API Gateway * 1、Lambda * 6、CloudWatch Events * 4 が作成されていることがわかります。

 

出力はこんな感じ。後ほど使います。

 

これで 2つ目の手順も完了です。一気にリソースが増えました。

3. Events テンプレートの起動

Step 3. Launch the Events Template

今までと同様に進めていきます。

 

テンプレートを起動して、スタック名と各パラメータを入力します。

 

同様にチェックと変更セットの作成を行ったら、実行。

 

下記のリソースが作成されました。

Lambda 関数と CloudWatch Events が 1つずつ作成されているようです。

 

作成された CloudWatch Events は以下のような内容でした。

ここで作成された CloudWatch Events で、各リソースに関するイベントを監視していることがわかります。

 

手順 3 までで以下のリソースが作成されました。

4. Browser App テンプレートの起動

Step 4. Launch the Browser App Template

リソース起動はこれで最後になります。

 

テンプレートを起動してスタック名を入力。

 

同様にチェックを入れて実行します。

 

MSAM のフロントページを格納した S3 バケットが作成されます。

 

5. アプリの起動

Step 5. Configure the Browser App

いよいよ MSAM を開くのですが、API キーが必要です。

 

「API Gateway → 使用量プラン → MSAM Usage Plan → API キー」でキーを選択します。

 

「APIキー 表示」を押下するとキーが表示されるので、コピーしておきます。

 

手順 4 で作成したスタックの出力部分に URL があるので、それを開きます。

 

このようなポップアップが出てくるはずなので、手順 2 で出力されていた Endpoint URL と先ほどコピーした API Key を入力し「Connect」を押下します。

 

これで MSAM の画面が使えるようになりました!

使ってみる

これで MSAM が使えるようになったので、試しに MediaServices をいくつか起動して使ってみようと思います。

 

MediaStore で、コンテナを作ります。

 

MediaLive にて、入力とチャンネルを適当に作ります。

 

各リソースを作成したら、MSAM の画面にて、「Default」タブを選択した状態で Diagram → Manage Diagram Contents を選択します。

 

下記の様にリソース一覧が表示されるので、先ほど作成したリソースを選択し Inventory から Diagram に移動させます。

 

上記設定を保存するうと、各リソースがノードとして表示されました!テンション上がりますね

 

各リソースの状態を監視出来ているのか確認するために、チャンネルを開始してみます。

 

しばらく待つと、MSAM 上の MediaLive ノードが赤くなりました。チャンネルにビデオソースをプッシュしていないので、期待通りのアラートとなります。

 

ノードを選択した状態で Monitor タブを開くと、MediaLive のコンソール画面で確認できる各パイプラインについてのアラートが表示されています。

 

無事、MSAM で MediaServices によるワークフローの監視をする事が出来る様になりました!

 

ちなみに、MSAM は複数の CloudWatch イベントが毎分起動するため、確認後はルールを無効化するのをお忘れなく。

終わりに

AWS 上でのメディアワークフロー監視ツールである MSAM を試してみました。

これを使う事で一画面でワークフローの状態を見ることが出来ますし、画面自体もとても見やすいので MediaServices によるアーキテクチャを構成する際には是非使いたいツールではないでしょうか。

今回は最低限の機能しか確認できていませんが、また機会あれば色々確認したいと思います。

 

以上、AWS 事業本部の大前でした。

参考

Media Services Application Mapper

awslabs / aws-media-services-application-mapper