Cloud Service
Amazon Kinesis Video Streams
カメラやデバイスの動画ストリームを安全に取り込み、保存・再生・解析できるようにするマネージドサービス。
- 1.カメラや端末からの動画を届いた端から取り込んで時系列に保存する。
- 2.保持期間内なら過去映像をオンデマンドやライブで再生できる。
- 3.フレームを取り出して機械学習やリアルタイム解析につなげられる。
解決する課題
監視カメラやドライブレコーダー、スマートデバイスの映像を扱おうとすると、従来は録画サーバーの構築、ストレージ容量の管理、再生用プロトコルの実装、解析パイプラインの接続まで自前で抱える必要がありました。Kinesis Video Streams なら次を任せられます。
- 多数のデバイスからの動画を安全に取り込み、時系列に保存する
- 保持期間内の映像をライブ/オンデマンドで再生する
- フレームを取り出して機械学習やリアルタイム解析に流す
主要概念と用語
- ストリーム: 1つの動画ソース(多くはカメラ1台)に対応する取り込み単位
- プロデューサ: 映像を送り込む側。カメラやエッジ機器、SDK を組み込んだアプリ
- コンシューマ: 映像を取り出す側。再生プレーヤーや解析アプリケーション
- フラグメント: 連続するフレームをまとめた取り込み・保存の最小単位。各フラグメントに番号とタイムスタンプが付く
- 保持期間: ストリームごとに設定する映像の保存期間。期間内の映像を後から取得できる
- プロデューサ/パーサライブラリ: 映像の送信と、取得した映像の解析を助ける SDK 群
- WebRTC: ブラウザや端末との双方向・低遅延通信を実現する仕組み。ライブ視聴や音声通話向け
仕様・制限・クォータ
- 映像はフラグメント単位で時系列に取り込まれ、ストリームごとの保持期間内で保存される
- 取り込んだ映像には HLS や DASH、あるいは個別フラグメント取得用の API でアクセスできる
- ストリーム数や1ストリームあたりのスループットなどにはアカウント単位のクォータがあり、引き上げ申請が可能
- 低遅延の双方向通信が必要な場合は、保存・再生用のストリームとは別に WebRTC のシグナリング機能を使う
- 具体的なフラグメントサイズの上限や保持期間の最大値などは変動し得るため、最新の公式ドキュメントで確認する
内部の仕組み
プロデューサ側は映像をフラグメントに区切って送信し、サービスは各フラグメントに連番とタイムスタンプを付けて時系列に並べて保存します。これにより、コンシューマは「いつの映像か」を起点に過去映像を取得したり、ライブ位置に追従したりできます。
再生はストリーミング用プロトコルで提供されます。汎用プレーヤーで視聴したい場合は HLS や DASH のエンドポイントを払い出し、フレーム単位で解析したい場合は個別フラグメント取得 API で生データを取り出します。
リアルタイム性が最優先の用途では、保存・再生フローとは別系統の WebRTC を使います。これはピア間の双方向・低遅延通信を仲介する仕組みで、ライブ視聴や双方向の音声・映像に向きます。
過去映像の保存・再生・解析が目的ならフラグメント取り込み型のストリームを、双方向のライブ通信が目的なら WebRTC を選ぶ。両者は別の機能なので、要件で使い分ける。
設計パターン / ベストプラクティス
- エッジ機器にはプロデューサ SDK を組み込み、ネットワーク断でも再接続・再送できるようにする
- 保持期間は用途とコストのバランスで決める。長期保管が目的の映像は、必要に応じてフラグメントを取り出して S3 などへ退避する
- 解析は別サービスに委ねる。取り出したフレームを画像解析や動体検知の処理へ渡し、結果はイベントとして後段に流す
- ライブ視聴は HLS/DASH、超低遅延や双方向が要るなら WebRTC、と目的別にアクセス方式を選ぶ
- 1カメラ=1ストリームを基本とし、デバイスとストリームの対応を明確にして運用しやすくする
運用・監視
- 取り込みの健全性は、取り込みバイト数やフラグメント受信状況、取り込み遅延などのメトリクスで監視する
- プロデューサ側のネットワーク断・再接続を検知できるよう、デバイス側のログとサービス側メトリクスを突き合わせる
- 再生エラーが出るときは、保持期間切れ・対象時刻の映像欠落・プロトコル設定を順に切り分ける
- メトリクスとアラームは CloudWatch に集約し、取り込み停止を早期に検知できるようにする
コスト
- 主な課金要素は取り込みデータ量、保存データ量(保持期間に比例)、取り出し(再生・取得)データ量
- WebRTC を使う場合はシグナリングや接続に関する課金が別途発生する
- 保持期間を長くするほど保存コストが増えるため、長期保管は安価なストレージへの退避を検討する
- 具体的な単価はリージョンや時期で変わるため、料金は定性的に捉え、見積りは公式の料金ページで確認する
セキュリティ
- 転送時は TLS、保存時は KMS による暗号化で保護される
- プロデューサ/コンシューマのアクセスは IAM で制御し、デバイスごとに最小権限を与える
- デバイスへ長期の認証情報を直接持たせず、一時認証情報や証明書ベースの認証を使って漏洩リスクを下げる
多数のカメラに同じ長期キーを焼き込むのは避ける。1台漏れると全台に波及する。デバイス単位の権限と一時認証情報で被害範囲を限定する。
Well-Architected の観点
- 運用性の優秀さ: 録画基盤やストレージ管理をマネージドに任せ、取り込み監視とアラームに運用を集中できる
- 信頼性: フラグメントの時系列保存と保持期間により、デバイス断後も期間内の映像を取りこぼしなく扱える
- セキュリティ: 暗号化と IAM、デバイス単位の最小権限で映像という機微データを保護する
- コスト最適化: 保持期間の適正化と長期映像の外部退避で保存コストを抑える
試験で問われるポイント
- 「カメラやデバイスの動画を取り込んで保存・再生・解析」→ Kinesis Video Streams
- 保存・再生・フレーム解析は取り込み型ストリーム、双方向の低遅延ライブは WebRTC、と使い分ける
- 過去映像の取得は保持期間内のみ。期間設定が保存コストと再生可否を左右する
- データのストリーミングは Data Streams、動画のストリーミングは Video Streams と区別する
関連サービス・比較
同じ Kinesis ファミリーの Kinesis Data Streams とよく混同されます。扱うデータの種類が異なります。
| 観点 | Kinesis Video Streams | Kinesis Data Streams |
|---|---|---|
| 主な対象 | 動画・音声・時系列メディア | ログやクリック等の汎用レコード |
| 保存と再生 | 保持期間内に映像をライブ/オンデマンド再生 | 保持期間内にレコードを再読み込み |
| 低遅延の双方向 | WebRTC で対応 | 対象外 |
| 主な後段 | 画像解析や機械学習 | ストリーム処理や各種配信 |
ハンズオン / CLI例
# 保持期間を指定して動画ストリームを作成
aws kinesisvideo create-stream \
--stream-name front-door-cam \
--data-retention-in-hours 24
# 再生用(HLS)のエンドポイントを取得
aws kinesisvideo get-data-endpoint \
--stream-name front-door-cam \
--api-name GET_HLS_STREAMING_SESSION_URL
AWS Service
Amazon Kinesis Video Streamsを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
メディア
比較で見る軸
クラウド: AWS / カテゴリ: メディア / 難易度: intermediate
導入後に効く点
保持期間内なら過去映像をオンデマンドやライブで再生できる。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- AWS
- カテゴリ
- メディア
- 難易度
- intermediate
- 関連資格
- DEA-C01 / DVA-C02
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「メディア / operational」に近いか確認する。
- 強みである「カメラや端末からの動画を届いた端から取り込んで時系列に保存する。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。