本当にDynamoDBとMySQLはリンゴとオレンジです。 DynamoDBはNoSQLストレージレイヤーですが、MySQLはリレーショナルストレージに使用されます。アプリケーションの実際のニーズに基づいて、何を使用するかを選択する必要があります。実際、一部のアプリケーションは、両方を使用することで十分に機能する可能性があります。
たとえば、単一のキーまたはキーと範囲の組み合わせに対して検索できるリレーショナルスキーマ(ツリー構造、スキーマのないJSON表現など)に適さないデータを保存している場合は、DynamoDB(または他のNoSQLストア)が最善の策である可能性があります。
リレーショナル構造にうまく適合するデータの明確に定義されたスキーマがあり、さまざまな方法でデータをクエリする柔軟性が必要な場合(もちろん、必要に応じてインデックスを追加する)、RDSの方が優れたソリューションになる可能性があります。 。
DynamoDBをNoSQLストアとして使用する主な利点は、クラスター化されたデータストアの管理について心配することなく、必要なレベルで読み取り/書き込みスループットが保証されることです。そのため、アプリケーションで1秒あたり1000回の読み取り/書き込みが必要な場合は、DynamoDBテーブルをそのレベルのスループットにプロビジョニングするだけで、基盤となるインフラストラクチャについて心配する必要はありません。
RDSには、インフラストラクチャ自体について心配する必要がないという同じ利点がほとんどありますが、最大のインスタンスサイズが維持できなくなるまで大量の書き込みを行う必要が生じた場合は、オプション(読み取りレプリカを使用して読み取りを水平方向にスケーリングできます)。
更新された注:DynamoDbはグローバルセカンダリインデックスをサポートするようになったため、ハッシュまたはハッシュキーと範囲キーの組み合わせ以外のデータフィールドで最適化されたルックアップを実行できるようになりました。