私は、高解像度画像(数百万)の大きなディレクトリをPythonを使ってサムネイルに変換しようとしています。私はS3の各画像の場所を格納するDynamoDBテーブルを持っています。AmazonのDynamoDBで分散キューを作成する
これらの画像をすべて1つのEC2インスタンスで処理するのではなく(数週間かかる)、複数のインスタンスを使用して分散アプリケーションを作成したいと思います。
ノードがデータベースからイメージを「チェックアウト」し、サイズを変更し、生成されたサムネイルの新しい次元でデータベースを更新できるキューを作成するのに、どのようなテクニックを使用できますか?
特に、私は原子性と並行性について心配しています.2ノードが同時にDynamoDBで同じジョブをチェックアウトするのを防ぐにはどうすればいいですか?
DynamoDBは間違ったツールです。このプロセスは、SQSを使用すると非常に簡単です。 1。DynamoDB = LargeImageLocations> SQS; SQS =プロセス> n * EC2 = UpdateLocation> DynamoDB –
「SQSには、複数のインスタンスが同じメッセージを読み取るのを防ぐための仕組みが組み込まれています」という誤解を招くことがあります。 「一回のみ」の保証はありません。私はDynamoDBを使ってロックする方法を説明していますが、上記のステートメントを削除する方がいいと思います。 –
SQSはHIPAAに準拠していないので、特定の情報をSQSメッセージ自体に保存することが許可されていない場合、nstehrが示唆するものは非常に実行可能な解決策である可能性があります。 –