Ich habe eine EC2-Instanz, auf der ein Webserver ausgeführt wird, auf dem die hochgeladenen Dateien der Benutzer in S3 gespeichert werden. Die Dateien werden einmal geschrieben und nie geändert, sondern gelegentlich von den Benutzern abgerufen. Wir werden wahrscheinlich ungefähr 200-500 GB Daten pro Jahr anhäufen. Wir möchten sicherstellen, dass diese Daten sicher sind, insbesondere vor versehentlichem Löschen, und möchten Dateien, die gelöscht wurden, ungeachtet des Grundes wiederherstellen können.
Ich habe die Versionierungsfunktion für S3-Buckets gelesen, kann jedoch nicht feststellen, ob die Wiederherstellung für Dateien ohne Änderungsverlauf möglich ist. Informationen zur Versionierung finden Sie in den AWS-Dokumenten hier:
http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html
In diesen Beispielen wird das Szenario nicht angezeigt, in dem Daten hochgeladen, jedoch nie geändert und anschließend gelöscht werden. Können in diesem Szenario gelöschte Dateien wiederhergestellt werden?
Dann dachten wir, wir könnten die S3-Dateien einfach mit Object Lifecycle Management auf Glacier sichern:
http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
Es scheint jedoch, dass dies bei uns nicht funktioniert, da das Dateiobjekt nicht in Glacier kopiert, sondern in Glacier verschoben wird (genauer gesagt, es handelt sich anscheinend um ein Objektattribut, das geändert wurde, aber trotzdem ...).
Es scheint also keine direkte Möglichkeit zu geben, S3-Daten zu sichern, und die Übertragung der Daten von S3 auf lokale Server kann zeitaufwändig sein und mit der Zeit erhebliche Übertragungskosten verursachen.
Schließlich dachten wir, wir würden jeden Monat einen neuen Bucket erstellen, der als monatliches vollständiges Backup dient, und die ursprünglichen Bucket-Daten an Tag 1 auf den neuen Bucket kopieren. Dann verwenden wir so etwas wie duplicity ( http://duplicity.nongnu.org/ ) Wir würden den Backup-Bucket jede Nacht synchronisieren. Am Ende des Monats haben wir den Inhalt des Backup-Buckets in den Glacier-Speicher gestellt und einen neuen Backup-Bucket mit einer neuen, aktuellen Kopie des ursprünglichen Buckets erstellt ... und wiederholen diesen Vorgang. Dies scheint zu funktionieren und die Speicher- / Übertragungskosten zu minimieren, aber ich bin mir nicht sicher, ob Duplizität die direkte Übertragung von Bucket zu Bucket zulässt, ohne dass die Daten zuerst an den steuernden Client weitergeleitet werden.
Ich schätze, hier gibt es ein paar Fragen. Erstens: Ermöglicht die S3-Versionierung die Wiederherstellung von Dateien, die nie geändert wurden? Gibt es eine Möglichkeit, Dateien von S3 nach Glacier zu "kopieren", die ich verpasst habe? Können Duplizitäten oder andere Tools Dateien direkt zwischen S3-Buckets übertragen, um Übertragungskosten zu vermeiden? Schließlich bin ich weit weg von der Marke in meinem Ansatz zum Sichern von S3-Daten?
Vielen Dank im Voraus für jeden Einblick, den Sie gewähren könnten!
Aktualisieren
Amazon gab kürzlich bekannt, dass die Versionierung jetzt mit Lebenszyklusregeln funktioniert
Antworten:
Ich habe es gerade versucht. Ja, Sie können von der Originalversion wiederherstellen. Wenn Sie die Datei löschen, wird eine Löschmarkierung erstellt, und Sie können die vorherige Version wiederherstellen, dh die einzige Revision.
Gletscher ist wirklich für die Langzeitlagerung gedacht, auf die nur sehr selten zugegriffen wird. Es kann auch sehr teuer werden, einen großen Teil Ihrer Daten auf einmal abzurufen, da dies nicht für die Wiederherstellung vieler Daten zu bestimmten Zeitpunkten gedacht ist (prozentual).
Tun Sie dies nicht, Sie können nur 100 Buckets pro Konto haben. In 3 Jahren haben Sie also ein Drittel Ihres Bucket-Guthabens mit nur Backups verbraucht.
Ja
Nicht, dass ich davon Wüste
quelle
Ich mag es nicht, S3 zu mounten, weil es langsam ist und hängen kann und wie Old School NFS funktioniert. Besser einfach nach Bedarf hoch / runter.
Es ist einfach zu skripten ... vergessen Sie nicht Ihre ~ / .s3cfg-Datei
quelle
Klingt so, als ob Sie S3FS benötigen, mit dem Ihre S3-Buckets im Grunde genommen wie lokale Dateisysteme gemountet werden:
http://code.google.com/p/s3fs/wiki/FuseOverAmazon
Ich bevorzuge diese gegabelte Version, da sie die gleiche Ordnerstruktur beibehält wie die, die in der Web-Systemsteuerung für Amazon S3 erstellt wurde:
https://github.com/tongwang/s3fs-c
Dann habe ich einige Shell-Skripte, die im Grunde genommen
rsync
zum Synchronisieren der Daten mit meinen lokalen Einstellungen verwendet werden.Im Allgemeinen eignet sich S3FS am besten zum Lesen von Inhalten, die sich in Amazon S3-Buckets befinden. Schreiben ist nicht so konsequent. Zum Sichern von S3-Buckets eignet sich die Tony Wang-Gabel von S3FS jedoch hervorragend.
quelle