Si je suis mongodb en cours d'exécution dans une instance EC2 qui est écrite à (quelque peu), quelle est la stratégie de sauvegarde la plus intelligente, sûre et peu coûteuse. p>
Mon inquiétude est que si une instance EC2 diminue, vous perdez des données écrites sur le disque ... p>
3 Réponses :
Nous utilisons (au moins deux) des instances Linux avec les données stockées sur EBS et des répliques ensembles (http://www.mongodb.org/display/docs/replica+sets). P>
À quelle fréquence êtes-vous instantané sur EBS?
Réplication! = Sauvegarde
Qui meilleur que 10Gen (Développeurs MongoDB) pour vous répondre. p>
Vous pouvez voir dans le site de Follogogin, documentation officielle sur les sauvegardes de MongoDB dans les instances EC2. http://docs.mongodb.org/ecosystem/platforms/AMAZON-EC2/ a> p>
Ils suggèrent un instantané d'EBS. Cette solution permet une instance de démarrage en quelques secondes avec une "photo" de votre base de données. p>
Ils ont un didacticiel spécial pour la sauvegarde sur EC2, bien qu'ils ne fournissent pas de scripts / lambda automatiques pour le faire: Sauvegardes EC2
Une ancienne question mais je pense que je peux contribuer avec plus de détails et d'informations sur un cas de réussite réel. P>
Dans un environnement de production, j'ai 3 mongodb avec réplicaset en cours d'exécution dans 3 cas T2.Micro, 1 instance est la principale, 1 instance est l'instance secondaire et 1 est retardée (toutes les 4 heures sont synchronisées) avec des EBS persistants (ce n'est pas supprimé après instance redémarrant). Toutes les 4,5 heures, je démarre un processus Lambda qui fait une instantanée EBS d'instance retardée et envoie à un seau S3. Cela fonctionne assez bien. P>
Quelques liens pouvant aider: p>
Utilisez-vous un seul volume EBS dans chacune des machines? Il peut y avoir des problèmes avec des instantanés s'il existe plusieurs volumes EBS (RAID) qui composent le dossier / Données: Dossier. Il peut arriver que l'instantané a lieu pendant votre synchronisation. Je ne comprends pas vraiment comment vos affaires "retardées" viennent aider ici. MongoDB Docs sur EC2 Suggérez également le verrouillage de la base de données, ce qui ne semble pas être couvert de vos liens.
Retardé est beaucoup plus pour la commodité (dans mon scénario). Quoi qu'il en soit, vous devriez exécuter une RS.FSYNCLOCK () avant l'instantané EBS, comme vous l'avez dit. Dans mon environnement, j'exécute la Rs.fsynclock () à distance d'une Lambda avant l'instantané EBS. Je pense écrire un message médiocre expliquant ce que j'ai fait pour résoudre des choses comme ça, par exemple, j'ai créé un nœud.js qui reçoit des commandes http et exécutez dans mon MongoDB afin que je puisse appeler de mon Lambda à exécuter, par exemple, par exemple, le rsynclock ().
... J'ai un volume EBS attaché pour chaque EC2
Aimerait voir ce message moyen :)