ちょっと話題の記事

フレッツ・キャストを使った4K映像配信やってみた

2016.08.16

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

はじめに

清水です。この前のAWS Summti Tokyo 2016、開場で4Kライブ配信を行っていたのはみなさま覚えていらっしゃいますでしょうか? また、Day2のGeneral Conference Media & Entertainment Track「最先端事例に見るクラウド時代の動画ワークロードの現在と未来」 ではNTT東日本 里見様から「フレッツ・キャストを利用した4K映像配信」ということで、AWS Summitでの4K配信の構成とその基盤となっているフレッツ・キャストの紹介がありました。

ネットワークの安定性やスループットなどを考えると4K配信はまだまだ先ではないかと思っていましたが、 フレッツ・キャストを用いて高スループット、安定したネットワークを使えば、4K配信でも問題なく「普通に」配信、視聴できることが実感できました。

このフレッツ・キャストですが、AWSアカウントとフレッツ光があればフレッツ・キャスト環境を無料で検証可能とのことでしたので、今回この検証環境を利用して実際に4K映像配信をやってみました!

もくじ

フレッツ・キャスト!?

フレッツ・キャストとは、フレッツ光 *1をアクセス回線として利用できる閉域ネットワークサービスです。 フレッツ光を使用しているユーザに対して、インターネットを経由せずに、広帯域、高スループットな配信をセキュアに実施することができます。

このフレッツ・キャストですが、AWSともつながります! つまり一般家庭などにも引かれているフレッツ光の回線を使って、AWSと閉域網で接続することができます。(すごい!) 具体的にはAWS側とはDirect Connectを介してつながります。今回はフレッツ・キャストの検証環境を使用させていただき、AWSとの接続部分については「AWS専用線アクセス体験ラボ」を使用させていただきました。構成としては以下のようになります。


fletscastimage3


逆に言えば、AWSと閉域網で高スループット、セキュアな通信をするために必要な物が、フレッツ光の回線とAWSアカウントだけ!ということになります。通常、インターネットに接続するために引いているフレッツ光の回線が、そのまま専用線になりインターネットを介さずAWSと接続できる、なにか不思議な感覚です。また特徴的な点として、AWS専用線アクセス体験ラボ(Direct Connectの手前まで)からフレッツ光回線までのネットワークはIPv6通信となります。

それでは実際にAWS側の設定方法や、高スループットを満喫できた4K配信の結果をまとめてみたいと思います。

フレッツ・キャストの利用準備

まずフレッツ・キャストを利用するための準備です。 今回はフレッツ・キャストの検証環境を利用させていただきました。 この検証環境では、「AWS専用線アクセス体験ラボ」へ「フレッツ・キャスト」を使って接続することができます。

この場合、必要な物は「AWSアカウント」と「フレッツ光回線」だけです!今回私は、NTT東日本様に以下の情報をお伝えしました。

  • AWS アカウントID (12桁の数字)
  • フレッツ回線のIPv6プリフィックス (またはCAF番号)

これで、フレッツ回線とフレッツ・キャストの設定、ならびにAWS専用線アクセス体験ラボとDirect Connectの設定を実施していただきます。設定が終わると、完了の旨と、VPCのCIDRブロック情報がいただけます。(VPCのCIDRブロックは指定することも可能とのことです)

また、Direct ConnectのVirtual Interfaceが作成され、承認依頼が来ている状態になります。設定していただいたAWSアカウントでManagement ConsoleからDirect Connectのページを開くと、以下のようになっていました。

VPC-005

この状態から、VPCならびにDirect Connectまわりの設定をしていきます。

ネットワークの構築

VPCならびにDirect Connectまわりの設定をしますが、基本的には通常の設定と変わりまりません。 ポイントは以下の点になります。

  • VPCのCIDRブロックを指定されたものにあわせること
  • ルートテーブルのPropagation(ルート伝達)を有効にすること
  • フレッツ光からAWS環境への接続はIPv6

VPCの作成作成とVirtual Interfaceのアタッチ

VPCのCIDRブロック情報をいただきましたので、このCIDRブロックを元にVPCを作成していきます。 またVPC作成後、Virtual Private Gateway(VGW)を作成、このVGWとVirtual Interfaceをアタッチすることで、自分のAWS環境とAWS専用線アクセス体験ラボ(DXラボ)が接続されます。

まず、VPCの作成です。今回は172.30.0.0/16というCIDRとなりました。 Management ConsoleのVPCの作成から、ネームタグ、CIDRブロックを指定してVPCを作成します。

VPC-001

次に、Virtual Private Gateway(VGW)を作成します。 VPCのManagement Consoleの仮想プライベートゲートウェイから、「仮想プライベートゲートウェイの作成」へ進みます。ネームタグを指定して、作成します。

VPC-003

作成したら、VPCにアタッチします。 作成したVPCを選択して[VPCにアタッチ]を選択し、ダイアログで接続するVPCを確認してアタッチを実行します。

VPC-011

しばらくすると、VPCにアタッチした仮想プライベートゲートウェイの状態が「attached」になるので確認しておきます。

VPC-013

次に、Virtual Interfaceを認証、作成したVGWにアタッチします。 Direct ConnectのVirtual Interfaceから、承認待ち状態にあるVirtual Interfaceを選択、内容を確認してチェックボックスをONにして[Accept Virtual Interface]で認証を行います。

VPC-006

すると、以下のようにアタッチするVirtual Gatewayを選択するダイアログが出ます。VGWのIDを確認して、Acceptしましょう。

VPC-007

しばらくすると、Virtual InterfaceのStateが「available」になりますので確認しておきます。

VPC-014

サブネット、ルートテーブルの作成と設定

サブネット構成についても、特段必要な設定はありません。通常の構成と同じように作成します。ルートテーブルのPropagation(ルート伝達)を忘れずに有効にしておきます。

サブネット構成について、今回は単純に、PublicSubnetを1つ作成して、そこにStreaming Serverを配備する構成としました。 ネームタグ、VPC、アベイラビリティゾーン、CIDRブロックを指定してサブネット作成します。 CIDRブロックについて今回は、172.30.11.0/24としました。

VPC-015

ルートテーブルについても、ネームタグを設定して作成し、サブネットに関連付けます。

VPC-016

ルートテーブルについては、ルート伝達を有効にしておきます。 ルート伝達により、Direct ConnectのVirtual InterfaceのPeer IPと同じCIDRの通信はVGWを経由するルートが追加されます。 169.254.XXX.0/24の送信先がVGWをターゲットとするようなルートですね。この設定により、フレッツ・キャストへの通信はDirect Connect経由のルートとなります。また前述の通り、フレッツ網ではIPv6を使い、AWS側はIPv4の世界になります。IPv6とIPv4の変換については、このルートの先でうまくやってくれるとのことです。
また、EC2インスタンスのインターネット通信の有無に応じて、Internet Gateway(IGW)も作成、ルートに追加しておきましょう。(本エントリの検証では、後ほど動画ファイルのDownload用にインターネット通信を利用するため、設定しておきました)

VPC-022

AWS環境へのIPv6でのアクセス方法

さて、AWS環境はIPv4、フレッツ網ではIPv6となっており、今回の検証では内部でIPv4とIPv6がどのように変換されているか、 詳しく知らずとも接続ができますが、1つだけ把握しておくことがあります。フレッツ光回線(アクセスする端末側)からAWS環境へのアクセスする方法です。

この変換について、例として今回使用しましたサブネット内IPv4の1つ、172.30.123.45を取り上げて、ルールをまとめてみます。

まず、IPv6アドレスの上位96ビットは固定となります。こちらはNTT東日本様から伝えられます。 ここでは例として、2001:db8:cafe:beefとします。
そして、末尾の下位32ビットを、IPv4形式のIPアドレスのオクテット毎に16進に変換します。

IPv4オクテット 16進表記
172 ac
30 1e
123 7b
45 2d

この下位32ビットを、[IPv4の第1オクテットの16進表記、第2オクテットの16進表記]:[IPv4の第3オクテットの16進表記、第4オクテットの16進表記] という形式で追加して、IPv6のIPアドレスは[2001:db8:cafe:beef::ac1e:7b2d]となります。

Streaming Serverの起動と疎通、再生確認

Wowza Streaming Engineの起動

続いて、作成したサブネット内にStreaming Serverを起動します。Streaming Serverについて今回はWowza Streaming Engine4.5を使用しました。Wowza Streaming Engine 4.5はAWS Marketplaceでサブスクリプションすることで、月額ライセンス費用+EC2利用時間に応じた従量課金で使用することができます。
AWS上でのサブスクリプション、起動方法などは以下エントリをご参照ください。

今回は、上記エントリでサブスクリプションまで完了していて、AMIを指定すれば起動する状態を前提として進めています。

まずはWowzaのEC2を起動します。EC2 Management Consoleの[インスタンスの作成]から、Marketplaceでwowzaを検索して、 Wowza Streaming Engine 4: Pro Edition (HVM) を選択します。

SS-001

インスタンスタイプはm4.largeとしました。 4K動画の配信ということで、例えば360p、720pなど通常の動画よりもより多くの帯域を必要とします。 EC2インスタンスのネットワーク帯域はインスタンスタイプに依存するため、検証環境でも意識的によりネットワークパフォーマンスのよい インスタンスタイプを選択することをオススメします。もちろん本番環境ではより慎重に帯域を意識しましょう。

SS-002

インスタンスの詳細設定については、以下の点に注意しました。他の項目はデフォルト設定になります。

  • ネットワークはアクセス体験ラボのDXと接続されているVPCを選択します。(今回はDXLab-VPC)
  • サブネットも同じ行く、VPCに合わせたものを選択します。(今回はDXLab-PublicFrontendAZ-a)
  • 自動割当パブリックIPは今回は有効としました。 (こちらは必要に応じて。パブリックIPを付けなくてもDX経由で接続可能です)

SS-003

ストレージについては、今回はデフォルトのまま進めました。ただ、4K動画は帯域が多い分、多くのストレージを消費します。 こちらも本番環境では慎重に設定してください。S3と連携するのも有効だと思います。

セキュリティグループについては、インバウンドの801935228086-8088を開放します。また疎通確認のために、ICMPについても開放しておきました。開放先については、VGWの先のアドレス169.254.XXX.0/24とすると、DX経由のみ開放することになります。

SS-005

これで、インスタンスを起動します。

Wowza Streaming Engineへの疎通確認

インスタンスを作成したら、プライベートIPアドレスを確認します。 今回プライベートIPアドレスは、172.30.11.202となっていました。

このアドレスから、先ほどのIPv6での接続方法にもとづいて変換して、WowzaのEC2のアドレスは [2001:db8:cafe:beef::ac1e:bca]となりました。 (IPv6の上位96ビットは仮のものです。以下同様になります。)

それではこのインスタンスにping/http/sshでそれぞれ接続確認をしてみます。 また、確認としてサンプル動画の再生についても行ってみたいと思います。

ping疎通確認

手元のMac(OS X Yosemite)からping6コマンドで疎通を確認しました。

[shimizu.toshiya@classmethod] [~]
 $ ping6 2001:db8:cafe:beef::ac1e:bca
PING6(56=40+8+8 bytes) 2000:200:300:e000:f000:9000:c000:d000 --> 2001:db8:cafe:beef::ac1e:bca
16 bytes from 2001:db8:cafe:beef::ac1e:bca, icmp_seq=0 hlim=243 time=5.739 ms
16 bytes from 2001:db8:cafe:beef::ac1e:bca, icmp_seq=1 hlim=243 time=5.784 ms
16 bytes from 2001:db8:cafe:beef::ac1e:bca, icmp_seq=2 hlim=243 time=5.809 ms
16 bytes from 2001:db8:cafe:beef::ac1e:bca, icmp_seq=3 hlim=243 time=5.320 ms
16 bytes from 2001:db8:cafe:beef::ac1e:bca, icmp_seq=4 hlim=243 time=5.585 ms
16 bytes from 2001:db8:cafe:beef::ac1e:bca, icmp_seq=5 hlim=243 time=5.749 ms
16 bytes from 2001:db8:cafe:beef::ac1e:bca, icmp_seq=6 hlim=243 time=5.421 ms
16 bytes from 2001:db8:cafe:beef::ac1e:bca, icmp_seq=7 hlim=243 time=5.742 ms
16 bytes from 2001:db8:cafe:beef::ac1e:bca, icmp_seq=8 hlim=243 time=5.300 ms
^C
--- 2001:db8:cafe:beef::ac1e:bca ping6 statistics ---
9 packets transmitted, 9 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 5.300/5.605/5.809/0.194 ms

http疎通確認

ブラウザから[2001:db8:cafe:beef::ac1e:bca]にアクセスしてみます。
応答があり、以下の様なWowzaについての情報が返ってきました。アクセスOKです。

SS-006

SSH疎通確認

SSHで接続出来ることも確認してみます。

[shimizu.toshiya@classmethod] [~]
 $ ssh -i ~/.ssh/key.pem ec2-user@2001:db8:cafe:beef::ac1e:bca
The authenticity of host '2001:db8:cafe:beef::ac1e:bca (2001:db8:cafe:beef::ac1e:bca)' can't be established.
RSA key fingerprint is fd:49:52:49:28:bf:01:b0:11:42:73:3c:67:c4:63:ab.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '2001:db8:cafe:beef::ac1e:bca' (RSA) to the list of known hosts.
Last login: Tue Jun 21 19:56:48 2016 from ec2-52-3-12-174.compute-1.amazonaws.com

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2016.03-release-notes/
1 package(s) needed for security, out of 1 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-172-30-11-202 ~]$

Wowza Streaming Engine Managerへの接続と配信確認

ブラウザを開いて、Wowza Streaming Engine Managerへ接続してみます。なお、本エントリではHLS配信で確認するため、配信確認部分についてはMac上のSafariを使用しました。 (Managerのログイン方法や使い方は、過去のエントリ(AWSのWowzaでVOD配信してみた)をご参照ください)

http://[2001:db8:cafe:beef::ac1e:bca]:8088/enginemanager をブラウザで開きます。

無事に接続できました。UserIDとPasswordを入力してログインします。

SS-007

Test Playerを起動してサンプル動画を再生してみます。Apple HLSのタブを選択すると、 Server欄にはWowzaインスタンスのPublic IPのIPv4形式がデフォルトで入力されています。 このIPv4形式のPublic IPを、フレッツ・キャスト用IPv6形式+ポート番号[2001:db8:cafe:beef::ac1e:bca]:1935に変更します。

Server欄を変更すると、自動的に再生部分上部のプレイリストのURLも変更されます。 また、Media File Nameについてはmp4:sample.mp4であることを確認します。 これでStartして、サンプルのBig Buck BUNNY *2の動画が再生されることを確認します。

SS-013

Wowzaからフレッツ・キャストを使っての4K動画配信

さて、それでは本題の4K配信をやってみたいと思います。 今回、4Kの動画はBig Buck BUNNY *3 の4K動画を使用しました。こちら(http://bbb3d.renderfarming.net/download.html)からダンロードできます。

まず、4Kの動画をWowzaのインスタンス上に配置します。 今回はEC2にSSHでログインして、wgetでファイルを取得しました。

[shimizu.toshiya@classmethod] [~]
 $ ssh -i ~/.ssh/key.pem ec2-user@2001:db8:cafe:beef::ac1e:bca
Last login: Tue Jul 12 09:02:55 2016 from 169.254.XXX.100

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2016.03-release-notes/

[ec2-user@ip-172-30-11-202 ~]$ cd /home/wowza/content/
[ec2-user@ip-172-30-11-202 content]$ ls
sample.mp4  wowzalogo.png
[ec2-user@ip-172-30-11-202 content]$ sudo wget http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_2160p_60fps_normal.mp4
--2016-07-12 09:06:18--  http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_2160p_60fps_normal.mp4
[ec2-user@ip-172-30-11-202 content]$ ls
bbb_sunflower_2160p_60fps_normal.mp4
sample.mp4
wowzalogo.png

Downloadが完了したら、Safariを開き、先ほどと同様にTestPlayerを開きます。 TestPlayerのServerの欄はフレッツ・キャスト用IPv6形式+ポート番号の形式に、 またMedia File Nameの欄にDownloadした4Kのファイル名を入力します。
以下の状態でStartを押しました。

  • Server [2001:db8:cafe:beef::ac1e:bca]:1935
  • Media File Name mp4:bbb_sunflower_2160p_60fps_normal.mp4
  • Playlist URL http://[2001:db8:cafe:beef::ac1e:bca]:1935/vod/mp4:bbb_sunflower_2160p_60fps_normal.mp4/playlist.m3u8

SS-014

再生できました。ただ、Playerのサイズが小さいので4Kの解像度を満喫できません、、、(なんとなく、先ほどの配信確認のサンプル動画よりも画質が良くなっていることはわかるのですが)

せっかくなのでなるべく大きい画面で再生してみたいと思います。先ほどのPlaylistのURLをそのままSafariのブラウザに貼り付けてみると、ブラウザのサイズで再生してくれます。手元に4Kのモニタはなかったのですが、手元のMac Book Proの解像度をフル活用(2,560x1,600)してキャプチャしたのが以下の画面になります。画像の細やかさとメニューバーの小ささにご注目ください!

SS-018

まとめ

フレッツ・キャストの検証環境とAWS専用線アクセス体験ラボを使って、フレッツ・キャストを利用した4K映像配信を実際にやってみました!
配信ですが、いたって普通に(つまりとても安定して)4K映像配信を視聴することができました。(Big Bug BUNNYの動画は何回も見たことがありますが、4Kで見ると感動もひとしおですね。思わず見入ってしまいました)

設定については、Direct ConnectでVirtual Interfaceを使う場合の注意点やルートテーブルなど、Direct Connectの設定ポイントを抑えておけば、特段難しいこともなく設定できる印象です。またIPv6についても、敷居が高そうな印象がありましたが、IPv4からのアドレス変換ルールさえ把握しておけば問題ありませんでした。

実際にフレッツ・キャストを使ってみて、この環境がインターネットに出ていないのが少し不思議な感覚でした。 回線としては普通のフレッツ光回線、ONU等も見慣れたものです。これらは普通インターネットにつながるものであり、また専用線なんてそんな身近なものじゃない、という先入観からかと思います。

フレッツ光の回線があればとてもお手軽にセキュアなで構成な閉域網が使用できる「フレッツ・キャスト」、今後、様々な利用可能性が秘められているかと思います。ぜひAWS専用線アクセス体験ラボとあわせて、みなさま体験していただければと思います。「フレッツ・キャスト」についての詳細やお問い合わせは下記、NTT東日本様のページからどうぞ!

脚注

  1. NTT東日本様の提供するフレッツ光ネクスト、フレッツ光ライトのほか、NTT東日本より光アクセスサービス(フレッツ光)の提供を受けた事業者様(光コラボレーション事業者)が提供する光アクセスサービスも対象です。
  2. Big Buck Bunny
    Copyright (C) 2008 Blender Foundation | peach.blender.org
    Some Rights Reserved. Creative Commons Attribution 3.0 license.
    http://www.bigbuckbunny.org/
  3. Big Buck Bunny
    Copyright (C) 2008 Blender Foundation | peach.blender.org
    Some Rights Reserved. Creative Commons Attribution 3.0 license.
    http://www.bigbuckbunny.org/
    Stereoscopic / 4K / 60 fps / HDRI changes
    Copyright (C) 2013 Janus B. Kristensen
    Some Rights Reserved. Creative Commons Attribution 3.0 license.
    http://bbb3d.renderfarming.net/