Suchen

Cloud-Speichertipp: Replikation in Amazon S3 Bestehende Objekte zwischen einzelnen S3-Buckets replizieren

| Autor / Redakteur: Michael Hanisch* / Dr. Jürgen Ehneß

Aufgrund bestimmter Geschäftsanforderungen oder Unternehmensrichtlinien benötigen Anwender häufig Kopien ihrer Amazon-S3-Objekte. Die Amazon-S3-Replikation ist eine gängige Methode, um neu hochgeladene Objekte zwischen S3-Buckets zu replizieren. Es gibt aber eine einfache Möglichkeit, diesen Vorgang auch für bestehende Objekte regionenübergreifend auszuführen.

Firmen zum Thema

Replikation für bestehende Amazon-S3-Buckets: So geht’s!
Replikation für bestehende Amazon-S3-Buckets: So geht’s!
(Bild: Amazon)

Die Amazon-S3-Replikation ist eine verwaltete, kostengünstige und flexible Lösung zum Kopieren von Objekten aus einem Amazon-S3-Bucket in einen anderen. Für die automatische Replikation von S3-Objekten in verschiedene AWS-Regionen lassen sich unter Verwendung der „Amazon S3 Cross-Region Replication“ (CRR) Regeln einrichten. Mit der „Amazon S3 Same-Region Replication“ (SRR) können dagegen Regeln erstellt werden, um Objekte zwischen S3-Buckets in derselben AWS-Region zu replizieren.

Um bestehende Objekte in einen anderen S3-Bucket in derselben oder einer anderen AWS-Region zu kopieren, können sich Kunden an den AWS Support wenden, der dem Quell-Bucket die entsprechende Funktionalität hinzufügt. Sobald die Unterstützung für die Replikation vorhandener Objekte hier aktiviert ist, lässt sich die S3-Replikation für alle vorhandenen sowie für neu hochgeladene Objekte anwenden. Nach Abschluss des Replikationsprozesses stehen dem Kunden zwei Buckets zur Verfügung, die alle Objekte enthalten. Neu hochgeladene Objekte werden in den Ziel-Bucket kopiert.

Die Funktionalität ist die gleiche, egal, ob vorhandene oder neue beziehungsweise hinzugefügte Objekte repliziert werden. Dazu zählen die Replikation von Objekten unter Beibehaltung von Metadaten (etwa Erstellungsdatum und -zeit des Objekts), die Replikation von Objekten in unterschiedliche Speicherklassen (zum Beispiel, um bei den Kopien Kosten zu sparen) sowie das Ändern der Eigentümerrechte auf den Objektkopien (um so die Daten gegen unbeabsichtigtes oder mutwilliges Löschen zu schützen).

Konfigurieren der Replikation für bestehende Objekte

Wer die Replikation vorhandener Objekte für ein Konto einrichten will, muss sich an den AWS Support wenden und einen technischen Support-Fall melden (Dienst: Amazon S3). Damit ist sichergestellt, dass die Replikation korrekt konfiguriert wird. Um Verzögerungen zu vermeiden, sollte die Support-Anfrage den Betreff „Replikation für bestehende Objekte“ sowie folgende Informationen enthalten:

  • Quell-Bucket,
  • Ziel-Bucket,
  • geschätztes zu replizierendes Speichervolumen (in Terabyte),
  • geschätzte Zahl der zu replizierenden Speicherobjekte.

Hinweis: Sobald das Ticket generiert ist, setzen der AWS Support und das S3-Team den jeweiligen Bucket auf die Whitelist für die Replikation von vorhandenen Objekten.

Wenn der Support die Unterstützung der Replikation vorhandener Objekte für den jeweiligen Bereich aktiviert hat, empfiehlt es sich, die Replikationskonfiguration zu testen. Bevor diese auf einen größeren Datenbestand angewendet wird, lässt sie sich zusätzlich zu den Berechtigungen mithilfe eines kleinen Test-Buckets/-Prefixes überprüfen. Dieser Verifizierungsschritt ist notwendig, da es keine einfache Möglichkeit gibt, die Replikation für fehlgeschlagene Objekte erneut auszulösen.

Wichtig ist, vor der Aktivierung der Replikation die entsprechenden Anforderungen zu überprüfen. Zudem muss sichergestellt sein, dass sowohl im Quell- als auch im Ziel-Bucket die Versionsverwaltung aktiv ist.

Erste Schritte bei der Replikation vorhandener Objekte mit der S3-Replikation

Im folgenden Beispiel wird der gesamte Quell-Bucket (s3replication-source) in der Region us-east-1 auf den Ziel-Bucket (s3replication-destination) in der Region us-west-1 repliziert.

Illustration 1
Illustration 1
(Bild: Amazon)

Zudem wird die Speicherklasse des Zielobjekts auf S3 Standard-Infrequent Access gesetzt.

Teil 1: Einrichten einer Replikationsregel in der S3-Management-Konsole

Um eine Replikationsregel für den Quell-Bucket zu erstellen, müssen zunächst die zu replizierenden Objekte ausgewählt und die Replikation bestehender Objekte aktiviert werden.

  • Melden Sie sich bei der AWS-Management-Konsole an und öffnen Sie die Amazon-S3-Konsole.
  • Wählen Sie in der Bucket-Namensliste den Quell-Bucket aus, der auf der Whitelist für die Replikation bestehender Objekte steht.
  • Navigieren Sie zur Registerkarte „Management“ und wählen Sie „Replication“. Hier legen Sie eine Replikationsregel an, um die vorhandenen Objekte zu migrieren.
  • Wählen Sie „Add rule“. Durch das Anlegen einer Regel wird auch die Standard-CRR oder -SRR für den Bucket aktiviert.
  • Klicken Sie im Replication-Rule-Assistenten unter „Set source“ die Option „Entire Bucket“ an, um alle vorhandenen und neuen Objekte zu kopieren.

Hinweis: Wenn Objekte mit bestimmten Tags oder Präfixen kopiert werden sollen, können diese unter Prefix or tags ausgewählt werden.

  • Um vorhandene Objekte zu replizieren, überprüfen Sie, ob unter „Replication criteria“ mit einem Haken bei „Replicate existing objects“ die S3-Replikation existierender Objekte aktiviert ist. Wenn Sie das Feld „Replicate existing objects“ nicht sehen, steht Ihr Quell-Bucket noch nicht auf der Whitelist.

Illustration 2
Illustration 2
(Bild: Amazon)

Teil 2: Einrichten einer Replikationsregel in der S3-Management-Konsole

Jetzt geht es darum, die Ziel- und Regeloptionen – Speicherklasse, Eigentümer des Objekts und Einstellungen für die Replication Time Control (RTC) – festzulegen. Zu beachten ist dabei, dass die S3 RTC nur für neue Objekte und nicht für bestehende gilt. Auch die für die Replikation verwendete IAM-Rolle und der Prioritätswert müssen definiert werden.

1. Wählen Sie im Abschnitt des Assistenten zur Zielauswahl den Ziel-Bucket aus der Dropdown-Liste aus. In diesem Beispiel ist der Ziel-Bucket der s3replication-destination Bucket.

Illustration 3
Illustration 3
(Bild: Amazon)

2. Die Speicherklasse der replizierten Objekte lässt sich ändern, indem das Feld „Change the storage class for the replicated objects“ markiert und die Zielspeicherklasse ausgewählt wird. Im aktuellen Beispiel steht die Speicherklasse der replizierten Objekte auf „S3 Standard-Infrequent Access“, wie Illustration 3 zeigt.

3. Wenn eine AWS-Identity-and-Access-Management-Rolle (AWS IAM) vorhanden ist, kann Amazon S3 diese übernehmen, um Objekte für den Anwender zu replizieren. Wird das IAM-Rollenfeld angeklickt, erstellt S3 eine neue Rolle (s3crr_role_for_<SourceBucket>_to_<DestinationBucket>) mit folgenden Berechtigungen:

  • Get- und List-Berechtigung auf dem Quell-Bucket,
  • ReplicateObject-, ReplicateDelete-, ReplicateTags-, GetObjectVersionTagging-Berechtigungen im Ziel-Bucket

Hinweis: Wenn sich der Ziel-Bucket in einem anderen AWS-Konto befindet, muss der Eigentümer des Zielkontos dem Quell-Bucket die Berechtigungen zum Speichern der Replikate erteilen. Weitere Informationen finden sich in dieser Dokumentation.

4. Geben Sie unter „Rule name“ einen Namen für Ihre Regel ein. Der Name ist erforderlich und muss innerhalb des Buckets eindeutig sein.

Illustration 4
Illustration 4
(Bild: Amazon)

Hinweis: Wenn für den Bucket bereits weitere Replikationsregeln gelten, werden Sie aufgefordert, eine Priorität für die Regel festzulegen. Dies dient dazu, Konflikte mit Objekten zu vermeiden, die in den Anwendungsbereich von mehr als einer Regel fallen. Bei sich überschneidenden Regeln verwendet Amazon S3 die Regelpriorität, um zu bestimmen, welche Regel angewendet werden soll. Je höher die Zahl, desto höher die Priorität.

Illustration 5
Illustration 5
(Bild: Amazon)

5. Überprüfen Sie die Konfiguration auf dem Review. Wenn Sie die Replikation für vorhandene Objekte aktiviert haben, wird unter „Source“ der Eintrag „Replicate für All Objects“ angezeigt, wie in Illustration 5.

6. Nachdem Sie Ihre Regel gespeichert haben, können Sie sie auf der Seite „Replication“ in der S3-Konsole bearbeiten, aktivieren, deaktivieren oder löschen.

Illustration 6
Illustration 6
(Bild: Amazon)

Hinweis: Anders als bei der Replikation eines neu hochgeladenen Objekts kann es nach dem Einrichten der Regel bis zu 48 Stunden dauern, bis die Replikation startet.

Einrichten einer Replikationsrichtlinie mit AWS CLI

Um die Replikationsregel mithilfe von AWS CLI zu konfigurieren, befolgen Sie die Schritte in der S3-Dokumentation mit Beispielen für Konfigurationsreplikationen. Wenn Sie die Replikationskonfiguration als JSON-Dokument erstellen, müssen Sie allerdings „ExistingObjectReplication“ hinzufügen und den Status auf „Enabled“ setzen – siehe folgendes Beispiel:

{ "Role": "<IAM-Role-ARN>", "Rules": [ { "Status": "Enabled", "Filter": {}, "DeleteMarkerReplication": { "Status": "Disabled" }, "Destination": { "Account": "<Destination-Account-ID>", "AccessControlTranslation": { "Owner": "Destination" }, "Bucket": "arn:aws:s3:::<Destination-Bucket-Name>", "StorageClass": "<Destination-Storage-Class>" }, "Priority": <Rule-Priority>, "ExistingObjectReplication": { "Status": "Enabled" }, "ID": "<Replication-Rule-Name>" }

Replikation überwachen

Um den Replikationsstatus vorhandener Objekte zu überwachen, muss Amazon S3 Inventory auf dem Quell-Bucket mindestens 48 Stunden vor der Aktivierung der Replikation konfiguriert werden. Detaillierte Anweisungen dazu enthält das „Benutzerhandbuch zur Konfiguration von Amazon S3 Inventory“.

Das S3-Inventory lässt sich wie hier beschrieben mit der AWS-CLI oder mit Athena abfragen. Der Replikationsstatus gibt Auskunft darüber, ob die Objektreplikation aussteht, abgeschlossen oder fehlgeschlagen ist.

Anwender, die den Tipp nur zu Testzwecken befolgt haben, sollten anschließend alle nicht mehr benötigten Objekte und Buckets löschen, um keine unnötigen Kosten zu verursachen.

Michael Hanisch, Head of Technology bei AWS in Deutschland.
Michael Hanisch, Head of Technology bei AWS in Deutschland.
(Bild: THORSTEN JOCHIM/Amazon)

*Der Autor: Michael Hanisch, Head of Technology bei AWS in Deutschland

(ID:46765469)