2015年02月13日

AWSを使った動画配信ではまったこと。

S3 + CloudFront + Elastic Transcoderで動画配信が行えることは公知の事実です。

自分もやって見たが思ったより簡単に行えて驚きました。

そんな中で1つだけはまったことがあったのでメモしておく。

今回実現した大まかな方法ですが、

API(JAVA)でS3に動画をアップロード



既に作成済のPipeLineにAPI(JAVA)でJobを投下



CloudFront経由で配信

という流れです。


そこでずっとはまっていた内容があって、

S3にはファイルがあるのに、CloudFront経由で見ると403エラーが返って来てしばらく見れないという現象。

概ね5分程度すれば見れるようになるのだけど、このタイムラグがどうしても気に入らなかった。

その原因がやっと分かった。

結論から言うと、CloudFrontのエラーキャッシュ機能だった。

しかも、これのTTLがデフォルト5分。。。

確かにElastic Transcoderで変換された動画がS3上に表示されるのに10秒程度のタイムラグがあった。

その間にCloudFront経由で見ると、まだファイルがないので403が返ってくる。

それが5分間キャッシュされていたために、その間は閲覧が不可な状態ということだった。

というとこでCloudFrontの設定(Error Pages)で、403エラー時のキャッシュTTLを0にしたところ、

S3にファイルが出来次第、CloudFront経由で閲覧できるようになった!

でも、これはHISとかのWEB配信時の話で、配信方法がRTMP時はこの設定ができない。

そこまでの遅延はないから許容範囲かな。。様子見です。

以上
【関連する記事】
posted by hana at 12:11| Comment(0) | TrackBack(0) | AWS | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック