Que devez-vous prendre en compte lorsque vous choisissez entre MySQL et SimpleDB d'Amazon pour une application RoR?

StackOverflow https://stackoverflow.com/questions/163275

Question

Je commence tout juste à faire des recherches sur la faisabilité d'utiliser le service SimpleDB d'Amazon en tant que magasin de données pour l'application RoR que je prévois de créer. Nous allons utiliser EC2 pour le serveur Web et nous avions prévu d’utiliser également EC2 pour les serveurs MySQL. Mais maintenant, la question est: pourquoi ne pas utiliser SimpleDB?

L’application (en cas de succès) devra être très évolutive en termes de nombre d’utilisateurs pris en charge, devra maintenir une base de code simple et efficace et devra être fiable.

Je suis curieux de savoir ce qu'en pensent les communautés SO.

Était-ce utile?

La solution

La bibliothèque Ruby SimpleDB n’est pas aussi complète que ActiveRecord (l’adaptateur de base de données Rails par défaut). Par conséquent, bon nombre des fonctionnalités que vous utilisez ne seront pas disponibles.

Du côté positif, il est sans schéma, évolutif et fonctionne bien avec ec2.

Si vous envisagez d'effectuer une recherche en texte intégral dans votre application, SimpleDB n'est peut-être pas le meilleur choix. Utilisez plutôt AR + sphinx.

Autres conseils

Bien, étant donné que DB simple n’utilise pas SQL, ni même des tables, cela signifie que c’est une bête complètement différente de MySQL et d’autres choses basées sur SQL ( http://aws.amazon.com/simpledb/ ). Il n'y a pas de contraintes, de déclencheurs ou de jointures. Bonne chance.

Voici un moyen de le mettre en place: http://developer.amazonwebservices.com/connect/entry.jspa?externalID= 1242 (via http://rubyforge.org/projects/aws-sdb/ )

Je suppose que si vous n’avez jamais besoin d’interroger les données en dehors des rails, SimpleDB peut s’avérer OK. Mais comme il ne s'agit pas d'une base de données prise en charge de première classe, vous rencontrerez probablement des bogues difficiles à résoudre. Je ne voudrais pas exécuter une application rails de production dans un backend semi-bêta.

Pour moi, cela ressemble à: "Hé, il y a ces outils intéressants, je devrais aller construire un projet en les utilisant," plutôt que d'avoir réellement besoin d'utiliser ces outils spécifiques. Peut-être que je suis juste désagréable mais cela ressemble à un cas classique d'optimisation prématurée. Vous essayez d'utiliser un service externe qui coûte de l'argent pour une application qui n'est pas encore écrite et vous ne dites pas que vous avez un auditoire garanti, ou un audit qui va nécessairement évoluer à un niveau qui le garantit.

"L'application devra (en cas de succès) être très évolutive en termes de nombre d'utilisateurs pris en charge", ce qui décrit sérieusement la moitié de l'Internet. C'est le " en cas de succès " une partie qui est vraiment la question. Concentrez-vous simplement sur la création de l'application rapidement et facilement. La façon la plus simple de le faire est d’utiliser le ROR, qui est pour ainsi dire prêt à l’emploi. Associez-le à une base de données, utilisez ActiveRecord et obtenez quelque chose de construit et d’attirer les utilisateurs.

En fait, je vais aller plus loin et dire que EC2 est plutôt cher pour toujours sur les serveurs. Déployez-le sur Slicehost ou sur une autre solution hébergée, puis déplacez-le vers EC2 si vous en avez besoin pour répondre à la demande.

Je suis moi-même très intéressé par ce sujet. À l'heure actuelle, je suis sur un cloud computing élevé, alors je vous conseille d'utiliser SimpleDB, car il évoluera probablement mieux dans le sens où vous disposerez d'une haute disponibilité, mais ce n'est que mes pensées pour le moment. Pas d'expérience pour le moment.

Éditer: Il est vrai que SimpleDB n’a pas de fonctionnalités normales. Un " normal " base de données, mais cela devrait faire l'affaire si vous n'avez besoin que d'une simple couche CRUD, ce qui est mon cas

Il existe une bibliothèque appelée SimpleRecord , qui remplace peu à peu ActiveRecord, mais utilise SimpleDB comme backend data store.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top