2012-01-20 4 views
1

私はWebベースのフォトギャラリーを構築しています。 Amazon EC2を使用して、負荷が高いときにサムネイル生成のためにマシンを「スピンアップ」し、負荷が低いときにそれらをスピンダウンさせたいと考えています。新しいEC2インスタンスがスピンアップするとAmazon EC2のサムネイル生成のキューイングを処理する良い方法は何ですか?

image_id (32-char string) 
thumbs_generated (true or false) 
currently_generating (true or false) 
s3_key (32-char string) 

、それはに接続します:

私は何を考えていると、以下のような分野で、そのサムネイルが生成されている必要があり、画像のデータベーステーブルを持つことですthumbs_generatedとcurrently_generatingの両方がfalseに設定されているイメージを取得します。イメージが取得されると、currently_generatingはtrueに設定されます。世代が完了すると、thumbs_generatedはtrueに設定され、スクリプトは新しいイメージで繰り返されます。

これは良い戦略ですか?経験から覚えておくべき改善や事柄

これは、Amazonのシンプルなメッセージングサービスの良いユースケースですか、それとも必須ではありませんか?

ありがとうございます。

答えて

1

Amazon SQS(Simple Queue Service)を使用すると、そうすることができます。

サムネイルの生成を2つに分割する必要があります。サムネイルの生成を2つに分割する必要があります.1つはサムを生成するイメージ(イメージが存在する場所も含む)と異なるマシンで実行されるワーカープロセスです。キューをポーリングし、サムを生成し、結果を報告するために必要なメカニズム(追加のキューまたはその他の同期メカニズム)を報告します。

このように、ワーカープロセスが別のマシンにある場合、キューのサイズに基づいて自動スケーリングルールを設定できます。

同様のことをした人については、this postをご覧ください。

関連する問題