FMS on AWSを動かしてみる。

記事タイトルとURLをコピーする

on

はじめまして、開発担当の千葉です。

Adobe社がモバイル向け「FlashPlayer」の開発中止を発表した矢先ですが
空気を読まずにFlashネタを投稿させて頂きます。
(モバイル版Flashについては、カスリもしないので悪しからず)

今回は、EC2上にビデオ・オン・デマンド環境を構築してみたいと思います。
「メディアサーバ」には「Flash Media Server(以下、FMS)」を利用します。

これまで、『Flash Media Serverは非常に高価』と言われてきました。
その為、LGPLライセンスで提供されてる「FMS」のクローンである
「red5」が採用されるシーンを多く見聞きしてきました。

「red5」を提案する際のイメージは、こんな具合かな?


でも、実際は「red5」ではサーバサイドとクライアントサイドで開発言語が違っていたり
RTMPEに未対応だったりと、すこしカユいところがありました。

そんな中、2011年04月に東京リージョンでも「FMS」がプリインストールされた
AMIが利用可能となりました。「Adobe Flash Media Server on Amazon Web Services

これにより、イニシャルコストはサブスクライブ代金の500円のみで
『インストールの手間なし』+『従量課金』で「FMS」を利用することが可能となりました。
これからは「FMS」が採用されるシーンが”ぐ”っと増えていくのではないかなと思います。

それでは、さっそく環境を構築して動作検証したいと思います。

1. サブスクライブ

以下のページにて「Subscribe now>」をクリックして
クレジットカード情報を入力してサブスクライブしてください。

2. インスタンスの起動

インスタンスは、投稿時の最新版である、AMI ID「ami-bcd366bd」を選択しました。
Instance Typeは、動作検証が目的なので最小構成である「large」とします。
(large以下は選択できません)

3. Security Groupの設定

以下の接続を許可します、詳細はリンクを参照してください。
「FMS」が使用するポートについて

tcp

  • 22
  • 80
  • 443
  • 1111
  • 1935
  • 8134

udp

  • 1935
  • 19350-65535

4, sshでの接続

まずは、sshでログインします。

$ ssh -i ~/.ssh/example.pem root@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com
Last login: Wed mm dd hh:mi:ss yyyy from xxx.xxx.xxx.xxx
       ___     _       _
      /   |   | |     | |
     / /| | __| | ___ | |__   ___
    / /_| |/ _  |/ _ |  _  / _
   / ___  | (_| | (_) | |_) |  __/
  /_/   |_|__,_|___/|____/ ___|
  Revolutionize Interactive Media Experiences

  Adobe Systems Incorporated
  Adobe Flash Media Server on Amazon Web Services
  Version: 4,0,3,8001             AMI Version: r1

  Product Information: http://www.adobe.com/go/fmsaws
  Support Forums: http://forums.adobe.com/community/flash/flash_media_server
  Paid Product Support: http://www.adobe.com/support/flashmediaserver/

[root@ip-xxx-xxx-xxx-xxx ~]#

5. 時刻の設定

[root@ip-xxx-xxx-xxx-xxx ~]# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

6. 動画コンテンツ等の設置ディレクトリ変更

このままでも利用できるのですが、動画ファイル・ログファイル等はEBSに設置し
可用性を高めたいと思います。

6-1. fmsの停止

[root@ip-xxx-xxx-xxx-xxx ~]# /etc/init.d/fms stop

6-2. EBS Volumeの作成

以下の手順で、EBS Volumeを作成します。
[AWS Management Console] -> [EC2] -> [ELASTIC BLOCK STORE:Volumes] -> [Create Volume]

6-3. EBS VolumeのAttach

作成したEBS VolumeをFMSサーバの「/dev/sdf」に設置します。

6-4. EBS Volumeのファイルシステム作成、マウント

[root@ip-xxx-xxx-xxx-xxx ~]# mkfs -t ext3 /dev/sdf
[root@ip-xxx-xxx-xxx-xxx ~]# mkdir /mnt/ebs
[root@ip-xxx-xxx-xxx-xxx ~]# mount /dev/sdf /mnt/ebs

6-5. applicationsディレクトリの移動

[root@ip-xxx-xxx-xxx-xxx ~]# mv /mnt/applications /mnt/ebs/applications

【設定ファイルの修正】/opt/adobe/fms/conf/fms.ini

LIVE_DIR = /mnt/applications/live
VOD_DIR = /mnt/applications/vod/media
VHOST.APPSDIR = /mnt/applications
↓
LIVE_DIR = /mnt/ebs/applications/live
VOD_DIR = /mnt/ebs/applications/vod/media
VHOST.APPSDIR = /mnt/ebs/applications

【設定ファイルの修正】/opt/adobe/fms/Apache2.2/conf/httpd.conf

HttpStreamingLiveEventPath "/mnt/applications"
HttpStreamingContentPath "/mnt/applications"
↓
HttpStreamingLiveEventPath "/mnt/ebs/applications"
HttpStreamingContentPath "/mnt/ebs/applications"

6-6. webrootディレクトリの移動

[root@ip-xxx-xxx-xxx-xxx ~]# mv /mnt/webroot /mnt/ebs/webroot

【設定ファイルの修正】/opt/adobe/fms/conf/fms.ini

VOD_COMMON_DIR = /mnt/webroot/vod
↓
VOD_COMMON_DIR = /mnt/ebs/webroot/vod

【設定ファイルの修正】/opt/adobe/fms/Apache2.2/conf/httpd.conf

DocumentRoot "/mnt/webroot"
<Directory "/mnt/webroot">
HttpStreamingContentPath "/mnt/webroot/vod"
↓
DocumentRoot "/mnt/ebs/webroot"
<Directory "/mnt/ebs/webroot">
HttpStreamingContentPath "/mnt/ebs/webroot/vod"

6-7. logsディレクトリの移動

[root@ip-xxx-xxx-xxx-xxx ~]# mv /mnt/logs /mnt/ebs/logs

【設定ファイルの修正】/opt/adobe/fms/conf/fms.ini

LOGGER.LOGDIR = /mnt/logs
↓
LOGGER.LOGDIR = /mnt/ebs/logs

6-8. FMSの起動

[root@ip-xxx-xxx-xxx-xxx ~]# /etc/init.d/fms start

7. サンプルページへの接続

ブラウザからFMSサーバの「Public DNS」に記載されているアドレスへアクセスしてみましょう。
ページ中心部で動画が自動再生されれば、まずは環境構築完了です。

この様に、「手順6. コンテンツをEBSに(ry」が不要であれば
10分とかからずに、EC2上にビデオ・オン・デマンド環境を構築が可能です。

携帯電話やスマートフォンの普及で、動画の撮影がとても身近になったので
配信環境がもっと簡単に持てるようになればオモシロいだろうな。。。と思う秋の夜長なのでした。