私は特定のニッチに合わせた画像ホスティングウェブサイトに取り組んでいます。ウェブサイトはDjangoで作られています。私は現在、Linodeでそれを実行することを計画しています。
ここまでは順調ですね。問題は次のとおりです。高解像度の画像に対して非常にCPUを集中的に使用するタスクを実行する必要があります。 Linodeの4つのXeonCPUで最大15分かかる可能性のある科学的グレードの計算について話しています。
EC2がこのように機能するかどうかはわかりませんが、次のシナリオはベルを鳴らすものですか?
明らかに、私はこれが機能する方法に多くのギャップがあります。誰かが私がそれらを埋めるのを手伝ってくれませんか?
[〜#〜] edit [〜#〜]:RabbitMQをメッセージディスパッチャとして使用して、タスクにセロリを使用していることを忘れました。 Webサーバーでセロリの作成タスクを実行することは可能かと思いますが、実際にはオンデマンドで作成されたEC2インスタンスで実行します。理想的には、これにより、関係者間の通信プロトコルも処理されます(Webサーバー側をピクルスにするため)。
はい、EC2はあなたがやろうとしていることにぴったりのようです。正確に行う方法に関しては、celeryとRabbitMQに精通していませんが、必要に応じてceleryのジョブを処理するコードを作成するだけだと思います。これには、Webサーバーから(WebサービスAPIを使用してデータベースから)ジョブを実行し、結果を送り返します(ここでも、定義したWebサービスAPIを介して)。
画像処理を行っている場合は、行っているバックエンド処理が MapReduce の問題につながる可能性があるかどうかを確認することをお勧めします。完全なVMを提供しないため、完全なEC2インスタンスよりも1時間あたりのコストが低くなります($ 0.015 /時間対$ 0.085 /時間)。 Hadoop Framework を実行します。
Hadoopの使用方法を説明するオンラインチュートリアルはたくさんあります これはYahooのチュートリアルです (ウィキペディアによると世界最大のHadoopユーザー)Hadoopの動作の基本についても説明しています。
もちろん、これはすべて、処理コードをCeleryからHadoopに移植できることを条件としています。