Amazon Web Services ブログ

AWS Media Services のリアルタイム通知

この記事は、“Real-time notifications for AWS Media Services” を翻訳したものです。

リアルタイムのライブビデオワークフローでは2 度目のチャンスはありません。特に数百万人の視聴者を集める大規模なイベントでは、そのリスクは高く、ライブストリームに影響を与える潜在的な問題に迅速かつ効果的に対応することが重要です。このブログでは、AWS Media Services で構成されるメディアワークフローのシステム状態変更イベントをニアリアルタイムで通知する設定方法について説明します。イベント通知はニアリアルタイムで発行され、ビデオ処理チェーンにおける潜在的な問題の場所をピンポイントで特定するのに役立ち、解決までの時間を短縮します。イベント駆動型アプリケーションを簡単に大規模に構築できるサーバーレスイベントバス Amazon EventBridge は、イベント駆動型のワークフローを作成し、システムの状態変化に自動的に対応することを可能にします。フルマネージドメッセージングサービスである Amazon Simple Notification Service (Amazon SNS)と併用すれば、システムイベントに関するニアリアルタイムの通知を設定できるので、QoE に影響を及ぼす可能性のある複雑な問題に対してチームが迅速に対処することができます。

仕組み

How Amazon EventBridge connects applications using events

Amazon EventBridge

AWS Media Services を含むほぼすべての AWS サービスは、アプリケーションやサービスの状態の変化を示すイベントを生成します。これらのイベントは、発信されると AWS EventBridge サービス内のイベントバスで受信されます。EventBridge 内では、イベントバスに入ってくるイベントをフィルタリングし、選択したターゲットへのルートを決定するルールを作成することができます。Amazon SNSは、このガイドで説明されているように、ターゲットを使用して Amazon SNS サブスクライバーに通知を送信できます。EventBridge で利用可能なターゲットの包括的なリストについては、このリンクを参照してください。

Amazon Simple Notification Service

Amazon SNS は AWS でメッセージの発行と処理を行うためのフルマネージドパブリッシャーとサブスクライバーサービスです。Amazon SNS 内には、トピックサブスクリプションという2つの主要なコンセプトがあります。トピックは、HTTP/Sやメールアドレスに加え、サーバやクラスタを意識せずにコードを実行できる AWS Lambda や、フルマネージドメッセージキューイングサービスの Amazon Simple Queue Service (Amazon SQS)など、1つまたは複数のサブスクリプションへの通信チャネルとして機能する論理的なエントリーポイントです。この場合、Amazon EventBridge サービスがサービスイベントメッセージを Amazon SNS トピックに発行し、サブスクリプション(メール、SMS、その他)がイベントを受信して処理します。Amazon SNS で利用可能なエンドポイントの包括的なリストについては、このリンクを参照してください。

AWS Media Services のイベント自動通知の設定方法

本ブログ公開時点では、以下の AWS Media Services が Amazon EventBridge に状態変更イベントメッセージを送信します。

各サービスがどのようなイベントを発信し、イベントメッセージが何を示しているかを理解するために、先に挙げたサービスのドキュメントリンクを必ず参照してください。余計なメッセージ処理を避けるために、どのイベントがあなたにとって重要で通知する価値があるかを判断してください。次の例は、AWS Elemental MediaConnect のフロー状態変更イベントに対して、電子メールアドレスへのイベントベースの通知を設定する方法を示しています。このイベントは、フローの状態が以下のいずれかから、またはそのいずれかに変更されたときに発行されます:standby、active、updating、deleting、starting、stopping、error。同じ手順を、各サービス、希望するイベント、および異なる Amazon SNS サブスクリプションに対して複製することができます。イベントの緊急性に応じてエンドポイントを構成することをお勧めします。例えば、優先度の高いイベントは Pager Duty のようなページングサービスに送信し、チームがインシデントに即座に対応できるようにすることができます。ここでは AWS と Pager Duty をシームレスに統合する方法について説明します。徹底した通知システムは、ページングサービス、電子メール、SMS、モバイルプッシュ通知、Slack などの Amazon SNS サブスクリプションの組み合わせになります。

まず、Amazon SNS トピックとAmazon SNS サブスクリプション(複数可)を作成:

  1. AWS コンソールから Amazon SNS サービスに移動し、ナビゲーションメニューから”Topics”を選択
  2. ”Create Topic”を選択
  3. 以下の情報を入力:
    • Type: ”Standard”を選択
    • Name: トピックの名前を指定
    • Encryption: (オプション)サーバーサイドの暗号化
    • Access policy: (オプション)トピックにアクセスできる人を定義
    • Delivery retry policy(HTTP/S): (オプション)Amazon SNS が HTTP/S エンドポイントへの失敗した配信を再試行する方法を定義
    • Delivery status logging: (オプション)監視および観測サービスである Amazon CloudWatch 上のログへのメッセージ配信状況のログを設定
    • Tags: (オプション)
    • “Create”を選択
    • This image shows a screen capture of the Amazon SNS Topic creation wizard.
  4. ナビゲーションメニューから”Subscription”を選択
  5. 以下の情報を入力:
    • Topic ARN: 作成したトピックの ARN
    • Protocol: Email
    • Endpoint: 通知メールを受け取るためのメールアドレス
    • Subscription filter policy:(オプション)
    • Redrive policy (dead-letter queue):(オプション)
    • 注)メール配信の場合は作成後必ず確認メールに応じてくださいThis image shows a screen capture of the Amazon SNS Subcription creation wizard.
  6. Amazon Chime(コミュニケーションサービス)、Slack、Microsoft Teams にメッセージを公開するには、こちらのリンクに記載されている手順で行ってください。

次に、EventBridge のルールを定義:

  1. AWS コンソールから Amazon EventBridge サービスに移動し、ナビゲーションメニューから”Rules”を選択
  2. ”Create Rule”を選択
  3. 以下の情報を入力
    • Name:ルールの名前
    • Description (optional):ルールの短い説明
    • Event bus:デフォルトではすべてのイベントはデフォルトのイベントバスに発行されます。オプションでイベントを発行する新しいイベントバスを作成することもできます。
    • Rule type:この例ではスケジュールで実行されるルールであるスケジュールの代わりに、発信されたサービスイベントにマッチするイベントパターンを使用しています。

This image shows a screen capture of the Amazon EventBridge Rule creation wizard.

4. ”Next”を選択してイベントパターンを設定

  • Event source: AWS services
  • Event pattern:
    • Event source:MediaConnect
    • Event type:MediaConnect flow status changed

このイベントパターンはすべての MediaConnect フローとすべての MediaConnect のステータス変更に対して電子メール通知を送信することに留意してください。オプションとしてより詳細なフィルタのための高度な EventBridge ルールを作成することができます。例えば、最も重要な MediaConnect フローのサブセットのみを包含するルールを作成し、ステータスが”ERROR”に変化したときのみイベントを受け入れるようにします。このブログ記事では Amazon EventBridge でコンテンツフィルタリング構文を使用する方法の例を紹介しています。

This image shows a screencapture of the Amazon EventBridge event pattern creation wizard.

5. ”Next”を選択してイベントターゲットを設定

  • Target Types: AWS service
  • Target: Amazon SNS topic
  • Topic: Amazon SNS トピックを選択

This image shows a screencapture of the Amazon EventBridge target(s) creation wizard.

6. ”Next”を選択してオプションでタグを設定

7. ”Next”を選択して Amazon EventBridge ルールを確認し作成

まとめ

Amazon EventBridge と Amazon SNS の機能は電子メール通知にとどまりません。これらのサービスは分離されたイベント駆動型アーキテクチャを簡単に作成するのにも役立ちます。Amazon Simple Storage Service (Amazon S3)(どこからでも大量のデータを取得できるオブジェクトストレージサービス)と Amazon SNS 上のイベントを使用して、AWS Elemental MediaConvert を使用したサーバーレスのウォッチフォルダワークフローを作成する方法についてはこのブログポストを参照してください。Media Services Application Mapper(MSAM)を実装することでメディアサービス監視フレームワークをさらに一歩進め、リニアビデオサービスのリアルタイムステータスを視覚化することができます。

この投稿では、アプリケーション間(A2A)およびアプリケーション対人(A2P)通信のパブリッシャーおよびサブスクライバー通知を設定する方法を紹介しました。イベントベースの通知をほぼリアルタイムで受信することで、監視のオーバーヘッドを大幅に削減し、AWS上のビデオワークフローの可観測性を向上させることができます。上記のステップに従うことで、重要な MediaConnect の状態変化についてチームに迅速に通知することができます。動画パイプラインを監視するのは大変ですが、Amazon CloudWatch、Amazon EventBridge、Amazon SNS などの AWS サービスは柔軟性があり、潜在的な問題に対して迅速かつ適切に対応することが可能です。

参考リンク

AWS Media Services
AWS Media & Entertainment Blog (日本語)
AWS Media & Entertainment Blog (英語)
AWS のメディアチームの問い合わせ先:awsmedia@amazon.co.jp

※ 毎月のメルマガをはじめました。最新のニュースやイベント情報を発信していきます。購読希望は上記宛先にご連絡ください。

翻訳はSA 小南と門田が担当しました。原文はこちらです。