Direkt zum Inhalt

Wie behebe ich einen HTTP 500- oder 503-Fehler von Amazon S3?

Lesedauer: 4 Minute
0

Wenn ich eine Anfrage an Amazon Simple Storage Service (Amazon S3) stelle, gibt Amazon S3 einen 5xx-Statusfehler zurück.

Kurzbeschreibung

Wenn du eine Anfrage an Amazon S3 stellst, erhältst du möglicherweise eine Fehlermeldung, die den folgenden Beispielen ähnelt:

  • "AmazonS3Exception: Internal Error (Service: Amazon S3; Status Code: 500; Error Code: 500 Internal Error; Request ID: A4DBBEXAMPLE2C4D)"
  • "AmazonS3Exception: Slow Down (Service: Amazon S3; Status Code: 503; Error Code: 503 Slow Down; Request ID: A4DBBEXAMPLE2C4D)"

Die Fehlermeldung "500 Internal Error" tritt auf, wenn Amazon S3 die Anfrage zu diesem Zeitpunkt nicht verwalten kann. Die Fehlermeldung "503 Slow Down" tritt normalerweise auf, wenn dein S3-Bucket eine hohe Anzahl von Anfragen erhält. Du kannst 3500 PUT/COPY/POST/DELETE- oder 5500 GET/HEAD-Anfragen pro Sekunde pro partitioniertem Amazon S3-Präfix senden. Amazon S3 sendet jedoch möglicherweise die Antwort "503 Slow Down", wenn deine Anfragen die Bandbreite überschreiten, die dir zum Kopieren in die AWS-Regionen zur Verfügung steht.

Gehe wie folgt vor, um 5xx-Statusfehler zu beheben oder zu vermeiden:

  • Verwende für die Anwendung, die die Anforderungen stellt, einen Wiederholungsmechanismus.
  • Konfigurieren Sie Ihre Anwendung, um die Anforderungsraten schrittweise zu erhöhen.
  • Verteilen Sie Objekte auf mehrere Präfixe.
  • Überwachen Sie die Anzahl der 5xx-Fehlerantworten.

Hinweis: Wenn du ein Präfix erstellst, weist Amazon S3 nicht automatisch zusätzliche Ressourcen für die unterstützte Anforderungsrate zu. Amazon S3 skaliert basierend auf Anforderungsmustern. Wenn die Anforderungsrate steigt, optimiert Amazon S3 dynamisch für die neue Anforderungsrate.

Behebung

Verwenden Sie einen Wiederholungsmechanismus

Aufgrund der verteilten Natur von Amazon S3 kannst du Anfragen, die 500 oder 503 Fehler zurückgeben, erneut versuchen. Es ist eine bewährte Methode, Wiederholungslogik in Anwendungen zu integrieren, die Anfragen an Amazon S3 stellen. AWS-SDKs verfügen über einen integrierten Wiederholungsmechanismus.

Hinweis: In einigen Szenarien können schnelle gleichzeitige Anfragen an denselben Schlüssel zu einer 503-Antwort führen. In diesen Szenarien empfiehlt es sich, fehlgeschlagene Anfragen erneut zu versuchen.

Konfiguriere deine Anwendung, um die Anforderungsraten schrittweise zu erhöhen

Eine hohe Anforderungsrate oder ein plötzlicher Anstieg der Anforderungsrate für ein Objekt kann zu der Fehlermeldung "503 Slow Down" führen. Konfiguriere deine Anwendung so, dass die Anforderungsrate beibehalten wird, und implementiere einen Wiederholungsversuch mit exponentiellem Backoff. Das exponentielle Backoff implementiert immer längere Wartezeiten zwischen Wiederholungsversuchen für aufeinanderfolgende Fehlerantworten. Diese Konfiguration gibt Amazon S3 Zeit, um die Anforderungsmuster zu überwachen und im Backend zu skalieren, um die Anforderungsrate zu verarbeiten.

Konfiguriere deine Anwendung zunächst so, dass sie mit einer niedrigeren Anforderungsrate für Transaktionen pro Sekunde beginnt. Erhöhe dann die Anforderungsrate der Anwendung exponentiell. Amazon S3 skaliert automatisch, um eine höhere Anforderungsrate zu bewältigen.

Objekte auf mehrere Präfixe verteilen

Die Anforderungsraten gelten pro Präfix in einem Amazon S3-Bucket. Um deinen Bucket so einzurichten, dass er höhere Anforderungsraten verwaltet, verteile Objekte auf mehrere Präfixe. Wenn du beispielsweise einen Bucket zum Speichern von Bildern und Videos verwendest, verteile die Dateien auf die folgenden zwei Präfixe:

  • mybucket/images
  • mybucket/videos

Wenn die Anforderungsrate für die Präfixe allmählich steigt, skaliert Amazon S3, um Anfragen für jedes Präfix separat zu verwalten. Dadurch kann der Bucket die doppelte Anforderungsrate verwalten.

Überwache die Anzahl der Antworten auf 5xx-Statusfehler

Verwende eine der folgenden Optionen, um die Anzahl der 5xx-Statusfehlerantworten zu überwachen, die du erhältst:

Weitere Probleme beheben

Wenn du die Express-Option verwendest, um archivierte Objekte abzurufen, wird möglicherweise eine der folgenden Fehlermeldungen angezeigt:

  • "GlacierExpeditedRetrievalNotAvailable"
  • "Glacier expedited retrievals are currently not available, please try again later"

Diese Probleme treten auf, wenn die Kapazität nicht ausreicht, um die Express-RestoreObject-Anfrage zu verarbeiten. In einer Zeit anhaltend hoher Nachfrage lehnt Amazon S3 möglicherweise beschleunigte Abrufanfragen ab und gibt eine 503-Fehlermeldung zurück. Verwende bereitgestellte Kapazitätseinheiten, um sicherzustellen, dass die Kapazität für beschleunigten Abruf bei Bedarf verfügbar ist. Du kannst für jede Einheit mindestens drei beschleunigte Abrufe alle 5 Minuten durchführen. Jede Einheit bietet einen Abrufdurchsatz von bis zu 150 Mbit/s. Du kannst auch die Abrufoptionen Standard oder Bulk verwenden.

Du kannst den Abruf erneut versuchen. Es kann jedoch immer noch zu Problemen kommen. Außer in Fällen extremer Nachfrage sind beschleunigte Abrufe ohne bereitgestellte Kapazität möglich. Aufgrund des ständigen Wandels und der hohen Nachfrage nach Verfügbarkeit für beschleunigten Abruf aus nicht bereitgestellten Kapazitäten gibt es kein SLA für beschleunigten Abruf.

Wenn du weiterhin eine hohe Anzahl von 5xx Statusfehlerraten erhältst, wende dich an den AWS-Support. Fügen Sie mehrere Amazon S3-Anforderungs-ID-Paare für Anfragen ein, die mit einem 5xx Status-Fehlercode fehlschlagen.

Ähnliche Informationen

S3 Storage Lens-Metriken zur Leistungsverbesserung verwenden

Metriken mit Amazon CloudWatch überwachen