3

ビデオエンコーディングを行うアプリケーションを作成しました。エンコードはパイプライン化されたプロセスです。最初にビデオをフェッチし、次にffmpegを使用してエンコードし、次にビデオを複数の部分に分割します。

この過程で、1GBのビデオが数GBの中間データに膨れ上がります。このサービスは、(RabbitMQを介して)異なるプログラムがパイプラインの各部分を処理できるように作成されています。もちろん、プロセスをこのように実行する必要はないので、私の質問になります。

アプリを「ライブ」にするためのストレージ要件を検討しています。クラウドプロバイダーでは、ストレージのGBごとと転送のGBごとに支払います。ここまでは順調ですね。

この1GBのビデオBLOBをあるクラウドVMインスタンスから別のインスタンスに、またはVMから共通ストレージサービスに転送する場合、それは帯域幅にカウントされますか?(この回答は、ホストの利用規約によって変わると思います。)

1つのVMでプロセス全体を実行してから、その複数のインスタンスを起動する方が理にかなっていますか?1つのVMがパイプラインで単一のタスクのみを実行するのとは対照的に?コストの最適化の観点からこの質問をします(ストレージコストが最も低く、VMの起動にかかるコストが最も低くなります。エンコードはバッチで行われるため、リクエストをすばやくプッシュすることについてはあまり心配していません)。

このシナリオは、データベースなどに効率的に保存できない大量のバイナリデータがあるという点で少しユニークです。どちらも同様の質問を提起します。経験のある人にとって、DB VMがその結果をWebアプリに送り返すとき、その中間転送に対して課金されますか?

私も正しい質問をしていますか?ホスティングプロバイダーに電話して自分で価格設定について尋ねる以外に、読むべきガイドはありますか?

4

1 に答える 1

1

あなたのシナリオの独自性は、かなり興味深いものになっていると思います!

プロバイダーと場所に依存する、クラウド内の仮想マシン間のデータ転送について。たとえば、EC2 のAmazon は、同じ場所にある Web サービス間の転送に対してデータを請求しませ。そのため、「大量のバイナリ データ」の最初のアップロード/ダウンロードまでの転送コストを最小限に抑えることができます。

では、タスクを効率的に並列化できますか? はいの場合は、ジョブをより迅速に完了するために、同時に多数の VM をスピンアップすることを検討してください。時間 = お金の場合、これは確かに費用対効果が高いですが、変更を迅速にプッシュすることにあまり関心がないと述べているため、私はあなたのケースについては気が進まない. 要求を処理し、バッチを調整するメインの VM と、作業負荷の一部を処理する他の VM の起動とシャットダウンを引き続き行うことができます。ユーティリティのように、VM が実行されている限り料金が発生します。

あなたのシナリオの良い点は、この種のバッチ タスクがクラウド コンピューティングに最適であり、価格モデルが非常に単純であることです。このようなタスクはリソース (CPU / RAM) を集中的に使用するため、クラウドが提供できる事実上無制限のリソースによって、その「貪欲さ」を満たすことができます。

于 2011-05-03T17:02:25.877 に答える