0

私はこれらのデータベースで一束を読んできましたが、まだ何を使うべきか分かりません。Indieゲームバックエンド用のAurora対Redshift対DynamoDB?

開発中のゲームにバックエンドが必要です。このバックエンドは、ユーザーアカウント、ユーザーが持つアイテム、ユーザーのスコアを格納する必要があります。

ゲームの開始時に、ユーザーはアイテムのデータベースを照会します。彼らは新しい項目を取得すると、データベース上の自分のアカウントにそれを追加します。アイテムは大きなJSONブロブとして保存されます。

このデータベースは頻繁にアクセスされません。それは実際には1人のエントリしか必要としないので、大量のデータを格納する必要はありません。しかし、それは数百万に拡大することができるはずです。

データベースをクエリして、どのユーザーが特定のカテゴリまたはチームに属しているかを判断する必要があります。

このデータを安く適切に適切な方法で保存するのが安いのが理想的です。

これにはどのような方法が最適ですか?

答えて

3

Redshiftはデータウェアハウスであり、一般にOLAP(分析)プロセスに使用されます。分析DBはトランザクション処理には遅すぎるため、主キーの外部キー制約に従わないのが一般的です。 オーロラおよびDynamoDBは、OLTP(トランザクション)データベースです。 1つのJSONエントリにすべてのデータを保存する場合は、DynamoDBを使用する方が良いでしょうが、修正スキーマを持つRDBMSのようにAuroraを使用することをお勧めしますが、ユーザーごとに複数のエントリを保持する必要があります別のテーブルを取得しても単一の結合クエリになります。

0

Redshiftはあなたのニーズを満たしません。大量のデータを並行してスキャンするように設計されたOLAPデータベースです。非常に基本的な例として、ライブデータベースをRedshiftにエクスポートし、それを照会して、多額の金額や重複アイテムがあるプレイヤーがいるかどうかを確認し、そうした方法で詐欺師を探すことができます。単一のレコードを照会し更新するのはひどいです。

オーロラとDynamoDBは両方ともOLTPデータベースであり、あなたの頭に入れたようにタスクを処理するように設計されています。個人的な経験から、オーロラのスケールアップには問題はないと言えます。私は、数十億レコードのテーブルに対して〜2500 QPSを一貫して提供するミッドレンジのオーロラ・インスタンスを使用しています。もしあれば、DynamoDBはAuroraよりも同等の価格で拡張性があるので、スケーリングについては心配しません。 :)

説明しているシンプルなスキーマの場合、AuroraまたはDynamoDBのいずれかを選択することは非常に説得力のある理由ではありません。 AWSはプレビューにserverless Auroraを持っています。これは、現在利用可能な場合、軽量使用のための最も低コストの選択肢になります。おそらく、今のところオーロラでt2.smallを使用し、可能であればサーバーレスに移行しますか?しかし、DynamoDBもローエンドではかなり安いです。

関連する問題