[アップデート] AWS Elemental MediaConvertがHTTPSからのファイル入力に対応していました!

AWS Elemental MediaConvertで入力ファイルを指定する際、これまでAmazon S3上に保管するファイルを指定する必要がありましたが、HTTPS/HTTPでアクセスできるソースを入力ファイルとして扱えるようになりました。
2019.08.31

はじめに

清水です。AWS Media Servicesの細かなアップデートを追っていくコーナーです。本エントリーでお伝えするのはこちら、ファイルベースの動画変換サービスであるAWS Elemental MediaConvertでHTTPS(とHTTP)の入力ソースに対応しました!(2019/07/19にアップデートされた内容になります。)

これまでAWS Elemental MediaConvertはAWSのオブジェクトストレージサービスであるAmazon S3に保存したファイルを入力ソースとしていました。そのため変換したい元ファイル(元の映像ソース)がAmazon S3にない場合は一度S3にコピーする、などの対応が必要でした。今回のアップデートで変換したい元ファイルにHTTPS/HTTPでアクセスできれば、そのままMediaConvertの入力ソースにすることができるようになりました!

MediaConvertの入力ファイルをHTTPSで指定してみた

それでは実際にMediaConvertでジョブを作成して確認してみます。

HTTPSの入力ソース

まずはHTTPSでアクセスできる入力ソースを準備します。今回はサクッとALB+EC2の環境を準備、EC2上にApacheをインストール、MOV動画をEC2上に配置しました。ドメインを設定し、以下のようにHTTPSでアクセスできる状態です。

$ curl -I https://test-mch.mydomain.net/sample19-1.mov
HTTP/2 200
date: Sat, 31 Aug 2019 04:26:25 GMT
content-type: video/quicktime
content-length: 168479057
server: Apache/2.4.39 ()
last-modified: Sat, 31 Aug 2019 03:36:26 GMT
etag: "a0ac951-591617191f7d8"
accept-ranges: bytes

MediaConvertでHTTPSソースを入力としたジョブを作成

続いてMediaConvertでジョブを作成します。まずInput設定の項目ですね。以下の通り、AWSマネジメントコンソールでs3://入力例が表示されています。

ここにhttps://ではじまるURLを入力します。

その他の項目は通常のMediaConvertのJob作成時と変わりありません。今回はOutput groupsとしてApple HLSを選択、出力先としてS3バケットとパスを指定、System-Avc_16x9_1080p_29_97fps_8500kbpsのSystem Presetを使用しました。Job settingsの項目でIAM roleを忘れずに設定して、Jobを作成します。

以下のように問題なく変換ができました!

Inputの指定をHTTPにしても(今回ならhttp://test-mch.mydomain.net/sample19-1.mov)問題なくジョブが実行されました。ただし、HTTPでドメインではなくIPアドレスを指定した場合(今回ならhttp://3.112.XXX.63/sample19-1.mov)は、以下のようにエラーが出てしまい、ジョブの作成ができませんでした。

その他、HTTPS/HTTPでアクセスできるソースを入力とする際には、パブリックであること、認証が不要であること、リダイレクトには対応していないことなど、MediaConvertのユーザガイドに注意点がありますので、あわせて確認しておきましょう。

おまけ

MediaConvertからHTTPS/HTTPでどのようにアクセスしているのか、確認のため手っ取り早くApacheのアクセスログを参照してみました。以下のようにまずはHEADリクエスト、その後一度にファイル全体を取得するのではなく、段階的にファイル取得しているようですね。

52.193.202.31 - - [31/Aug/2019:04:38:46 +0000] "HEAD /sample19-1.mov HTTP/1.1" 200 - "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:48 +0000] "GET /sample19-1.mov HTTP/1.1" 206 706897 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:47 +0000] "GET /sample19-1.mov HTTP/1.1" 206 16777216 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:48 +0000] "GET /sample19-1.mov HTTP/1.1" 206 16777216 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:48 +0000] "GET /sample19-1.mov HTTP/1.1" 206 16777216 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:48 +0000] "GET /sample19-1.mov HTTP/1.1" 206 16777216 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:47 +0000] "GET /sample19-1.mov HTTP/1.1" 206 16777216 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:48 +0000] "GET /sample19-1.mov HTTP/1.1" 206 16777216 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:48 +0000] "GET /sample19-1.mov HTTP/1.1" 206 16777216 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:48 +0000] "GET /sample19-1.mov HTTP/1.1" 206 16777216 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:48 +0000] "GET /sample19-1.mov HTTP/1.1" 206 16777216 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"
52.193.202.31 - - [31/Aug/2019:04:38:49 +0000] "GET /sample19-1.mov HTTP/1.1" 206 16777216 "-" "Apache-HttpClient/4.5.x (Java/1.8.0_212)"

まとめ

AWS Elemental MediaConvertで入力ファイルの指定がHTTPS/HTTPに対応したアップデートについて、実際にジョブを作成して確認してみました。これまで変換の前のS3にファイルを別途コピーする必要があった、などの場合には直接入力ソースにアクセスできるようになり、うれしいアップデートではないでしょうか。引き続きAWS Elemental MediaConvert含めたAWS Media Servicesの機能アップデートに注目していきたいと思います。