ビデオエンコーディングを行うアプリケーションを作成しました。エンコードはパイプライン化されたプロセスです。最初にビデオをフェッチし、次にffmpegを使用してエンコードし、次にビデオを複数の部分に分割します。
この過程で、1GBのビデオが数GBの中間データに膨れ上がります。このサービスは、(RabbitMQを介して)異なるプログラムがパイプラインの各部分を処理できるように作成されています。もちろん、プロセスをこのように実行する必要はないので、私の質問になります。
アプリを「ライブ」にするためのストレージ要件を検討しています。クラウドプロバイダーでは、ストレージのGBごとと転送のGBごとに支払います。ここまでは順調ですね。
この1GBのビデオBLOBをあるクラウドVMインスタンスから別のインスタンスに、またはVMから共通ストレージサービスに転送する場合、それは帯域幅にカウントされますか?(この回答は、ホストの利用規約によって変わると思います。)
1つのVMでプロセス全体を実行してから、その複数のインスタンスを起動する方が理にかなっていますか?1つのVMがパイプラインで単一のタスクのみを実行するのとは対照的に?コストの最適化の観点からこの質問をします(ストレージコストが最も低く、VMの起動にかかるコストが最も低くなります。エンコードはバッチで行われるため、リクエストをすばやくプッシュすることについてはあまり心配していません)。
このシナリオは、データベースなどに効率的に保存できない大量のバイナリデータがあるという点で少しユニークです。どちらも同様の質問を提起します。経験のある人にとって、DB VMがその結果をWebアプリに送り返すとき、その中間転送に対して課金されますか?
私も正しい質問をしていますか?ホスティングプロバイダーに電話して自分で価格設定について尋ねる以外に、読むべきガイドはありますか?