Amazon EC2-Sicherungsstrategie

14

Ich habe ein paar Webserver / DB-Server-Setups mit Amazon EC2. Momentan mache ich tägliche Snapshots aller meiner System- und EBS-Laufwerke, die alle meine Anwendungsdateien, DB-Dateien, Quellcode- und DB-Sicherungen enthalten. Ich habe eine Konsolenanwendung, die die Sicherungserstellungen nach einem Zeitplan ausführt. Meine Bilder sind EBS-Bilder.

Ich arbeite an einer Aufgabe, bei der meine Schnappschüsse nach so vielen Tagen gelöscht werden. Ich schätze, meine Frage lautet: Soll / kann ich auch eine vollständige Image- / EBS-Aufgabe planen? Auf diese Weise kann ich, wenn der Server ausfällt oder beschädigt ist, einfach das neueste Image starten und dann den neuesten Snapshot anwenden.

Während ich an meiner Sicherungsstrategie arbeite, verwende ich Jungle Disc, um meine Daten-Discs zu sichern.

Jim
quelle

Antworten:

23

Meine Empfehlungen:

  1. Dokumentieren und / oder skripten Sie immer das Setup jeder neuen Instanz, damit Sie die Softwareinstallation und Systemkonfiguration reproduzieren können, falls Sie die Instanz verlieren. Testen Sie dies, indem Sie eine neue Instanz starten und den Anweisungen folgen. Sie können eine benutzerdefinierte, private AMI verwenden, wenn die Installation lange dauert und Sie Instanzen schnell starten müssen. Die AMI selbst sollte jedoch mithilfe einer dokumentierten und / oder skriptbasierten Prozedur erstellt werden.

  2. Bewahren Sie Ihre wichtigen Daten auf separaten EBS-Volumes und nicht auf dem Root-EBS-Volume auf. Dies hat viele Vorteile, einschließlich der Vereinfachung des Portierens Ihrer Daten auf neue Instanzen (z. B. basierend auf verschiedenen AMIs) und der Vereinfachung des Abrufs von Kopien Ihrer Daten auf andere Instanzen (z. B. mit Snapshots und neuen Volumes).

  3. Erstellen Sie regelmäßig Snapshots der EBS-Datenvolumes. Verwenden Sie nach Möglichkeit ein Tool wie meinen ec2-konsistenten Snapshot , um die Wahrscheinlichkeit zu erhöhen, dass Sie einen Snapshot eines konsistenten Dateisystems / einer konsistenten Datenbank erstellen . Sichern Sie die Daten außerhalb von AWS / EC2, da Ihr AWS-Konto selbst eine einzelne Fehlerquelle darstellt.

  4. Erstellen Sie von Zeit zu Zeit Snapshots des Root-EBS-Volumes auf wichtigen Instanzen. Dies kann Ihnen zwar im Falle eines Instance- oder EBS-Volume-Ausfalls helfen, dieser Teil ist jedoch aufgrund der obigen Punkte 1 und 2 nicht so kritisch. Der Hauptgrund dafür ist, dass das Erstellen von Snapshots das Risiko eines Ausfalls des Root-EBS-Volumes selbst verringert.

Die Ausfallrate eines EBS-Volumes hängt direkt von der Anzahl der Blöcke ab, die auf diesem Volume seit dem letzten EBS-Snapshot geändert wurden.

Eric Hammond
quelle
Was ist Ihre Empfehlung zum Sichern der Daten außerhalb von EC2? Strategie oder Tool, das Sie empfehlen?
CSI
@ChristopherIckes: Ich bin ein Fan von allem, was für Sie funktioniert. Rsync ist einfach und funktioniert bei mir.
Eric Hammond
1

Soll / kann ich auch eine komplette Image- / EBS-Aufgabe einplanen?

ja, es ist ratsam Einmal hat es mich gerettet, weil ich wegen Kernelproblemen viele Male zurücksetzen musste, bis die Bootdiskette nicht mehr lesbar war und ich einfach vom neuesten Snapshot gebootet habe.

Wenn Sie interessiert sind, habe ich eine Java-Klasse geschrieben, um alle verbundenen EBS-Volumes zu sichern und sie nach einer bestimmten Zeit auch zu löschen. Derzeit mache ich jede Woche ein Backup und verwerfe das dritte Backup nach zwei Wochen.

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

Es wird nur eine Aktion pro Lauf ausgeführt, z. B. das Aufnehmen oder Löschen eines Snapshots, da dies in einem Cron pro Stunde erfolgen soll, um zu vermeiden, dass Sie mit Dutzenden von Snapshots gleichzeitig überladen werden, falls Sie wie ich viele EBS haben.

stivlo
quelle
0

Wir verwenden eine einfache, aber leistungsstarke Sicherungsstrategie: Erstellen Sie eine neue AMI auf der Grundlage der zweimal täglichen Ausführung von EC2-EBS-Instanzen und löschen Sie „alte“ AMIs. Über API (CreateImage) können Sie festlegen, dass die Instanz beim Erstellen eines neuen AMIs nicht neu gestartet werden soll. Wenn Sie Software-Raid-SSH verwenden, müssen Sie die Instanz vor CreateIImage API aufrufen und das Dateisystem mit „fsfreeze“ auf den meisten gängigen Dateisystemen auf neuen Kerneln oder xfs_freeze einfrieren, wenn Sie verwenden älteren Kernel und XFS.

Erstelltes "Backup" AMI merkt sich alle mit der ursprünglichen Instanz verbundenen EBS-Festplatten (über Links zu erstellten Snapshots) und ermöglicht bei Verwendung von Software-Raids mit mehreren Festplatten die Wiederherstellung einer neuen Instanz in einem beliebigen AZ einfach mit einem API-Aufruf oder über das Web -Schnittstelle.


quelle