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. Wie behebe ich diese Fehler?

Kurzbeschreibung

Amazon S3 kann einen der folgenden 5xx-Statusfehler zurückgeben:

  • AmazonS3Exception: Interner Fehler (Dienst: Amazon S3; Statuscode: 500; Fehlercode: 500 Interner Fehler; Anforderungs-ID: A4DBBEXAMPLE2C4D)
  • AmazonS3Exception: Slow Down (Service: Amazon S3; Statuscode: 503; Fehlercode: 503 Slow Down; Anforderungs-ID: A4DBBEXAMPLE2C4D)

Der Fehlercode 500 Interner Fehler weist darauf hin, dass Amazon S3 die Anfrage zu diesem Zeitpunkt nicht bearbeiten kann. Der Fehlercode 503 Slow Down weist in der Regel darauf hin, dass die Anzahl der Anfragen an Ihren S3-Bucket sehr hoch ist. Sie können beispielsweise 3.500 PUT/COPY/POST/DELETE- oder 5.500 GET/HEAD-Anfragen pro Sekunde und Präfix in einem S3-Bucket senden. In einigen Fällen kann Amazon S3 jedoch eine 503 Slow-Down-Antwort zurückgeben, wenn Ihre Anfragen die für regionsübergreifendes Kopieren verfügbare Bandbreite überschreiten.

Da es sich bei Amazon S3 um einen verteilten Dienst handelt, ist bei normaler Nutzung des Dienstes mit einem sehr geringen Prozentsatz von 5xx-Fehlern zu rechnen. Alle Anfragen, die 5xx-Fehler von Amazon S3 zurückgeben, können wiederholt werden. Dies bedeutet, dass es eine bewährte Methode ist, einen Fehlertoleranzmechanismus zu haben oder eine Wiederholungslogik für alle Anwendungen zu implementieren, die Anfragen an Amazon S3 stellen. Auf diese Weise kann S3 diese Fehler beheben.

Um 5xx-Statusfehler zu beheben oder zu vermeiden, sollten Sie die folgenden Ansätze in Betracht ziehen:

  • Verwenden Sie in der Anwendung, die Anfragen 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: Amazon S3 weist nicht jedem neuen Präfix zusätzliche Ressourcen zu. Es skaliert automatisch auf der Grundlage von Anrufmustern. Wenn die Anforderungsrate steigt, optimiert Amazon S3 dynamisch für die neue Anforderungsrate.

Lösung

Verwenden Sie einen Wiederholungsmechanismus in der Anwendung, die Anfragen stellt

Aufgrund des verteilten Charakters von Amazon S3 können Anfragen, die 500 oder 503 Fehler zurückgeben, wiederholt werden. Es ist eine bewährte Methode, Wiederholungslogik in Anwendungen zu integrieren, die Anfragen an Amazon S3 stellen.

Alle AWS-SDKs verfügen über einen integrierten Wiederholungsmechanismus mit einem Algorithmus, der exponentiellen Backoff verwendet. Dieser Algorithmus implementiert immer längere Wartezeiten zwischen Wiederholungsversuchen für aufeinanderfolgende Fehlerantworten. Die meisten exponentiellen Backoff-Algorithmen verwenden Jitter (randomisierte Verzögerung), um aufeinanderfolgende Kollisionen zu verhindern. Weitere Informationen finden Sie unter Fehlerwiederholungsversuche und exponentielles Backoff in AWS.

Konfigurieren Sie Ihre Anwendung, um die Anforderungsraten schrittweise zu erhöhen

Um den Fehler 503 Slow Down zu vermeiden, konfigurieren Sie Ihre Anwendung so, dass sie mit einer niedrigeren Anforderungsrate (Transaktionen pro Sekunde) beginnt. Erhöhen Sie 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 in den Leistungsrichtlinien und Entwurfsmustern beschriebenen Anforderungsraten gelten pro Präfix in einem S3-Bucket. Um Ihren Bucket so einzurichten, dass er insgesamt höhere Anforderungsraten verarbeitet und 503-Slow Down-Fehler vermieden werden, können Sie Objekte auf mehrere Präfixe verteilen. Wenn Sie beispielsweise Ihren S3-Bucket zum Speichern von Bildern und Videos verwenden, können Sie die Dateien in zwei Präfixe verteilen, die den folgenden ähneln:

  • mybucket/images
  • mybucket/videos

Wenn die Anforderungsrate der Präfixe schrittweise ansteigt, skaliert Amazon S3, um Anfragen für jedes der beiden Präfixe zu bearbeiten. S3 wird auf 3.500 PUT/POST/DELETE- oder 5.500 GET-Anfragen pro Sekunde skaliert. Infolgedessen verdoppelt sich die Gesamtanforderungsrate, die vom Bucket verarbeitet wird.

Überwachen Sie die Anzahl der Antworten auf 5xx-Statusfehler

Um die Anzahl der Antworten auf 5xx-Statusfehler zu überwachen, die Sie erhalten, können Sie eine der folgenden Optionen verwenden:

Zusätzliche Problembehebung

Wenn Sie weiterhin eine hohe 5xx-Statusfehlerrate feststellen, wenden Sie sich an den AWS-Support. Fügen Sie die Amazon S3-Anforderungs-ID-Paare für die Anfragen ein, die mit einem 5xx-Statusfehlercode fehlgeschlagen sind.


Ähnliche Informationen

Problembehandlung bei Amazon S3

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr