2017-04-14 16 views
-5

現在私のアプリではまだproductionodではないdynamodbを使用しています。私は別のビューで、以下の項目を示しアプリDynamoDB vs mongodbとRDS SQL DBのコスト比較

1) show list of orders posted by other users from last 3 days to the user 
2) show list of orders that user created 
3) show list of orders that user have submitted bids 

は、タスクとその上の他のユーザーの入札のためのユーザー・ポスト順序以外のeBayと考えています。また、代わりにイーベイで関数を検索するのでは、我々は

level1 - list of states that have available orders from last 3 days, 
level2- list of cities in state that have available orders from last 3 days, 
level3- all orders from last 3 days in the city 

すべての注文を表示し、整理するための構造のようなツリーを持っている今、私のアーキテクチャは、読み込みの多くを行うと、操作上実行するために書いて、それは非常に高価です。私たちはアプリをテストしているだけで、3人のユーザーと100の注文が作成されており、毎日2ドルの費用がかかります。何千人ものユーザーと何千ものオーダーの生産がある場合、このコストは非常に高くなります。操作を行うために、私は完全な注文のコレクションをフルスキャンしています。

このdynamodbは高価なので、私はmongodbに切り替えることを考えています。私はmongodbをローカルで実行するだけでmongodbの経験がありますが、AWSにはそれを配備していないか、あるいはプロダクションの経験がありません。しかし、私はコストを削減することを喜んで/学んでいます。また、AWSが新しくなりました。私は読み書きに基づいて請求されないので、mongodbは安いオプションになると思っています。

もう1つのオプションはRDS SQL DBですが、そのためにはデータベースを再設計して多くの変更を行う必要があります。

私のケースでは、最も安く、最良の選択肢となるものを提案してください。ありがとうございました。

+0

あなたの質問を改訂し、詳細をお知らせください。それは、プロビジョニングとスループットの結果のような情報なしでダイナモDBが高価だと言うのは無意味です。 – mootmoot

+0

この写真には何かがありません。 DynamoDBの無料層は[大量の寛大な](https://aws.amazon.com/dynamodb/pricing/)ですが、1日2ドルを請求することはできません。 「0.25ドル/日($ 7.50 /月)未満の場合、1日あたり100万回の書き込みと読み取り、100万回のストリームの読み取り要求、1GBのデータ保存を実行するアプリケーションをサポートできます。 – ffxsam

答えて

2

DynamoDBが安いです。あなたはMongoDB Atlasクラウド・オファリングを使ってみることもできます。これは安価でも同等ですが、それほど安くないかもしれません。あなたは、リンゴとオレンジを比較しようとしています。

しかし、デザイン上の問題のように見えます。あなたは何とか "最近3日間"に基づいて定期的にいくつかのクエリを実行しているようですが、あまり頻繁にこれらのクエリを実行し、ElastiCacheを使用してそれらの結果をキャッシュしてください。

更新日: フルコレクションスキャンを行っている場合は、何か別のものもあります。あなたはこれらを避ける必要があります。まだ実行していない場合は、グローバルセカンダリインデックスを使用してください。既に5つのセカンダリを使い切っている場合は、インデックスデータのみのコレクションを追加することを検討できます。

MongoDBに関しては、2つ以上のフィールド(都市​​、州、日付など)をカバーする索引を作成することができるため、索引を作成する方が柔軟性があり、5つ以上の索引を作成することができます。シナリオ。さらに、いくつかのクエリに対して強力な集約フレームワークを使用することができます。 ElastiCache(redis/memcached)でこれらのクエリをキャッシュすることを検討する必要があります。

+0

ダイナモの価格は主観的です。一部の管理者は、消費されたプロビジョニングI/Oをチェックするのではなく、プロビジョニングされたプロビジョニングを行い、それに合わせて調整します。 – mootmoot

+0

ElastiCacheを使用してクエリ結果をキャッシュすることを推奨していません。それは24時間365日、さらには 't2を実行するサーバーです。小額の場合は24ドル/月がかかります。クエリー結果をキャッシュするコスト効率のよい方法のようには見えません。私はElastiCacheが高速データ用に意図されていたという印象を受けました(例えば、毎秒数万回の読み書き操作を実行する)。 – ffxsam

+0

@ffxsamスケールアウトの問題です。あなたが1000ドル/月を支払わなければならない場合、多くのユーザーのために同じ結果を返すクエリを実行すると、2つの小さなelasticacheインスタンスを使用して結果をキャッシュすることによって、おそらく1000〜300ドルを減らすことができます。コーディングとメンテナンスを除いて、おそらくElasticacheに60 $を支払うことで700 $を節約することができます。 –