Sollte ich meine Datenbank für eine Webanwendung, die auf einem Amazon EC2-Server gehostet wird, sichern und wie mache ich das?

Sollte ich meine Datenbank für eine Webanwendung, die auf einem Amazon EC2-Server gehostet wird, sichern und wie mache ich das?

Ich habe arrangiertAmazon EC2Instanz mit der Ubuntu Server Edition, und ich installierte dieLAMPEStapel darauf. Ich habe eine PHP-Webanwendung erstellt, die auf MySQL läuft. Ich habe die Webanwendung auf Amazon EC2 getestet und sie funktioniert.

Ich bin noch nicht offiziell gestartet, aber ich muss dies vor dem Start wissen. Sollte ich meine Datenbankdaten sichern? Wenn ja, wie mache ich das möglichst kostengünstig?

Zuvor habe ich für eine andere Webanwendung ein Perl- oder Bash-Skript (ich kann mich nicht erinnern) geschrieben, das ausgeführt wird voncrontäglich.

Das Skript sichert dann die Datenbank in einer einzelnen .sqlDatei und sendet sie als E-Mail-Anhang an mein Gmail-Konto.

Diese Webanwendung befand sich auf einem Shared Hosting, daher war ich mir ziemlich sicher, dass ich ein Backup meiner Datenbank machen musste. Meine Dateien befinden sich im Git-Repository, also mache ich mir darüber keine Sorgen.

Für diese neue Webanwendung aufAmazon Web Services(AWS), ich bin unentschlossen, weil:

  1. Ich glaube nicht, dass das eine gute Lösung ist, da per E-Mail gesendete Daten nicht sicher sind. Soweit ich mich erinnern kann, gibt es kein SSL, obwohl es eine günstige Lösung war. Kostenlos. Leicht nach Datum abrufbar.

  2. Amazon hat es für mich möglicherweise überflüssig gemacht, Backups zu erstellen, weil sie das bereits tun. Alles, was ich wissen muss, ist, wie ich es im Katastrophenfall wiederherstellen kann (berühre Holz)

    • (Ich vermute) es gibt für mich eine bessere und kostengünstigere Möglichkeit zur Datensicherung mitAmazon S3.
  3. Ich erlaube Benutzern, Dateien hochzuladen, also muss ich diese Dateien auch irgendwie sichern. Ich weiß nicht, wie das geht, und habe es noch nie zuvor in irgendeiner Form getan.

Was ich möchte: eine möglichst kostengünstige tägliche Sicherung meiner Datenbank- und Bilddateien und eine klare Schritt-für-Schritt-Anleitung zum Umsetzen dieser Sicherungen und zur Wiederherstellung im Katastrophenfall.

Hintergrund:

  • Ich kenne mich mit AWS überhaupt nicht aus. Ich weiß nur, wie man ein Konto einrichtet. Das ist alles.

  • << Ein Jahr Erfahrung als Ubuntu-Neuling. Den Großteil meines Lebens habe ich mit Windows verbracht.

  • Meistens vertraut mit der PHP-Programmierung. Die Beherrschung anderer Programmiersprachen ist aufgrund mangelnder Anwendung nicht so gut.

Antwort1

Amazon speichert Ihre Datenbankdateien auf redundantem Speicher, stellt jedoch nur begrenzte Informationen zur Konfiguration bereit. Sie müssen sich also selbst ein Bild davon machen, ob dies Ihren Anforderungen entspricht oder nicht. Da jedoch keine alten Versionen gespeichert werden, sind Sie hierdurch nur vor Hardwarefehlern geschützt, nicht aber vor Benutzerfehlern jeglicher Art (die wahrscheinlicher sind als Hardwarefehler).

Beachten Sie auch, dass die Daten gelöscht werden, wenn Ihr EC2-Server sich auf einem Instance-Speicher befindet und der Server jemals angehalten wird. Für eine dauerhafte Speicherung müssen sich Ihre Daten auf einem Elastic Block Storage (EBS)-Volume befinden. Sobald sie sich auf einem EBS-Volume befinden, können Sie regelmäßig Snapshots erstellen (manuell oder automatisch mithilfe der Amazon-API), mit denen Sie dann zu älteren Versionen zurückkehren können. Das AWS SDK für PHP ist ziemlich gut und Sie finden es hier:http://aws.amazon.com/sdkforphp/.

Antwort2

Amazon bietet sehr viele Dienste an, manchmal kann es angesichts der vielen verschiedenen Technologien verwirrend sein. Bedenken Sie, dass Amazon all diese Dienste erstellt, um bestimmte Probleme zu lösen.

Das Sichern von MySQL in S3 ist weit verbreitet und in vielen Blogs gut dokumentiert. Ich empfehle, der Anleitung hier zu folgen.http://agiliq.com/blog/2009/02/automatically-backup-mysql-database-to-amazon-s3-u/

Gehen Sie nie von irgendetwas aus. S3 ist als fehlertolerantes Speichergerät konzipiert, aber das würde mich nicht davon abhalten, alles lokal auf meinem Computer oder bei einem anderen Anbieter zu sichern. EBS-Volumes sind nicht zuverlässig genug, um das einzige Speichergerät für Ihr Backup zu sein, geschweige denn, wenn Ihre Datenbank auch auf derselben Festplatte gespeichert ist.

Für welche Methode Sie sich auch entscheiden, ich würde beim Erstellen Ihres Backups die folgenden Schritte befolgen

  1. Täglich Backup erstellen
  2. Senden Sie das Backup an S3 (verwenden Sie unbedingt die MD5-Prüfsumme, damit Sie wissen, dass Ihr Backup gut ist)
  3. Laden Sie das Backup von S3 lokal oder von einem anderen Anbieter als S3 herunter
  4. Bereinigen Sie alte Backups mithilfe eines rollierenden Backup-Verlaufs
    • Speichern Sie ein Backup der letzten 7 Tage
    • Speichern Sie eine Sicherungskopie des Freitags jede Woche für 1 Monat
    • Speichern Sie ein Backup des letzten Monats für 1 Jahr

verwandte Informationen