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