ユーザーがビデオや画像をサーバーにアップロードし、FFMPEGでトランスコードしてAmazon S3に保存できるようにするアプリケーションを開発する場合、人々は何を最も重要だと思いますか?私にはいくつかの選択肢があります。
1)ファイルのアップロードを処理する同じサーバーにFFMPEGをインストールし、ビデオがアップロードされてEC2インスタンスに保存されたら、FFMPEGを呼び出して変換し、完了したら、ファイルをS3バケットに書き込んで元のファイルを破棄します。
これはどの程度スケーラブルですか?多くのユーザーが同時にアップロードするとどうなりますか?複数のプロセスを一度に管理するにはどうすればよいですか?別のインスタンスを開始してこの構成の負荷を分散するタイミングを知るにはどうすればよいですか?
2)アップロード(データベースの更新、ファイルの名前変更など)を処理するためのサーバーとトランスコーディングを行うためのサーバーを1つずつ用意します。繰り返しますが、複数のプロセスを管理するための最良の方法は何ですか?これについてはAmazonSQSを検討する必要がありますか?トランスコーディングサーバーにアップロードサーバーからファイルを取得するように指示できますか、それともファイルをトランスコーディングサーバーにコピーする必要がありますか?すべてのファイルをS3に保存すれば、SQSはそこから読み取ることができます。トラフィックをできるだけ少なくしようとしています。
アップロードサーバーとしてLinuxボックスを実行していて、FFMPEGを実行しています。
このような構成を設定するためのベストプラクティスに関するアドバイスをいただければ幸いです。どうもありがとう