オブジェクトストレージを使って動画配信をしてみよう
今回は、Cloudnのオブジェクトストレージを利用して、プログレッシブの動画配信をやってみようと思います。
まずオブジェクトストレージとは、Amazon S3のようなオンラインストレージのことを指します。このようなストレージは、簡易Webサーバーの機能を持っているため、外部に公開してブラウザでアクセスすることができます。簡易というのは、PHPのようなWebプログラムやhtaccessの設定はできないため、そういった所で簡易です。
レンタルサーバに似ていますが、オブジェクトストレージの特徴は
- 容量の上限がなく、利用した分のストレージ容量で課金される
- 99.999999999%の高信頼のストレージであるため、めったに落ちない
というふうに、レンタルサーバーのような100Gまでしかストレージが使えないなど制約はなく、いくらでもファイルをアップロードすることができ、そして、まず止まることはない信頼性があります。そのほかに、REST APIという機能で制御することもできます。
では、実際にやってみようと思います。
まず、ファイルのアップロードに、ディレクトリに相当する「バケット」を作成します。ここでは、「obj」というバケットを作成しました。そして、そのバケットにmp4ファイル(bunny.mp4)をアップロードします。
このアップロードしたmp4ファイルを選択して、パーミッション(アクセス権)を設定します。「読み出しの許可」にチェックを入れ、「保存」ボタンを押すと、ずらっと、URLのアドレスが表示されます。URLの?(ハテナ)以降にいろいろパラメータが付いていますが、これは、有効期限やダウンロード数をカウントするためのパラメータです。この長いURLでアクセスするとカウントされます。
パラメータを削除して、http://obj.str.cloudn-service.com/bunny.mp4 でアクセスすると、このようにアクセス拒否となります。
このような制約では、逆に使いづらいので、「個別アクセス権設定」にて、「Public」に「読み出し可能」にチェックを入れて保存します。
こうすることで、直接アクセスできるようになり、有効期限、ダウンロード数は無効になります。
それでは、Flash Media Playback Setup のサイト上で、取得したアドレスを入力して再生確認をしてみましょう。
プログレッシブで再生されましたね。どのくらいの帯域か見てみると約100Mbpsの速度がでていました。回線の混み具合でスプーレットは落ちるそうですが、ある程度は耐えられそうです。
また、レンジリクエストも(非サポートだと思いますが)可能のようでChromeでアクセスすると、未ダウンロード位置にシークすることも可能でした。※Firefoxだとちょっと、シークバーが機能しない感じでダメでした。
このように、ワンタイムURLのようなセキュリティが不要で、ちょっと配信できれば良いという用途であれば、利用価値はありそうです。検索エンジンにクロールされないように、robots.txt をドキュメントルートにアップロードすれば、動作するようです。
次回は、オブジェクトストレージをオリジンサーバとして、CDNを利用した配信についてみてみようと思います。