0

現在、アプリケーションのスキームを作成していますが、私の考えが正しいかどうか疑問に思っています

例:ECサイト

DynamoDb では、製品 (product_id、S3 へのメタデータ リンク) を配置します。

S3、検索データ形式 (SDF/JSON) の保存に使用します (製品名、製品説明、価格など)

Amazon CloudSearch は、S3 でドキュメントのインデックスを作成し、それらを検索できるようにするために使用されます。Redis は結果をキャッシュするために使用されます

私の計画は正しいですか?s3 は優れた「データベース」になることができますか?

DynamoDb はここでも必要ですか?

4

3 に答える 3

6

S3 が製品の記録のソースに過ぎず、大量の読み取り/書き込みが予想されない場合、動作する可能性はありますが、実際のデータベースを使用するよりもはるかに遅くなることを認識しておく必要があります。1〜2倍遅いだけでなく、何倍も遅くなります。Postgres に保存されているリアルタイム データの監査データを保存するために S3 を使用しています。監査レコードを取得する必要がある取得時間は 50 ミリ秒を超えています。一度に複数のレコードを操作する必要がある場合、通常、このタイプの速度は受け入れられません。

とにかくdynamoDBを使用する場合、s3に保存するものを保存するためにそれを使用しないのはなぜですか? シンプルに保つというコンセプトを守るために、次のスタックを使用します。

  • dynamoDB がレコードのシステムになり、いくつかの検索を行う
  • dynamodb が提供できるものよりも柔軟な検索のための Cloudsearch
  • 静的ファイル (製品画像など) 用の S3

繰り返しになりますが、単純にするために、既に dynamoDB を使用していて、Redis の特殊なデータ型を使用する予定がない場合は、キャッシュに Redis をスキップしてください。つまり、キャッシュは文字列へのキーにすぎません。他のデータ型を利用する予定がある場合、またはアプリの近くにキャッシュを置きたい場合 - つまり、Web サーバーで Redis を使用する予定です。

于 2012-09-04T18:08:08.173 に答える
0

アプリケーションを設計するときは、最初からできるだけ単純にする必要があります。それは常に時間とともに悪化します:)

S3良いDBではありません。このために設計されておらず、遅すぎます。ファイルストレージ専用です。に固執したい場合はDynamoDB、メタデータを含むすべての製品情報をその中に入れる必要があります。

CloudSearch良いオプションかもしれません。の上に独自の「インデックス」を作成することもできますDynamoDBより多くの設計とプログラミングが必要ですが、検討する価値があるかもしれません。この問題に関する優れたブログ投稿へのリンクは次のとおりです:http://blog.coredumped.org/2012/01/amazon-dynamodb.html

それで、

  • DynamoDBも必要ですか:はい、またはRDS、Mongo、...必要に応じて実際のDB。
  • S3は良いDBですか:私はそうは思いません。
于 2012-09-04T12:51:26.150 に答える