Leistungsrichtlinien für Amazon S3 - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Leistungsrichtlinien für Amazon S3

Bei der Erstellung von Anwendungen, die Objekte zu Amazon S3 hochladen und davon abrufen, sollten Sie unsere bewährten Methoden befolgen, um die Leistung zu optimieren. Wir bieten auch detailliertere Leistungsentwurfsmuster für Amazon S3 .

Zur Erzielung der besten Leistung für Ihre Anwendung auf Amazon S3 empfehlen wir die folgenden Vorgehensweisen.

Messen der Leistung

Achten Sie bei der Leistungsoptimierung auf den Netzwerkdurchsatz und die DRAM Anforderungen. CPU Abhängig von der Mischung der Anforderungen an diese verschiedenen Ressourcen kann es sich lohnen, verschiedene EC2Amazon-Instance-Typen zu evaluieren. Weitere Informationen zu Instance-Typen finden Sie unter Instance-Typen im EC2Amazon-Benutzerhandbuch.

Es ist auch hilfreich, bei der Leistungsmessung die DNS Suchzeit, die Latenz und die Datenübertragungsgeschwindigkeit mithilfe von HTTP Analysetools zu berücksichtigen.

Um die Leistungsanforderungen zu verstehen und die Leistung Ihrer Anwendung zu optimieren, können Sie auch die 503-Fehlerantworten überwachen, die Sie erhalten. Die Überwachung bestimmter Leistungsmetriken kann mit zusätzlichen Kosten verbunden sein. Weitere Informationen finden Sie unter Amazon S3 – Preise.

Überwachen der Anzahl der Antworten auf 503 (Slow Down)-Statusfehler

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

  • Verwenden Sie CloudWatch Amazon-Anforderungsmetriken für Amazon S3. Die CloudWatch Anforderungsmetriken beinhalten eine Metrik für Antworten mit dem Status 5xx. Weitere Informationen zu CloudWatch Anforderungsmetriken finden Sie unterMetriken mit Amazon überwachen CloudWatch.

  • Verwenden Sie die Anzahl der 503 (Service Unavailable)-Fehler, die im Abschnitt „Erweiterte Metriken“ von Amazon S3 Storage Lens verfügbar ist. Weitere Informationen finden Sie unter Verwenden der Metriken von S3 Storage Lens zur Verbesserung der Leistung.

  • Verwenden Sie die Amazon-S3-Serverzugriffsprotokollierung. Mit der Serverzugriffsprotokollierung können Sie alle Anforderungen filtern und überprüfen, die 503 (Internal Error)-Antworten erhalten. Sie können auch Amazon Athena verwenden, um Protokolle zu analysieren. Weitere Informationen zu Server-Zugriffsprotokollen finden Sie unter Protokollieren von Anfragen mit Server-Zugriffsprotokollierung.

Wenn Sie die Anzahl der Statusfehlercodes HTTP 503 überwachen, können Sie häufig wertvolle Erkenntnisse darüber gewinnen, welche Präfixe, Schlüssel oder Buckets die Anfragen am stärksten einschränken.

Skalieren Sie Speicherverbindungen horizontal

Die Verteilung von Anfragen über zahlreiche Verbindungen ist ein übliches Designmuster für die horizontale Skalierung der Leistung. Wenn Sie hochleistungsfähige Anwendungen erstellen, stellen Sie sich Amazon S3 als sehr großes verteiltes System vor, nicht als einen einzelnen Netzwerkendpunkt wie ein herkömmlicher Speicherserver. Sie erreichen die beste Leistung durch die Ausgabe mehrerer gleichzeitiger Anfragen an Amazon S3. Verteilen Sie diese Anfragen über separate Verbindungen, um die von Amazon S3 aus zugängliche Bandbreite zu maximieren. Amazon S3 hat keine Beschränkungen für die Anzahl der Verbindungen, die mit Ihrem Bucket hergestellt werden.

Verwenden Sie Abrufe im Bytebereich

Mithilfe des Range HTTP Headers in einer GETObjektanforderung können Sie einen Bytebereich aus einem Objekt abrufen und dabei nur den angegebenen Teil übertragen. Sie können gleichzeitige Verbindungen zu Amazon S3 verwenden, um verschiedene Bytebereiche aus demselben Objekt abzurufen. Dies hilft beim Erreichen eines höheren aggregierten Durchsatzes als bei einer einzelnen Anforderung eines ganzen Objekts. Der Abruf kleinerer Bereiche eines größeren Objekts ermöglicht Ihrer Anwendung auch die Verbesserung der Zeiten für Wiederholungsversuche, wenn Anforderungen unterbrochen werden. Weitere Informationen finden Sie unter Herunterladen von Objekten.

Typische Größen für Bytebereichanforderungen sind 8 oder 16 MB. Wenn Objekte einen mehrteiligen Upload PUT verwenden, empfiehlt es sich, GET sie in den gleichen Teilgrößen zu speichern (oder sie zumindest an den Teilgrenzen auszurichten), um eine optimale Leistung zu erzielen. GETAnfragen können sich direkt auf einzelne Teile beziehen, zum Beispiel GET ?partNumber=N.

Wiederholung von Anforderungen für latzenzsensitive Anwendungen

Aggressive Timeouts und Wiederholungsversuche sorgen für konsistente Latenz. Aufgrund des Umfangs von Amazon S3 gilt: Wenn die erste Anforderung langsam ist, nimmt eine alte Anfrage wahrscheinlich einen anderen Pfad und ist schnell erfolgreich. Sie AWS SDKs verfügen über konfigurierbare Werte für Timeout und Wiederholungsversuche, die Sie an die Toleranzen Ihrer spezifischen Anwendung anpassen können.

Kombinieren Sie Amazon S3 (Storage) und Amazon EC2 (Compute) in einem AWS-Region

Obwohl Namen von S3-Buckets global eindeutig sind, wird jeder Bucket in einer Region gespeichert, die Sie bei dessen Erstellung auswählen. Weitere Informationen zu den Richtlinien für die Benennung von Buckets finden Sie unter Übersicht über Buckets und Regeln zur Benennung von Buckets. Um die Leistung zu optimieren, empfehlen wir, dass Sie nach Möglichkeit auf dieselbe AWS-Region Weise von EC2 Amazon-Instances aus auf den Bucket zugreifen. Dies hilft bei der Reduzierung der Netzwerklatenz und der Datenübertragungskosten.

Weitere Informationen zu den Kosten von Datenübertragungen finden Sie unter Amazon S3 – Preise.

Verwenden Sie Amazon S3 Transfer Acceleration, um die durch Entfernung verursachte Latenz zu minimieren

Konfigurieren schneller, sicherer Dateiübertragungen mit Amazon S3 Transfer Acceleration ermöglicht die schnelle, einfache und sichere Übertragung von Dateien über größere Entfernungen zwischen Ihrem Client und einem S3-Bucket. Transfer Acceleration nutzt die weltweit verteilten Edge-Standorte von Amazon CloudFront. Sobald die Daten an einem Edge-Standort eingehen, werden sie über einen optimierten Netzwerkpfad an Amazon S3 weitergeleitet. Transfer Acceleration ist ideal für die regelmäßige Übertragung von Daten im Gigabyte- bis Terabyte-Bereich von Kontinent zu Kontinent geeignet. Die Funktion ist auch für Kunden nützlich, die Uploads in einen zentralen Bucket aus der ganzen Welt vornehmen.

Sie können das Vergleichstool Amazon S3 Transfer Acceleration Speed verwenden, um beschleunigte und nicht beschleunigte Upload-Geschwindigkeiten in Amazon S3-Regionen zu vergleichen. Das Speed Comparison-Tool verwendet mehrteilige Uploads, um eine Datei von Ihrem Browser in verschiedene Amazon S3-Regionen mit und ohne Amazon S3 Transfer Acceleration zu übertragen.

Verwenden Sie die neueste Version von AWS SDKs

AWS SDKsSie bieten integrierte Unterstützung für viele der empfohlenen Richtlinien zur Optimierung der Amazon S3 S3-Leistung. SDKsSie bieten eine API einfachere Nutzung der Vorteile von Amazon S3 innerhalb einer Anwendung und werden regelmäßig aktualisiert, um den neuesten Best Practices zu entsprechen. Sie SDKs enthalten beispielsweise eine Logik, mit der Anfragen bei HTTP 503-Fehlern automatisch wiederholt werden, und investieren in Code, um auf langsame Verbindungen zu reagieren und sich an diese anzupassen.

Sie bieten SDKs auch den Transfer Manager, der die horizontale Skalierung von Verbindungen automatisiert, um Tausende von Anfragen pro Sekunde zu erreichen, wobei gegebenenfalls Anfragen im Bytebereich verwendet werden. Es ist wichtig, die neueste Version von zu verwenden, AWS SDKs um die neuesten Funktionen zur Leistungsoptimierung zu erhalten.

Sie können die Leistung auch optimieren, wenn Sie HTTP REST API Anfragen verwenden. Bei der REST API Verwendung von sollten Sie dieselben bewährten Methoden befolgen, die Teil von sindSDKs. Lassen Sie bei langsamen Anforderungen Timeouts und Wiederholungsversuche zu, sowie mehrere Verbindung, um den parallelen Abruf von Objektdaten zu ermöglichen. Informationen zur Verwendung von finden Sie in der Amazon Simple Storage Service API Reference. REST API