Vraiment DynamoDB et MySQL sont des pommes et des oranges. DynamoDB est une couche de stockage NoSQL tandis que MySQL est utilisé pour le stockage relationnel. Vous devez choisir les éléments à utiliser en fonction des besoins réels de votre application. En fait, certaines applications pourraient être bien servies en utilisant les deux.
Si, par exemple, vous stockez des données qui ne se prêtent pas bien à un schéma relationnel (arborescence, représentations JSON sans schéma, etc.) qui peuvent être comparées à une seule clé ou à une combinaison clé / plage, alors DynamoDB ( ou un autre magasin NoSQL) serait probablement votre meilleur pari.
Si vous avez un schéma bien défini pour vos données qui peut bien s'intégrer dans une structure relationnelle et que vous avez besoin de flexibilité pour interroger les données de différentes manières (en ajoutant des index si nécessaire bien sûr), alors RDS pourrait être une meilleure solution .
Le principal avantage de l'utilisation de DynamoDB en tant que magasin NoSQL est que vous obtenez un débit de lecture / écriture garanti quel que soit le niveau dont vous avez besoin sans avoir à vous soucier de la gestion d'un magasin de données en cluster. Ainsi, si votre application nécessite 1000 lectures / écritures par seconde, vous pouvez simplement provisionner votre table DynamoDB pour ce niveau de débit et ne pas vraiment avoir à vous soucier de l'infrastructure sous-jacente.
RDS a en grande partie le même avantage de ne pas avoir à vous soucier de l'infrastructure elle-même, mais si vous finissez par avoir besoin de faire un nombre important d'écritures au point où la plus grande taille d'instance ne suivra plus, vous êtes en quelque sorte laissé sans options (vous pouvez mettre à l'échelle horizontalement pour les lectures à l'aide de répliques en lecture).
Remarque mise à jour: DynamoDb prend désormais en charge l'indexation secondaire globale, vous avez donc maintenant la possibilité d'effectuer des recherches optimisées sur des champs de données autres que le hachage ou la combinaison de clés de hachage et de plage.