Wie kann ich Wiederherstellungen für eine große Anzahl von Amazon-S3-Objekten initiieren, die sich derzeit in der S3-Glacier- oder S3-Glacier-Deep-Archive-Speicherklasse befinden?
Ich verfüge über eine große Anzahl von Objekten in der Amazon Simple Storage Service (Amazon S3) Glacier- oder Amazon S3 Glacier Deep Archive-Speicherklasse. Ich möchte in einer umfangreichen Operation eine Wiederherstellung all dieser Objekte einleiten.
Lösung
Um ein großes Volumen von Amazon S3 Glacier-Speicherklassenobjekten wiederherzustellen, können Sie eine der folgenden Optionen verwenden:
- Amazon S3 Batch Operations
- Ein benutzerdefiniertes Skript, das Sie mit der AWS Command Line Interface (AWS CLI) erstellt haben
Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.
Eine S3-Batch-Operation verwenden
Erstellen Sie einen Amazon S3 Batch Operations-Job, um die Wiederherstellung für alle Objekte zu initiieren. Sie können einen S3 Initiate Restore Object-Job für eine benutzerdefinierte Liste von Objekten oder einen Amazon S3-Inventarbericht ausführen.
Hinweis: Bevor Sie einen Job erstellen, sollten Sie unbedingt die Preise für Amazon S3 Batch Operations überprüfen.
Bevor Sie mit der Erstellung eines S3 Batch Operations-Jobs beginnen, stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind:
- Sie verfügen über einen AWS Identity and Access Management (IAM)-Benutzer oder eine Rolle, die berechtigt ist, eine Wiederherstellung zu initiieren. Darüber hinaus muss der IAM-Benutzer oder die IAM-Rolle über eine Vertrauensrichtlinie für Amazon S3 Batch Operations verfügen.
- Sie verfügen über eine CSV-Liste oder einen Amazon S3-Inventarbericht, der als Manifest der Objekte dient, die Sie wiederherstellen möchten. Die Manifestdatei muss in einem S3-Bucket gespeichert werden. Manifeste mit serverseitiger Verschlüsselung (vom Kunden bereitgestellte Schlüssel oder AWS Key Management Service-Schlüssel) werden nicht unterstützt. Weitere Informationen zu den Anforderungen der einzelnen Formate finden Sie unter Spezifizieren eines Manifests.
Gehen Sie wie folgt vor, um mithilfe der Amazon S3-Konsole einen Batch-Operations-Job zu erstellen, um eine Wiederherstellung zu initiieren:
1.Öffnen Sie die Amazon S3-Konsole.
2.Wählen Sie im Navigationsbereich Batch-Operationen aus.
3.Wählen Sie Job erstellen aus.
4.Wählen Sie unter Region die AWS-Region aus, in der Sie den Job erstellen möchten.
5.Geben Sie unter Manifest auswählen Folgendes ein:
Wählen Sie unter Manifest-Format S3-Inventarbericht oder CSV als Dateiformat aus.
Geben Sie für Pfad zum Manifest-Objekt den S3-Pfad zur Manifestdatei ein (Beispiel: s3://awsexamplebucket/manifest.csv).
6.Wählen Sie Weiter aus.
7.Geben Sie unter Vorgang auswählen Folgendes ein:
Wählen Sie unter Operation die Option Wiederherstellen aus.
Wählen Sie für Quelle wiederherstellen, Glacier oder Glacier Deep Archive aus.
Geben Sie im Feld Anzahl der Tage, für die die wiederhergestellte Kopie verfügbar ist, die Anzahl der Tage Ihrem Anwendungsfall entsprechend ein.
Wählen Sie für Wiederherstellung-Stufe entweder Massenabruf oder Standardabruf aus. Weitere Informationen zu den einzelnen Stufen finden Sie unter Optionen zum Abrufen von Archiven.
Hinweis: S3-Batch-Operationen unterstützen die Abruf-Stufe Expedited nicht.
8.Wählen Sie Weiter aus.
9.Geben Sie unter Zusätzliche Optionen konfigurieren Folgendes ein:
Unter Beschreibung können Sie wählen, ob Sie eine Beschreibung des Jobs eingeben möchten. Sie können dieses Feld auch leer lassen.
Geben Sie für Priorität eine Zahl ein, um die Priorität des Jobs anzugeben.
Wählen Sie unter Abschlussbericht erstellen aus, dass diese Option aktiviert bleiben soll.
Wählen Sie für den Umfang des Abschlussberichts je nach Anwendungsfall Nur fehlgeschlagene Aufgaben oder Alle Aufgaben aus.
Geben Sie unter Speicherpfad des Abschlussberichts den Pfad ein, an den der Bericht gesendet werden soll.
Wählen Sie für Berechtigung die Option Aus vorhandenen IAM-Rollen auswählen aus. Wählen Sie dann die IAM-Rolle aus, die über Berechtigungen zum Initiieren einer Wiederherstellung sowie eine Vertrauensrichtlinie für S3-Batch-Operationen verfügt.
10.Wählen Sie Weiter aus.
11.Überprüfen Sie auf der Seite Überprüfen die Details des Jobs. Wählen Sie dann Job erstellen aus.
12.Nachdem Sie den Job erstellt haben, ändert sich der Status des Jobs von Neu zu In Vorbereitung. Anschließend ändert sich der Status zu Wartet auf Ihre Bestätigung. Um den Job auszuführen, müssen Sie den Job auswählen und dann Bestätigen und ausführen wählen. Der Job wird erst ausgeführt, wenn Sie ihn bestätigen.
13.(Optional) Wenn Sie Abschlussbericht erstellen ausgewählt haben, überprüfen Sie den Bericht nach Abschluss des Jobs. Sie finden den Bericht unter dem von Ihnen angegebenen Speicherpfad zum Abschlussbericht.
Eine Beschreibung der einzelnen Job-Zustände finden Sie unter Job-Zustände.
Weitere Informationen zu fehlgeschlagenen Aufträgen finden Sie unter Fehlgeschlagene Jobs nachverfolgen.
Ein benutzerdefiniertes AWS-CLI-Skript verwenden
Sie können Ihre Amazon S3 Glacier-Objekte mithilfe des AWS-CLI-Befehls restore-object wiederherstellen. Der Befehl kann jedoch jeweils nur ein S3 Glacier-Objekt wiederherstellen und unterstützt die Massenwiederherstellungsaktion nicht. Verwenden Sie daher die folgende benutzerdefinierte Lösung, um Massendaten aus den S3 Glacier-Speicherklassen mithilfe der verfügbaren Abrufoptionen wiederherzustellen.
Hinweis: Sie müssen diese benutzerdefinierten Skripts in einer Test- oder Entwicklungsumgebung testen, bevor Sie sie in Ihrer Produktionsumgebung verwenden. Die benutzerdefinierten Befehle stellen alle Objekte in den S3 Glacier-Speicherklassen nacheinander wieder her. Wenn Sie über sehr viele Objekte verfügen, kann es zu einem Timeout des Befehls kommen. Sie können den benutzerdefinierten Befehl mithilfe des Präfix-Parameters ausführen, um die Anzahl der Objekte zu reduzieren.
Führen Sie für ein Linux- oder UNIX-basiertes System den folgenden Befehl aus, um alle S3 Glacier-Objekte im Bucket rekursiv wiederherzustellen:
aws s3api list-objects --bucket <bucket-name> --prefix <prefix> --query 'Contents[?StorageClass==`GLACIER`][Key]' --output text | xargs -I {} sh -c "aws s3api restore-object --bucket <bucket-name> --key \"{}\" --restore-request Days=5,GlacierJobParameters={Tier=Standard} || true"
Gehen Sie dabei folgendermaßen vor:
- Ersetzen Sie <bucket-name> durch den S3-Bucket-Namen.
- Ersetzen Sie <prefix> durch den S3-Ordnerpfad.
Gehen Sie für ein Windows-basiertes System wie folgt vor:
1.Führen Sie den folgenden Befehl aus, um alle S3 Glacier-Objekte im Bucket aufzulisten:
aws s3api list-objects --bucket <bucket-name> --prefix <prefix> --query "Contents[?StorageClass==`GLACIER`][Key]" --output text > list.txt
Wenn Sie diesen Befehl ausführen, wird die Liste der Objekte in einer Datei mit dem Namen list.txt gespeichert.
2.Führen Sie den folgenden Befehl aus, um die S3 Glacier-Objekte wiederherzustellen:
for /F "tokens=*" %i in (list.txt) do @aws s3api restore-object --bucket <bucket-name> --key "%i" --restore-request Days=5,GlacierJobParameters={Tier=Standard} || true"
Hinweis: Für das vorstehende benutzerdefinierte AWS-CLI-Skript fallen zusätzliche Gebühren für die LIST- und Datenabrufanfragen an. Da es sich bei list-objects-v2 um eine paginierte Operation handelt, können mehrere API-Aufrufe ausgeführt werden, um den gesamten Datensatz mit Ergebnissen abzurufen. Weitere Informationen finden Sie unter Amazon S3-Preise.
Ähnliche Informationen
Einen S3 Batch Operations-Job erstellen
Ausführen umfangreicher Batch-Operationen für Amazon S3-Objekte
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren