Vraiment DynamoDB et MySQL sont comme comparer des pommes et des oranges. DynamoDB est une couche de stockage NoSQL tandis que MySQL est utilisé pour le stockage relationnel. Vous devriez choisir ce que vous allez utiliser en fonction des besoins réels de votre application. En fait, certaines applications pourraient bénéficier de l'utilisation des deux.
Par exemple, si vous stockez des données qui ne se prêtent pas bien à un schéma relationnel (structures arborescentes, représentations JSON sans schéma, etc.) qui peuvent être cherchées contre une seule clé ou une combinaison clé/plage, alors DynamoDB (ou un autre magasin NoSQL) serait probablement le meilleur choix.
Si vous avez un schéma bien défini pour vos données qui peut s'intégrer facilement 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 d'utiliser DynamoDB en tant que magasin NoSQL est que vous obtenez des débits de lecture/écriture garantis au niveau requis sans avoir à vous soucier de la gestion d'un magasin de données en cluster. Donc, 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 plus vraiment vous soucier de l'infrastructure sous-jacente.
RDS a en grande partie les mêmes avantages de ne pas avoir à se soucier de l'infrastructure elle-même, cependant si vous finissez par avoir besoin d'un nombre important d'écritures au point où la plus grande taille d'instance ne pourra plus suivre, vous êtes un peu laissé sans options (vous pouvez mettre à l'échelle horizontalement pour les lectures en utilisant des réplicas de lecture).
Note mise à jour: DynamoDb prend désormais en charge les index secondaires globaux, vous avez donc maintenant la possibilité d'effectuer des recherches optimisées sur des champs de données autres que la clé de hachage ou la combinaison clé de hachage et de plage.