Wie kopiere ich einen Amazon-Redshift-Serverless-Snapshot und stelle ihn in ein anderes AWS-Konto wieder her?

Letzte Aktualisierung: 11.10.2022

Ich möchte einen Amazon-Redshift-Serverless-Snapshot von einem AWS-Konto in ein anderes AWS-Konto kopieren und wiederherstellen. Wie gehe ich vor?

Auflösung

Führen Sie mithilfe der Amazon-Redshift-Konsole oder der AWS Command Line Interface (AWS CLI) eine Kopie und Wiederherstellung von einem AWS-Konto auf ein anderes durch.

Bevor Sie beginnen, sollten Sie Folgendes beachten:

  • Sie können einen Snapshot nur dann in einem Amazon-Redshift-Serverless-Namespace wiederherstellen, wenn er sich im Status Verfügbar befindet und einer verfügbaren Arbeitsgruppe zugeordnet ist.
  • Beim Wiederherstellen eines Amazon-Redshift-Serverless-Namespace aus einem Snapshot werden alle Datenbanken des Namespace durch Datenbanken im Snapshot ersetzt.
  • Während der Wiederherstellung ist Amazon Redshift Serverless nicht verfügbar.

Kopieren und Wiederherstellen mit der Amazon-Redshift-Konsole

Konvertieren eines Wiederherstellungspunkts von Amazon Redshift Serverless in einen Snapshot im Quellkonto

  1. Öffnen Sie die Amazon-Redshift-Konsole.
  2. Wählen Sie im Navigationsbereich Redshift Serverless und dann Datensicherung aus.
  3. Wählen Sie unter Wiederherstellungspunkte die Erstellungszeit des Wiederherstellungspunkts aus, den Sie in einen Snapshot konvertieren möchten.
  4. Wählen Sie Snapshot vom Wiederherstellungspunkt erstellen aus.
  5. Geben Sie eine Snapshot-ID und einen Aufbewahrungszeitraum ein.
  6. Wählen Sie Erstellen aus.

Freigeben des Snapshots im Quellkonto für ein anderes AWS-Konto

  1. Öffnen Sie die Amazon-Redshift-Konsole.
  2. Wählen Sie im Navigationsbereich Redshift Serverless und dann Datensicherung aus.
  3. Wählen Sie den zuvor erstellten Snapshot aus.
  4. Wählen Sie Aktionen, Zugriff verwalten.
  5. Wählen Sie AWS-Konto hinzufügen unter Zugriff auf Serverless-Konten bereitstellen aus und geben Sie eine AWS-Konto-ID (Ziel) ein.
  6. Wählen Sie Änderungen speichern.

Wiederherstellung des Snapshots in einem Amazon-Redshift-Serverless-Namespace im Zielkonto

  1. Öffnen Sie die Amazon-Redshift-Konsole.
  2. Wählen Sie im Navigationsbereich Redshift Serverless und dann Datensicherung aus.
  3. Wählen Sie den Snapshot aus, der für die AWS-Konto-ID freigegeben ist, um ihn wiederherzustellen. Sie können jeweils nur einen Snapshot wiederherstellen.
  4. Wählen Sie Aktionen, Auf Serverless-Namespace wiederherstellen.
  5. Wählen Sie einen verfügbaren Namespace für die Wiederherstellung aus. Sie können nur Namespaces mit dem Status Verfügbar wiederherstellen.
  6. Wählen Sie Wiederherstellen.

Kopieren und Wiederherstellen mit der AWS-CLI

Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version des AWS CLI verwenden.

Konvertieren eines Wiederherstellungspunkts von Amazon Redshift Serverless in einen Snapshot im Quellkonto

1.    Verwenden Sie den Befehl list-recovery-points für eine Liste von Snapshots, die nach einer start-time erstellt wurden. Führen Sie den folgenden Befehl aus und ersetzen Sie namespacename durch Ihren Namespace, us-west-2 durch Ihre AWS-Region und starttime durch die Startzeit Ihres Wiederherstellungspunkts in UTC:

aws redshift-serverless list-recovery-points --namespace-name <namespacename> --region <region name> --start-time <starttime>

Im folgenden Beispiel befindet sich der Redshift-Serverless-Cluster in der Region USA West (Oregon) mit einem Namespace default und einer Startzeit von 06.09.2022T07:10 UTC:

aws redshift-serverless list-recovery-points --namespace-name default --region us-west-2 --start-time 2022-09-06T07:10

2.    Verwenden Sie den Befehl convert-recovery-point-to-snapshot, um einen Snapshot und eine Aufbewahrungsfrist zu erstellen. Führen Sie den folgenden Befehl aus und ersetzen Sie recoveryPointId durch die Ausgabe der Wiederherstellungspunkt-ID aus Schritt 1, days durch die Anzahl der Tage, für die der Snapshot aufbewahrt werden soll, snapshot name durch den Namen Ihres Snapshots und us-west-2 mit Ihrer AWS-Region:

aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id <recoveryPointId> --retention-period <days> --snapshot-name <snapshot name> --region <region name>

Im folgenden Beispiel trägt der Snapshot den Namen snapshot01 mit einer Aufbewahrungsfrist von drei Tagen und befindet sich in der Region USA West (Oregon).

aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id 72acee50-34df-45f6-865f-46aa178ada82 --retention-period 3 --snapshot-name snapshot01 --region us-west-2

3.    Verwenden Sie den Befehl get-snapshot, um zu bestätigen, dass der Snapshot erstellt wurde. Führen Sie den folgenden Befehl aus und ersetzen Sie snapshot name durch den Namen Ihres Snapshots:

aws redshift-serverless get-snapshot --snapshot-name <snapshot name>

Freigeben des Snapshots im Quellkonto für ein anderes AWS-Konto

Verwenden Sie den Befehl put-resource-policy, um einem anderen AWS-Konto Zugriff auf den Snapshot zu gewähren. Führen Sie den folgenden Befehl aus und ersetzen Sie destination account ID durch die AWS-Zielkonto-ID und snapshot arn durch den ARN des Snapshots:

aws redshift-serverless put-resource-policy --policy "{\"Version\": \"2012-10-17\", \"Statement\" : [{ \"Sid\": \"AllowUserRestoreFromSnapshot\", \"Principal\":{\"AWS\": [\”<destination account ID>\”]}, \"Action\": [\"redshift-serverless:RestoreFromSnapshot\"] , \"Effect\": \"Allow\" }]}" --resource-arn <snapshot arn>

Im folgenden Beispiel wird der Zugriff auf den Snapshot-ARN in der Kontonummer 123456789012 bereitgestellt:

aws redshift-serverless put-resource-policy --policy "{\"Version\": \"2012-10-17\", \"Statement\" : [{ \"Sid\": \"AllowUserRestoreFromSnapshot\", \"Principal\":{\"AWS\": [\"123456789012\"]}, \"Action\": [\"redshift-serverless:RestoreFromSnapshot\"] , \"Effect\": \"Allow\" }]}" --resource-arn arn:aws:redshift-serverless:us-west-2:112233445566:snapshot/4978ca91-24ba-4196-91ad-9d372f72b0fe

Wiederherstellung des Snapshots in einem Amazon-Redshift-Serverless-Namespace im Zielkonto

1.    Verwenden Sie den Befehl list-snapshots, um den Snapshot in Ihrer AWS-Region aufzulisten. Führen Sie den folgenden Befehl aus und ersetzen Sie us-west-2 durch Ihre AWS-Region:

aws redshift-serverless list-snapshots  --region us-west-2

2.    Verwenden Sie den Befehl restore-from-snapshot, um den Snapshot auf einem Amazon Redshift Serverless wiederherzustellen. Führen Sie den folgenden Befehl aus und ersetzen Sie snapshot name durch den Namen Ihres Snapshots, workgroup name durch den Namen Ihrer Arbeitsgruppe und snapshot arn durch den Snapshot-ARN aus dem vorherigen Befehl:

aws redshift-serverless  restore-from-snapshot --namespace-name <namespace name > --workgroup-name <workgroup name> --snapshot-arn <snapshot arn>

Im folgenden Beispiel weist die Konto-ID 112233445566 den Status Amazon Redshift Serverless im Status Verfügbar mit dem Namespace-Namen restore und dem Arbeitsgruppennamen restore auf:

aws redshift-serverless restore-from-snapshot --namespace-name restore --workgroup-name restore --snapshot-arn arn:aws:redshift-serverless:us-west-2:112233445566:snapshot/4978ca91-24ba-4196-91ad-9d372f72b0fe

War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?