10
votes

Stratégie de sauvegarde de Mongodb pour AWS

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.

Mon inquiétude est que si une instance EC2 diminue, vous perdez des données écrites sur le disque ...


0 commentaires

3 Réponses :


1
votes

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).


2 commentaires

À quelle fréquence êtes-vous instantané sur EBS?


Réplication! = Sauvegarde




7
votes

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.

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.

Quelques liens pouvant aider:


4 commentaires

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 :)