[アップデート] AWS Elemental MediaConvertがHTTPSからのファイル入力に対応していました!
はじめに
清水です。AWS Media Servicesの細かなアップデートを追っていくコーナーです。本エントリーでお伝えするのはこちら、ファイルベースの動画変換サービスであるAWS Elemental MediaConvertでHTTPS(とHTTP)の入力ソースに対応しました!(2019/07/19にアップデートされた内容になります。)
- AWS Elemental MediaConvert Now Ingests Files from HTTPS Sources
- AWS Elemental MediaConvert で HTTPS ソースからのファイル取り込みが可能になりました
- AWS Developer Forums: AWS Elemental MediaConvert Now Ingests Files from HTTPS Sources
これまで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の機能アップデートに注目していきたいと思います。