[UPDATE] AWS Elemental LinkがAWS Elemental MediaLiveのStandard Channelに対応しました!

AWS Elemental MediaLive用のセットアップ済みライブエンコーダデバイスとして動作するAWS Elemental Link、これまではSingle Pipelineのみの対応でしたが、晴れてStandard Channelに対応しました。
2020.11.26

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

はじめに

清水です。本日お届けするアップデートはこちら、AWSElemental LinkがAWS Elemental MediaLiveのStandard Channelに対応しました!(2020/11/11にポストされたアップデート情報のうちの1つを本エントリにて取り上げます。)

AWS Elemental MediaLive用のセットアップ済みライブエンコーダデバイスとして動作するAWS Elemental Link、リリース当初からこれまで対応するMediaLiveのChannel classはSINGLE_PIPELINEのみでした。MediaLiveのChannelとして標準の冗長構成が取れないため、冗長化したい場合はChannel自体を複数作成、そして配信時にはオリジンとなるAWS Elemental MediaPackageなどに複数入力とする、などの構成が取られました。例えば今年2020年10月に実際にElemental Linkを使って配信を行ったというHTBさんの事例でもこの構成が紹介されています。

今回のアップデートでElemental LinkをInputとした際に、MediaLiveのChannelとしてStandard Channelが選択できるようになり、MediaLive自体の冗長構成が取れるようになりました。別途複数のChannelを作成する必要もなくなり、Channel管理も容易になりますね!本エントリでは実際に2つのLinkデバイスをInputとしてStandard Channelにアタッチ、ひとつのLinkデバイスから映像を打ち上げて配信ができることを確認してみました。(諸般の事情により、このアップデートの本質である2つのLinkデバイスから同時に映像を打ち上げて冗長構成をとった配信をする、というところまでは確認できておりません。)

LinkデバイスでMediaLiveのStandard Channelを使ってみた

それでは実際にLinkデバイスをMediaLiveのStandard Channelで使ってみたいと思います。リージョンはオレゴン(us-west-2)を使用しています。また諸般の事情により、実際に2台のLinkデバイスを使った配信までではなく、配信自体は1台のLinkデバイスのみを使って確認しました。本エントリではLinkデバイスならびにMediaLiveの設定のみ扱い、MediaPackageやCloudFrontの設定自体は割愛しまています。(新たにリソースは作成せず、既存のリソースを使いまわしています。)MediaPackageやCloudFrontの設定などについては以下のエントリなども参考にしてください。

なお上記エントリでは、Elemental Linkリリース当時のSingle Pipelineのみしか選択できなかったときのマネジメントコンソールのスクリーンショットも掲載しています。比較してみると面白いかもしれません。

MediaLiveのInputの作成

まずはMediaLiveのInputの作成です、[Create Input]ボタンから進み、Input作成画面のInput typeでElemental Linkを選択します。するとInput devicesの項目、Input classの選択ができるようになっていますね!

Input classでSTANDARD_INPUTが選択されていることを確認、2台のLinkデバイスをそれぞれInput device A、Input device Bとして指定し、[Create]ボタンでInputを作成します。

Inputが作成できました。InputsのDetails画面で2つのサムネイル画像が表示されているのが新鮮ですね!

なお、Input classでSINGLE_INPUTを選択すると以下のように1つのデバイスのみの指定となります。

MediaLiveのChannelの作成

Inputが作成できたら、続いてMediaLiveのChannelリソースを作成します。[Create channel]ボタンから進みましょう。今回はLive event(MediaPackage)のChannel templateを使い、既存のMediaPackageリソースを使用することとします。

Channel classではSTANDARDを選択します。Input specificationsはデフォルトのまま進めます。

Input attachmentsでInputを追加、先ほど作成したStandard Input classのリソースを指定します。2つのLinkデバイスのIDが表示されていますね。

Output groupsまわりについても適切に設定して(今回はMediaPackage channel IDのみ指定しました)、[Create channel]ボタンでChannelリソースを作成します。

片方のLinkデバイスのみを使った配信確認

今回はざっとの検証ということで、片方のLinkデバイスのみを有効(電源オン、ネットワーク接続、映像入力)にした状態での配信だけ確認してみます。Linkデバイスに映像を入力し、マネジメントコンソールでサムネイルが表示されていることを確認しておきます。

MediaLiveのChannelをStartさせます。片方のLinkデバイスしか稼働していない(もう一方は電源オフ)状況なので、Pipeline 1のほうではアラートが上がっている状況ですが、Pipeline 0のほうで問題なく配信できていることが確認できますね。(なお、Pipline 0のNetwork inが一時的に下がっているタイミングがあるのは、映像入力ソース側で静止画となっていたためです。)

最終的な配信動画の確認も、VideoJS HTTP Streamingを使って確認してみました。

まとめ

AWS Elemental Linkリリース当時、正直あれっ??と思ったのがこのMediaLiveの冗長構成、Standard Channel非対応の部分でした。そもそもAWS Elemental MediaLive自体はリリース時にはStandard Channelのみ存在、冗長構成を取らないSingle Piplineはオプションとしてリリースから1年以上立った後に追加された機能、という背景があります。

Linkデバイスのリリースからおよそ半年ほど、今回のStandard Channel対応のアップデートにより、冗長化についてこれまでよりも容易に構成できるようになったかと思います。