Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
Wie behebe ich den Fehler „Create-failed“ oder „Permission denied“, der auftritt, wenn ich versuche, meinen ElastiCache-Cluster aus S3 wiederherzustellen?
Ich möchte den Fehler „Create-failed“ oder „Permission denied“ beheben, der auftritt, wenn ich versuche, meinen Amazon ElastiCache-Cluster von Amazon Simple Storage Service (Amazon S3) wiederherzustellen.
Kurzbeschreibung
Die folgenden Gründe sind häufig dafür verantwortlich, dass ein Backup für ein ElastiCache-Backup von Amazon S3 fehlschlägt:
- Sie haben versucht, ein Backup außerhalb der Backup-Einschränkungen wiederherzustellen.
- ElastiCache konnte die Datei nicht aus Amazon S3 abrufen.
- Die ElastiCache-Backup-Datei befindet sich in einem Amazon S3-Bucket in einer anderen AWS-Region.
- Sie stellen eine rdb-Datei, die mehrere Datenbanken enthält, in einem ElastiCache-Cluster wieder her, bei dem der Cluster-Modus aktiviert ist.
Behebung
Sie versuchen, ein Backup außerhalb der Backup-Einschränkungen wiederherzustellen
Wenn Sie ein ElastiCache for Redis-Backup wiederherstellen, stellen Sie sicher, dass Sie die Backup-Einschränkungen verstehen:
- Sie können aus einem Backup, das einen Redis-Cluster mit aktiviertem Cluster-Modus verwendet hat, nicht zu einem Redis-Cluster mit ausgeschaltetem Cluster-Modus wiederherstellen.
- Wenn Sie ein Backup aus einem ElastiCache-Cluster mit aktiviertem Cluster-Modus wiederherstellen, können Sie den Clustermodus in der ElastiCache-Konsole nicht deaktivieren. Die Option zum Einschalten des Cluster-Modus ist nur verfügbar.
- Wenn Sie ein Backup mit einem ElastiCache-Cluster, bei dem der Cluster-Modus aktiviert ist, nach Amazon S3 exportieren, werden mehrere rdb-Dateien erstellt. Wenn Sie das Backup von Amazon S3 mit einer Backup-rdb-Datei starten, werden nur die Schlüssel eines einzelnen Shards in den Cluster übertragen. Wenn Sie versuchen, dies mit einer Platzhalterdatei *rdb zu umgehen, wird der folgende Fehler angezeigt.
„Error: Object or bucket does not exist for S3 object: examplebucket/cluster-mode-enabled-*.rdb.“ - Sie können ein Backup nicht aus einem Cluster wiederherstellen, der Daten-Tiering verwendet. Beispielsweise können Sie einen r6gd-Knoten nicht in einem Cluster wiederherstellen, der kein Daten-Tiering verwendet.
- Sie können das Daten-Tiering-Backup nicht nach Amazon S3 exportieren. Außerdem können Sie ein ElastiCache-Daten-Tiering-Backup nicht aus Amazon S3 wiederherstellen. Weitere Informationen finden Sie unter Einschränkungen.
- Bei rdb-Dateien mit mehreren Datenbanken können Sie nicht von einem Redis-Cluster (Cluster-Modus ausgeschaltet) auf einen Redis-Cluster (Cluster-Modus aktiviert) wiederherstellen. Wenn Sie dies versuchen, wird der folgende Fehler angezeigt:
„Error: To restore a snapshot in cluster mode, all keys in the RDB file should reside in DB 0.“
ElastiCache konnte die Datei nicht aus Amazon S3 abrufen
Wenn ElastiCache nicht über die erforderlichen Berechtigungen für den Zugriff auf das ElastiCache-Backup verfügt, das im Amazon S3-Bucket gespeichert ist, wird der folgende Fehler angezeigt:
„Restore from snapshot failed for node group 0001 in replication group test. Failed to retrieve file from S3.“
Überprüfen Sie Ihre ElastiCache-Ereignisse, um das Problem mit den Berechtigungen zu bestätigen. Wenn Sie die Ursache des Fehlers identifiziert haben, überprüfen Sie, ob Ihre Region eine der folgenden ist:
- Eine Opt-in-Region
- China (Peking) und China (Ningxia)
- AWS GovCloud (US-West)
- Eine Standardregion
Für eine Opt-in-Region benötigen Sie eine Bucket-Richtlinie, die es ElastiCache ermöglicht, die Backup-Datei von Amazon S3 abzurufen.
Wenn sich Ihr Amazon S3-Bucket in einer der folgenden Regionen befindet, müssen Sie dem ElastiCache-Dienst Zugriff auf die Backup-Datei in S3 gewähren:
- China (Peking) und China (Ningxia)
- AWS GovCloud (US-West)
- Eine Standardregion
Hinweis: Die kanonische ID für die Regionen China (Peking), China (Ningxia) und AWS GovCloud (US-West) unterscheidet sich von den AWS-Standardregionen:
- China (Peking) und China (Ningxia) - b14d6a125bdf69854ed8ef2e71d8a20b7c490f252229b806e514966e490b8d83
- AWS GovCloud (Vereinigte Staaten von Amerika) - 40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6
- AWS-Standardregionen - 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
Wenn Sie ElastiCache mithilfe einer kanonischen ID oder Bucket-Richtlinie Zugriff auf das rdb-Backup-Objekt gewähren, stellen Sie den Redis-Cluster wieder her.
Die ElastiCache-Backup-Datei befindet sich in einem Amazon S3-Bucket in einer anderen Region
Wenn Sie versuchen, ein ElastiCache-Backup wiederherzustellen, das sich in einem Amazon S3-Bucket in einer anderen Region befindet, wird der folgende Fehler angezeigt:
„Permission denied to access S3 object. Please use the S3 object in the same region.“
Um diesen Fehler zu beheben, führen Sie die folgenden Schritte aus:
**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
-
Verwenden Sie den folgenden Befehl, um die rdb-Backup-Datei aus dem Amazon S3-Bucket zu kopieren. Stellen Sie sicher, dass der Bucket das Backup in der Region enthält, in der der Redis-Cluster wiederhergestellt wird. Weitere Informationen finden Sie unter Was sind bewährte Methoden für die Migration meines ElastiCache for Redis-Clusters?
Hinweis: Ersetzen Sie example-source-bucket, example-destination-bucket, example-backup, example-source-region und example destination-region durch die entsprechenden Namenswerte.
aws s3 cp s3://example-source-bucket/example-backup.rdb s3://example-destination-bucket/example-backup.rdb --acl bucket-owner-full-control --source-region example-source-region --region example-destination-region
-
Vergewissern Sie sich, dass der RDB-Backup-Datei die richtigen Berechtigungen zugewiesen sind (kanonische ID oder Bucket-Richtlinie).
-
Fahren Sie mit der Wiederherstellung des Clusters fort.
Sie stellen eine RDB-Datei, die mehrere Datenbanken enthält, in einem ElastiCache-Cluster wieder her, bei dem der Cluster-Modus aktiviert ist
Wenn Sie eine RDB-Datei, die mehrere Datenbanken enthält, in einem ElastiCache-Cluster mit aktiviertem Cluster-Modus wiederherstellen, wird der folgende Fehler angezeigt:
„Restore from snapshot failed for node group 0001 in replication group test. To restore a snapshot in cluster mode, all keys in the RDB file should reside in DB 0. Snapshot ID: arn:aws:s3:::example-bucket/multidb.rdb“
Überprüfen Sie Ihre ElastiCache-Ereignisse, um die Ursache des Wiederherstellungsfehlers zu überprüfen.
Um diesen Fehler zu beheben, führen Sie die folgenden Schritte aus:
- Stellen Sie sicher, dass alle Schlüssel in eine einzige Datenbank migriert werden. Weitere Informationen finden Sie unter Migrate auf der Redis-Website.
Hinweis: Wenn sich die Quelldatenbank auf ElastiCache Redis befindet, wird der Befehl migrate nicht unterstützt. Verwenden Sie andere Redis-Tools wie RIOT, um dieses Problem zu umgehen. Weitere Informationen finden Sie unter riot auf der Redis-Website. - Erstellen Sie ein lokales Backup Ihrer Redis-Datenbank.
- Laden Sie das Backup auf Amazon S3 hoch.
- Fahren Sie mit der Wiederherstellung in einem ElastiCache-Cluster (Cluster-Modus aktiviert) fort.

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Monaten
- AWS OFFICIALAktualisiert vor 4 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren