AWS Elemental MediaConvert リザーブド料金の仕組みまとめ
こんにちは、大前です。
以前、AWS Elemental MediaLive(以下 MediaLive)におけるリザーブド価格についてのブログを記載しました。
今回は AWS Elemental MediaConvert(以下 MediaConvert)におけるリザーブド価格について記載していきたいと思います。とっつきにくい印象があるリザーブド価格ですが、キチンと理解しておくことでコストの最適化に繋がりますので、頑張っていきましょう。
前提知識
MediaConvert の料金体系
まず、前提として MediaConvert の基本的な料金体系をおさらいしておきます。
大きな区分として、MediaConvert には オンデマンド料金 と リザーブド料金 の 2種類が存在しています。リザーブド料金については今回のメイントピックとなるので、ここではオンデマンド料金についてのみ説明します。
MediaConvert の料金は、以下の式によって決定されます。
出力ビデオの長さ(分)x (料金レート + アドオン料金)
出力ビデオの長さ は MediaConvert によってトランスコードを行った結果出力されるビデオファイルの長さです。あくまで「出力ビデオの長さ」ですので、10分のファイルを入力として利用し、1分の動画を出力する場合は 1分の課金になるということですね。また、最小の課金対象は 10秒となっています。
続いて、料金レート は MediaConvert で実施するトランスコードに設定されたパラメータに基づいて決定される 1分あたりの料金です。リージョン x コーデック x 解像度 x フレームレート の組み合わせと、特定機能の利用有無によって ベーシック階層 もしくは プロフェッショナル階層 に分類され、最終的な料金レートが決定されます。
例えば、東京リージョン x AVC コーデック x HD 画質 x 30 fps 以下 x プロフェッショナル階層に該当する機能の利用無し の場合は 0.017USD/分 という料金レートに決定されます。
最後に、アドオン料金 は特定の機能を利用する際に上記料金レートとは別で発生する料金になります。機能の一例としては、ドルビーオーディオや音量正規化、透かし処理などが該当します。通常発生しない料金になりますが、こういった料金も存在する事は把握しておきましょう。
簡単ですが、MediaConvert の料金体系をおさらいしました。オンデマンド料金の例 などを見るとより具体的に料金体系がイメージできるかと思いますので、是非参照ください。
ジョブとキュー
続いて、MediaConvert のリザーブド料金を理解するためには MediaConvert の ジョブ と キュー についても概要を記載したいと思います。
まず、ジョブ は MediaConvert が実施するトランスコードの単位であり、変換条件や入出力ファイルの指定など、実施する変換処理の内容も保持しています。ユーザはジョブを作成する事で、MediaConvert はジョブの内容にしたがって変換処理を実行します。
上記図では、ジョブが MediaConvert に渡されて実行されるような見え方になっていますが、実際は MediaConvert 内の キュー というものにジョブが渡され、処理される形になります。
一方で、キューはジョブを処理できる能力に限界があります。実際の性能はさておき、今回は説明のために 1つのキューで同時に 2つのジョブを処理できるものと仮定します。この時、2つのジョブがキューで処理中の状態で 3つ目のジョブがリクエストされた場合、キューにはジョブを処理できるリソースが残っていないため 3つ目のジョブは待機状態となります(公式ドキュメントでは「処理しないキューにジョブを保持」とあるため、待機用のキューが別に存在するようなイメージだと思います)。処理中のいずれかのジョブが完了し、ジョブを処理できるリソースに空きが出来ると待機状態のジョブがキューで処理される様な形になっています。
また、キューはデフォルトで 1つのみとなっていますが、最大 10個まで増やすことが可能です。同時に大量の動画処理が必要となるワークロードなどでは、キューを増やすことによって MediaConvert の処理の並列度を向上させる事が可能です。キュー自体には料金は発生しません。
MediaConvert におけるリザーブド料金
前置きが長くなりましたが、いよいよ本題である MediaConvert のリザーブド料金について記載していきます。公式の料金ページを見てみると、以下の説明が確認できます。
リザーブド料金: 最短 12 か月契約と定額の月額料金で、1 つ以上のリザーブドトランスコードスロットを購入していただけます
「???」となりませんか?
最短で 12 ヶ月契約なのはなんとなく理解できますが、リザーブドトランスコードスロット という今まで出てきていない単語が出現してきました。順をおって説明しますので、一旦上の文章は深く考えなくて OK です。
まず前提として、MediaConvert における キューは 2種類存在 し、1つが通常のオンデマンドキュー、もうひとつが リザーブド料金を契約した際に利用可能となるリザーブドキュー です。つまり、MediaConvert のリザーブド料金 = リザーブドキューを購入し利用可能とするオプション とイメージしても良いかもしれません。また、リザーブドキューはあくまでキューの 1つですので、オンデマンドキューと併用する事も可能です。オンデマンドキューと違い、リザーブドキューで処理したジョブに対する課金は発生しません。
ここで思い出したいのが、キューがジョブを処理できる性能には上限があるという事です。先ほどは、同時に 2つまでしかジョブを処理できないキューを例として挙げていました。
それでは、リザーブドキューの性能はどうなっているのでしょうか?答えとしては、「リザーブドキューに割り当てる処理性能は指定して購入する必要がある」 となります。また、ここでいう "処理性能" を示す単語が先ほど出てきた "リザーブドトランスコードスロット"(以下 RTS) となります。ユーザはリザーブドキューで処理をさせたいワークロードに応じて RTS の個数を指定し、購入します。
実際の購入画面には必要な RTS の個数が算出できるツールが用意されていますので、それぞれ必要な情報を入力すると、購入するべき RTS の数がわかります。例えば、「1日あたり 3本の動画を変換完了する必要がある」というワークロードを想定すると、それぞれ以下のパラメータをツールに入力します。
- 所要時間 ... 想定するワークロードの時間的な区切り。今回は「1日あたり」としているので "24時間 0分" を指定する。
- ジョブの数 ... 「所要時間」で指定した時間内でいくつのジョブを実行するか。今回は "3" となる。
- 1つのジョブを実行する時間 ... 該当するジョブ 1つに対し、MediaConvert で処理した際に要する時間。今回は "1時間" と仮定します。
該当するジョブが MediaConvert でどのくらい時間が必要となるかについては、リザーブドキューで実行予定のジョブをオンデマンドで作成し、「ジョブ管理」で リザーブドキューのシミュレート を有効化した上でジョブを実行する事で、リザーブドキューで処理した際の時間を確認する事ができます。(参考 : AWS ElementalMediaConvertで予約済みキューを作成する-MediaConvert)
上記情報を RTS 計算ツールに入力すると、必要な RTS の個数が表示されます。今回は 1つ購入すれば良い様です。また、MediaConvert のリザーブド料金は、この RTS を購入する個数に比例 します。東京リージョンであれば RTS ひとつあたり 600USD となっているため、2つ必要なら 1200USD、といった形になって来ます。この仕組みをあまり理解しないまま料金ページを見てしまうと、「600USD 払えばリザーブドが使えるのか!」と勘違いしてしまう可能性もあるかもしれません。
ここまでの情報を元に、MediaConvert 料金についてまとめると以下になります。
- MediaConvert のリザーブド料金は、リザーブドキューを利用可能にするイメージ
- リザーブドキューで処理したジョブに対する課金は発生しない
- リザーブドキューはあくまでキューのひとつであるため、オンデマンドキューと併用可能
- リザーブドキューの処理性能は購入時に指定した RTS(リザーブドトランスコードスロット) に依存する
- 必要な RTS の数は計算ツールを利用する事で見積もり可能
- 料金ページに記載されているリザーブド料金は RTS ひとつあたりの料金であるため、指定する RTS の数に比例した金額が最終的に発生するリザーブド料金となる
リザーブド料金における機能の制限
リザーブドキューでは以下の機能が利用できませんので、該当するものがないかは事前に確認しましょう。
- Dolby Vision
- 高速トランスコーディング
- 8K 解像度処理
また、以下の機能はリザーブドキューであっても別途料金が発生します。
- ドルビーオーディオ
- 音量正規化
ジョブホッピング機能を利用したリザーブドキューとオンデマンドキューの併用戦略
コストメリットの観点から、リザーブドキューを購入した際はワークロード内で発生するジョブをなるべくリザーブドキューで処理させたいものです。
一方で、事前に RTS を見積もって購入しているとはいえ、スパイク的にジョブが増加してしまうとリザーブドキューだけではジョブを処理しきれず待機ジョブが増加してしまうケースも想定されます。
その場合、MediaConvert にはジョブホッピングという、事前に設定した条件にしたがってジョブを異なるキューに移動させる機能があったりします。こちらを活用し、一部の重いジョブだけオンデマンドで処理させるなどうまくリザーブドキューとオンデマンドキューを併用する運用も可能になっています。
ジョブホッピング機能についての詳細は以下ブログを参照ください。
おわりに
MediaConvert のリザーブド料金について整理し、まとめて見ました。
改めて、ポイントは以下となりますです。複数存在する MediaServices の中でも使われる機会が多い MediaConvert ですので、リザーブド料金についてもしっかりと理解しておきたいところです。
- MediaConvert のリザーブド料金は、リザーブドキューを利用可能にするイメージ
- リザーブドキューで処理したジョブに対する課金は発生しない
- リザーブドキューはあくまでキューのひとつであるため、オンデマンドキューと併用可能
- ジョブホッピング機能などを利用する事で、リザーブドキューから溢れたジョブをオンデマンドキューで処理させる様な事も可能
- リザーブドキューの処理性能は購入時に指定した RTS(リザーブドトランスコードスロット) に依存する
- 必要な RTS の数は計算ツールを利用する事で見積もり可能
- 料金ページに記載されているリザーブド料金は RTS ひとつあたりの料金であるため、指定する RTS の数に比例した金額が最終的に発生するリザーブド料金となる
- リザーブドキューでは一部機能制限があるため注意が必要
以上、AWS 事業本部の大前でした。