MediaLiveとMediaStoreで動画配信する(前編)

MediaLiveとMediaStoreで動画配信する(前編)
この記事をシェアする

はじめに

こんにちは。スカイアーチHRソリューションズのmikaです。
案件で動画配信を扱っていたのですが、下記の通りAWSのサービスはMediaStoreしか使用していませんでした。
そこで「お客様の自社システム(謎)」部分もAWSでやってみようと思い立ちました。

構成

このように、MediaLiveと(AWSサービスではありませんが)OBSが追加されます。

MediaStoreコンテナ作成 ※抜粋

マネージメントコンソールMediaStore画面からCreate container にてコンテナを作成します。

重要なのは「コンテナポリシー」「コンテナ CORS ポリシー」の設定です。
コンテナポリシーについては、Resource に”<今作ったMediaStoreコンテナのARN>/*“を設定する必要があります。
ARNは、作成したコンテナの画面のinfoタブにてコピー出来ます。
HTPS経由のパブリック読み取りアクセスを許可しています。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadOverHttps",
      "Effect": "Allow",
      "Action": ["mediastore:GetObject", "mediastore:DescribeObject"],
      "Principal": "*",
      "Resource": "<今作ったMediaStoreコンテナのARN>/*",
      "Condition": {
        "Bool": {
            "aws:SecureTransport": "true"
        }
      }
    }
  ]
}

また、コンテナCORSポリシーを追加することにより異なるドメインからの MediaStore リソースの読み込みを許可します。

[
  {
    "AllowedOrigins": [
      "*"
    ],
    "AllowedMethods": [
      "GET",
      "HEAD"
    ],
    "AllowedHeaders": [
      "*"
    ],
    "MaxAgeSeconds": 3000
  }
]

MediaLiveチャンネル作成 ※抜粋

マネージメントコンソールMediaLive画面からCreate channel にてチャンネルを作成します。

重要なのは

  • チャンネルテンプレート選択
  • ロール選択
  • Input設定(OBSから元動画データをRTMPプロトコルにて受け入れる)
  • Output設定(MediaStoreへ配信用の形式(HLS等)に変換して送る ※本ブログではHLS変換)

の4つです。
チャンネルテンプレートは「Live event(HLS)」を選択します。Live eventは2つありますがHLSの方を選びます。

すると、すぐ上の項目「IAM role」にて「Create role from template」が選択出来るようになりますので、こちらを選び「Create IAM role」をクリックして自動的にロールを作ってしまいましょう。MediaLiveAccessRoleというロールが設定されます。

次にキモとなるInput/Outputの設定に入ります。まずはInputから。
Input作成⇒Inputをチャンネルに紐付け(アタッチ)という順番で行います。チャンネル設定画面では「Input attachments 」しかありませんが、「Add」をクリックすると「Create Input」ボタンも表示されます。

Input typeは「RTMP(push)」を選択します。(push)の方です。

Input security groupもここで新たに作成します。CIDR指定は検証の場合、<自身のPCのグローバルIPアドレス>/32 にします。こちらでIPアドレスが確認できます。

Input destinationsは少し注意が必要です。百聞は一見に如かずということで、もし下記の通り設定すると

後ほどOBSに設定するエンドポイントが以下のようになります。ちなみに黒塗り部分ははエンドポイントIPアドレス、数字の「1935」はrtmpのプロトコル番号です。エンドポイントが2つあるのは冗長構成であるためです。

後編予告

MediaLiveとMediaStoreで動画配信する(後編)では、MediaLiveチャンネル作成の続き・OBS設定を行った上でCloudFront経由で配信出来るようにします。

この記事をシェアする
著者:mika
息子とボドゲ・人狼会に良く行く子連れ狼AWSエンジニアです。