Stratégie de sauvegarde Amazon EC2

14

J'ai quelques configurations de serveur Web / serveur DB utilisant EC2 d'Amazon. Je prends actuellement des instantanés quotidiens de tous mes disques système et EBS qui contiennent tous mes fichiers d'application, fichiers DB, code source et sauvegardes DB. J'ai une application console qui exécute les créations de sauvegarde selon un calendrier. Mes images sont des images EBS.

Je travaille sur une tâche qui supprimera mes instantanés après tant de jours. Je suppose que ma question est la suivante: dois-je / puis-je également planifier une tâche image / EBS complète? De cette façon, si le serveur tombe en panne ou est corrompu, je peux simplement lancer la dernière image puis appliquer le dernier instantané.

Comme je travaille sur ma stratégie de sauvegarde, j'utilise Jungle Disc pour sauvegarder mes disques de données.

Jim
la source

Réponses:

23

Mes recommandations:

  1. Documentez et / ou scriptez toujours la configuration de chaque nouvelle instance afin de pouvoir reproduire l'installation du logiciel et la configuration du système en cas de perte de l'instance. Testez cela en démarrant une nouvelle instance et en suivant la procédure. Vous pouvez utiliser une AMI privée personnalisée si l'installation prend du temps et que vous devez démarrer des instances rapidement, mais cette AMI elle-même doit être créée à l'aide d'une procédure documentée et / ou scriptée.

  2. Conservez vos données importantes sur des volumes EBS distincts et non sur le volume EBS racine. Cela présente de nombreux avantages, notamment en facilitant le portage de vos données vers de nouvelles instances (par exemple, en fonction de différentes AMI) et en facilitant l'obtention de copies de vos données sur d'autres instances (par exemple, avec des instantanés et de nouveaux volumes).

  3. Créez des instantanés réguliers des volumes de données EBS. Si possible / applicable, utilisez un outil comme mon snapshot cohérent ec2 pour améliorer les chances que vous preniez un snapshot d'un système de fichiers / base de données cohérent. Sauvegardez les données en dehors d'AWS / EC2, car votre compte AWS lui-même est un point de défaillance unique.

  4. Créez de temps à autre des instantanés du volume EBS racine sur des instances importantes. Bien que cela puisse vous aider en cas de panne d'instance ou de volume EBS, cette partie n'est pas si critique en raison des # 1 et # 2 ci-dessus. La principale raison pour laquelle je fais cela est que la création d'instantanés réduit le risque de défaillance du volume EBS racine lui-même.

Le taux d'échec d'un volume EBS est directement lié au nombre de blocs qui ont été modifiés sur ce volume depuis le dernier instantané EBS.

Eric Hammond
la source
Quelle est votre recommandation pour sauvegarder les données en dehors d'EC2? Stratégie ou outil que vous recommandez?
csi
@ChristopherIckes: Je suis fan de tout ce qui fonctionne pour vous. Rsync est simple et fonctionne pour moi.
Eric Hammond
1

Dois-je / puis-je également planifier une tâche image / EBS complète?

oui, c'est conseillé. Une fois, cela m'a sauvé, car j'ai dû réinitialiser plusieurs fois en raison de problèmes de noyau, jusqu'à ce que le disque de démarrage ne soit plus lisible et que je démarre simplement à partir du dernier instantané.

Si vous êtes intéressé, j'ai écrit une classe Java pour prendre un instantané de tous les volumes EBS connectés et les supprimer également après un certain temps. Actuellement, je fais une sauvegarde chaque semaine et jette la troisième sauvegarde après deux semaines.

https://github.com/stivlo/obliquid-cp/blob/master/src/main/java/org/obliquid/sherd/runner/RequestSnapshots.java

Il n'exécute qu'une seule action par exécution, comme prendre ou supprimer un instantané, car il est destiné à être mis à jour toutes les heures pour éviter de surcharger avec des dizaines d'instantanés en même temps au cas où vous auriez beaucoup d'EBS comme moi.

stivlo
la source
0

Nous utilisons une stratégie de sauvegarde simple mais puissante: créez une nouvelle AMI sur la base de l'exécution des instances EC2 EBS deux fois par jour et supprimez les "anciennes" AMI. Grâce à l'API (CreateImage), vous pouvez définir l'indicateur ne pas redémarrer l'instance lors de la création d'une nouvelle AMI ou, si vous utilisez le logiciel raid - ssh pour l'instance avant l'appel de l'API CreateIImage et geler le système de fichiers avec "fsfreeze" sur les systèmes de fichiers les plus populaires sur les nouveaux noyaux ou xfs_freeze si vous utilisez un noyau plus ancien et xfs.

AMI de «sauvegarde» créée se souvient de tout ce qui est connecté aux disques EBS de l'instance en cours d'exécution d'origine (via des liens vers des instantanés créés) et, dans le cas de l'utilisation de raids logiciels avec plusieurs disques, permet de restaurer une nouvelle instance dans n'importe quel AZ simplement avec un appel d'API ou via le Web -interface.


la source