🎥
Amazon Kinesis Video Streams with WebRTCについてまとめる
概要
re:Inventにて、Kinesis Video Streams with WebRTCを扱ったワークショップをしたが、
時間の関係上深く理解できてないので再学習としてまとめる
ドキュメンテーション
Amazon Kinesis Vide Streams(KVS)について
資料はBlackBeltより拝借
超低遅延でのメディアストリーミングと100万台規模のデバイス感での双方向通信をサポート
2種類のストリーミング方法
メディア形式とWebRTCとの使い分け
KVS WebRTCにおける用語
WebRTCの接続フロー
WebRTCとは
リアルタイムコミュニケーションのためのオープンな標準規格
簡易なAPIを経由してブラウザとモバイルアプリケーションとの間でリアルタイム通信(RTC)が可能
メリット
- パソコン、もしくはスマホがあれば利用
- 機材を購入しなくてもできる
- 新しいアプリケーションをインストールする必要がない
- ブラウザの中で完結できる
- 通信がとても軽い
- 「UDPプロトコル」を採用。通信の開始や終了の処理がない分、通信が速くなる。
デメリット
- セキュリティ面
- 通信の軽さを実現している反面、UDPプロトコルのセキュリティ面で信頼性が低下
- セキュアにしたいならSRTプロトコル
- 接続できる人数に限界がある
- 視聴者が増えれば増えるほど配信側のデータ送信の負担も増える
KVS WebRTC用語
シグナリング
接続のメタデータの交換
相互通信-Peer-to-peer(P2P)
Peer-to-peer接続の確率
メディア配信
低遅延でのメディアと任意のデータの双方向通信
暗号化
End-to-endでの暗号化
KVSを利用した構成例
BlackBeltより、ドローン・ロボットでの遠隔制御によるWebRTC構成
WebRTC SDK
WebRTCを備えたKinesis Video Streamには、次のSDKが含まれています。
- 組み込みデバイス用のWebRTC C言語 SDK
- WebRTC Webアプリケーション向けのJavaScriptのSDK
- WebRTC SDK for Android
- WebRTC iOS for SDK
詳細はこちら
WebRTCでのセキュリティ
WebRTCリソースを使用してKinesisビデオストリームを監視および保護について
- WebRTCによるKVSへのアクセスの制御 IAMを使用するリソース
- KVSのコンプライアンス検証 WebRTC
- KVSの回復力 WebRTC
- KVSのインフラストラクチャセキュリティ WebRTC
- KVSのセキュリティベストプラクティス WebRTC
メディアの保存 - データの暗号化と保存期間
これはKVSのメディア形式での場合
- データの暗号化
- 常にサーバーサイドの暗号化が有効になっている
- データはストレージレイヤーに書き込まれる前に暗号化され、ストレージから取得された後に復号される
- ストリームの作成時に、暗号化に使⽤する AWS KMS カスタマーマスターキー
(CMK) を指定できる(あとから変更はできない) - ストリームの作成時にユーザー指定のキーが指定されていない場合は、既定のキー (Kinesis Video Streams が提供) が使⽤される
- データの保存期間
- ストリーム作成時にデータの保存期間を指定できる(あとから変更もできる)
- 設定可能な範囲は、最短は0(保存しない)で最⻑は10年(87600時間)
- データの保存量に応じてサービス利⽤料⾦が発⽣する
録画について
Kinesis Video Streamsで録画する場合、WebRTCはサポートされてないためメディア形式で対応可能
AWS IoT for Developers Amazon Kinesis Video Streams with WebRTC Meetup
モニタリング
Kinesis Video Stream WebRTCの監視手法について
- WebRTCメトリックを使用したKVSの監視 CloudWatch
- AWSを使用したWebRTC API CallによるKVSのログ CloudTrail
KVS with WebRTCの制限
- ConnectAsMaster
- シグナリングチャネルごとのマスター接続の最大数1
- ConnectAsViewer
- チャネルごとのビューア接続の最大数10
カメラとなるマスターの接続は1対1となり、1カメラ映像へのビューワー接続が最大10までは可能。
ただし、ビューワー側の接続数をこれ以上増やしたい場合はメディアサービスとなるMediaConnectなどを利用する。
KVS WebRTCの料金について
- アクティブなシグナリングチャネル(チャネルあたりの月額) 0.04500USD
- シグナリングメッセージ(100万あたり) 3.37500USD
- TURN Streaming の時間 (分) (1000 あたり) 0.18000USD
サンプルアプリ
KVS WebRTCを利用したWeb用テストページが公開されている
Discussion