[登壇レポート] JAWS-UG朝会で「Amazon Interactive Video Service(IVS)触ってみた」というLT登壇をしました

2022/1/28に開催されたJAWS-UG朝会 #29で行ったLTのレポートブログです。登壇資料の準備や検証を通じて、IVSすごい!!!となりました。
2022.01.28

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

みなさん、こんにちは。

東京オフィスのあしさんです。

2022/1/28に開催されたJAWS-UG朝会 #29にて「Amazon Interactive Video Service(IVS)触ってみた」というタイトルでLT登壇しました。

LT資料はこちら

内容

みなさんストリーミング配信サービスは好きですか? 私は大好きです。

ストリーミング配信サービスといえば? そうですね、Twitchですね。

Twitchのライブストリーミング技術を採用したAWSサービスがあります、何でしょう?

それが今回お話しした、Amazon Interactive Video Serviceです。

(おまけ)

時間の関係で登壇中は飛ばしてしまいましたが、Twitchって何がすごいの?をちょっとだけ書いてます。

前置きはさておき、本題に入っていきましょう。

Amazon IVSとは?

Amazon IVSはマネージド型ライブソリューションサービスで、早く!簡単に!セットアップ可能です。

SDKを使った配信の埋め込みや、APIを利用したストリーミング画面のカスタマイズなども容易に行えます。

IVSの長所として以下の点を押さえておきましょう。

  • 爆速で環境構築が可能(数クリック)
  • 低遅延配信が可能
  • カスタマイズが容易

触ってみた

実際にハンズオン形式で体験してみました。

AWS Workshopのハンズオン、Live Streaming with Amazon Interactive Video Service を参考に行いました。

以下のアーキテクチャを構築します

  • ローカル配信環境: OBS Studio
  • ライブストリーミング環境: Amazon IVS
  • ブラウザ再生環境: Codepen

IVS構築

オレゴンリージョンを選択し、チャンネルを作成します(2022年1月26日時点で東京リージョン非対応です)

チャンネル名の指定チャンネル設定をします。

チャンネル設定はデフォルト(フルHD、レイテンシー:超低、再生承認:無効)にしています。

S3への記録設定を任意で行い、チャンネルを作成します。

これでチャンネル作成(IVS構築)が完了します。

ここまで最短で3、4クリックでいけるんじゃないかな?と思います。

チャンネルの作成も待ち時間はなく、一瞬で終わるので爆速です。

(おまけ)

S3への記録設定をするとき、サムネイルの記録オプションも指定可能です。

この機能は直近のアップデートで追加されたもので詳しくは以下ブログを参照してみてください。

ローカル配信環境設定(OBS)

続いてローカル配信環境設定を行います。

OBS Studioというライブ配信用ソフトウェアを使用します。

IVSのコンソールから各種パラメータ(サーバRTMPS,ストリームキー)を取得します。

OBSの配信設定の該当の箇所に貼り付けます。

任意で出力、映像設定も行います。

配信画面を設定します。

今回はJWAS-UG朝会のバナー、時計アプリ、文字列(あしさん Live Streaming Now!!!)を入れてみました。

その後、配信開始ボタンを押すと

配信が開始されます!!!

OBSの画面右下のステータスが緑色になっていることが確認できますね。

IVSコンソールのチャンネルのステータスもライブになっていますね。

ブラウザ再生設定(Codepen)

CodepenというHTML/CSS,JavaScriptのコードの確認や編集が行えるWebサービスを利用した、Amazon IVS用のデモサイト1が準備されています。

今回はそのサイトを利用してストリーミング配信の再生を行います。URLはこちら

デモサイトのJSの箇所、const playbackurl〜で始まる変数の内容をIVSの再生URLに変更します。

その後、画面右上Runをクリックすると

配信が再生できました!!

ちなみに遅延は検証時の3秒でした。

オレゴンリージョンでチャンネルを作成しているのに、目立った遅延がなかったことに驚きました。

以下ブログにIVSの設定による遅延の差についてまとめられていますが、IVSのリージョン選択と遅延の関係についても触れられています。

IVSが専用の独自CDNを持っていることにより、チャンネルとリージョンが異なる場所(日本)であっても、低遅延配信を実現できているようです。

Timed Metadata API送信

IVSのチャンネルに対して、Timed Metadata(時限メタデータ,時間指定メタデータ)を送信することができます。

チャンネルにメタデータを送信すると、ストリームを視聴中の全ての視聴者に通知を送信することができます。

その機能を利用して簡単なアンケート機能や投票機能を実装することができます。

AWS CLIが実行可能な環境で以下のコマンドを実行すると

$ aws ivs put-metadata \
   --channel-arn "arn:aws:ivs:us-west-2:XXXXXXXXXXXX:channel/XXXXXXXXXXXX" \
   --metadata "{\"question\": \"What pet do you have?\",\"answers\": [ \"Cat\", \"Dog\", \"Bird\", \"No Pet\" ],\"correctIndex\":2}" \
   --region us-west-2

ブラウザの配信再生画面の方にアンケートが表示されます。

まとめ

  • Amazon IVSはライブストリーミング環境を爆速で構築できる
  • 超低遅延配信もできる
  • SDKやAPIを利用した配信環境のカスタマイズもできる

総括:IVSすごい(語彙力

感想&終わりに

今回のLTではAmazon IVSについて話しました。

ストリーミング配信技術は「何もわからん」な私ですが、思っていた以上に簡単に配信が開始できました。

SDKやAPIを使って色々できそうなので、ガンガン触っていきたいですね。

アップデートも度々されているサービスなどで今後も追いかけていきたいです。

以上、東京オフィスのあしさんでした。


  1. デモ画面の動画の背景がTwitchのアイコンだったり、Twitchではゲーム配信盛り上がっていることを示唆しているのかその隣にロックマンがいたり、なんだかエモいですね。