AWS MySQL RDS と AWS DynamoDB [終了] 質問する

AWS MySQL RDS と AWS DynamoDB [終了] 質問する

私はかなり長い間 MySQL を使用しており、その構造や SQL クエリなどに慣れています。

現在、AWS で新しいシステムを構築しており、DynamoDB を検討しています。現時点では、それについて少ししか知りません。

どちらかが他方より優れているのでしょうか?

DynamoDB の利点は何ですか?

MySQL クエリなどからこのフラット スタイルの DB への移行はどのようなものですか?

ベストアンサー1

実際のところ、DynamoDB と MySQL はまったく別物です。DynamoDB は NoSQL ストレージ レイヤーですが、MySQL はリレーショナル ストレージに使用されます。アプリケーションの実際のニーズに基づいて、どちらを使用するかを選択する必要があります。実際、一部のアプリケーションでは、両方を使用することで十分に機能する場合があります。

たとえば、単一のキーまたはキー/範囲の組み合わせに対して検索できるリレーショナル スキーマ (ツリー構造、スキーマレス JSON 表現など) に適さないデータを保存している場合は、DynamoDB (またはその他の NoSQL ストア) が最適な選択肢になる可能性があります。

リレーショナル構造に適合する明確に定義されたデータ スキーマがあり、さまざまな方法でデータをクエリする柔軟性 (もちろん必要に応じてインデックスを追加) が必要な場合は、RDS がより適切なソリューションになる可能性があります。

DynamoDB を NoSQL ストアとして使用する主な利点は、クラスター化されたデータ ストアの管理を気にすることなく、必要なレベルで読み取り/書き込みスループットが保証されることです。したがって、アプリケーションで 1 秒あたり 1,000 回の読み取り/書き込みが必要な場合、そのレベルのスループットに合わせて DynamoDB テーブルをプロビジョニングするだけで、基盤となるインフラストラクチャについて心配する必要がなくなります。

RDS には、インフラストラクチャ自体について心配する必要がないという同様の利点がほとんどありますが、最大インスタンス サイズでも対応できなくなるほど大量の書き込みを行う必要が生じた場合、選択肢がほとんどなくなります (読み取りレプリカを使用して読み取りを水平方向に拡張できます)。

更新された注記: DynamoDb は現在、グローバルセカンダリインデックスをサポートしているため、ハッシュまたはハッシュと範囲キーの組み合わせ以外のデータフィールドに対して最適化されたルックアップを実行できるようになりました。

おすすめ記事