ビジネスアプリケーションをクラウドに移行する必要があるため、コストは私の最大の懸念事項の1つです。
DynamoDBは良いオプションのようですが、データの大部分はリレーショナルデータベースからNoSQLに移行できます。 AWS DynamoDBはコスト効率が高いと言われています。それは実際にはどういう意味ですか?
このアプリケーションは、1日に数回、約10万行を返すクエリを実行します。書き込まれた行の量は同じであると想定できます。現在、データベースはかなり低いハードウェアでホストされており、_t2.medium
_インスタンスと比較できます。 PostgreSQLを使用したオンデマンド(これは最も費用対効果の高い方法ではありません)データベースインスタンスのコストは、月あたり約55ドルです。クエリの実行に約_10 sec
_がかかるたび。
電卓 の内容を見てみましょう。 DynamoDBの請求はスループットに依存します。 _10 sec
_は重要ではありません。1分待つことができるとします。クエリは100k行を返します。つまり、_1667 reads/sec
_のピークスループット(アイテムが1 kb未満であると想定)、および同じ書き込みスループットが必要です。電卓は言う:Estimate of your Monthly Bill ($ 859.39)
。
RDSよりも15倍高価です(それでも6倍遅くなります)。
それを間違った方法で計算していますか?私の範囲外のものはありますか?あるいは、おそらく、DynamoDBはこの種のタスクには適していませんか?
DynamoDBは正しい選択ではないと思います。あなたが言ったように:
DynamoDBの請求はスループットに依存します。 10秒は重要ではありません。たとえば、1分間待つことができるとします。
DynamoDBは、高スループット、低遅延のために構築されています。したがって、このデータベースのコア機能は、1桁のミリ秒以内に回答を提供することです。すでにわかっているように、毎秒支払うことになります。つまり、(スケールアップとダウンの機能内で)ほぼ同じ量の読み取り/書き込みが必要ない場合、DynamoDBはクエリに料金を支払うのでコストがかかります。必要ありません。
このアプリケーションは、1日に数回、約10万行を返すクエリを実行します。
したがって、AWS RDSはあなたのケースに適しているようです。
ユースケースはDynamoDBを無料で使用して実装できます。
AWS無料利用枠の一部として、25GBのストレージ、25RCU、25WCUを一年中無料で利用できます。アプリを設計してデータスループットをこれらの制限内に保つだけで、請求額は$ 0.00になります。
スループットを調整し、バッチで作業します。 1秒あたり25回の1Kb書き込みを無料で取得できるので、アプリに1秒あたり25アイテムの書き込みを教える-コストはかかりません。