Anleitungen zur Leistung von 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.

Anleitungen zur Leistung von 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 Leistungsdesignmuster.

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

Messen der Leistung

Betrachten Sie für die Optimierung der Leistung den Netzwerkdurchsatz sowie die CPU- und DRAM-Anforderungen. Je nach der Mischung der Anforderungen für diese verschiedenen Ressourcen kann es sinnvoll sein, verschiedene Amazon EC2-Instance-Typen zu erwägen. Weitere Informationen zu verfügbaren Instance-Typen finden Sie unter Verfügbare Instance-Typen im Amazon EC2-Benutzerhandbuch für Linux-Instances.

Weiterhin ist es für die Messung der Leistung sinnvoll, die DNS-Lookup-Zeit, die Latenz und die Datenübertragungsgeschwindigkeit mithilfe von HTTP-Analysetools zu untersuchen.

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 Amazon- CloudWatch Anforderungsmetriken für Amazon S3. Die CloudWatch Anforderungsmetriken enthalten eine Metrik für 5xx-Statusantworten. Weitere Informationen zu CloudWatch -Anforderungsmetriken finden Sie unter Überwachen von Metriken mit Amazon 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.

Durch die Überwachung der Anzahl der Statusfehlercodes HTTP 503 können Sie oft wertvolle Erkenntnisse darüber gewinnen, welche Präfixe, Schlüssel oder Buckets die meisten Drosselungsanforderungen erhalten.

Horizontale Skalierung von Speicherverbindungen

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 von Byte Range Fetches

Mit dem Range-HTTP-Header in einer GET-Object-Anfrage können Sie einen Bytebereich von einem Objekt abrufen, wobei nur der angegebene Teil übertragen wird. 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 für Objekte eine PUT-Aktion unter Verwendung eines mehrteiligen Uploads durchgeführt werden, ist es sinnvoll, die GET-Aktion mit denselben Teilgrößen (oder zumindest orientiert an den Teilgrenzen) durchzuführen, um eine optimale Leistung zu erzielen. GET-Anforderungen können sich direkt auf einzelne Teile richten, z. B., GET ?partNumber=N.

Wiederholungsanforderungen 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. Die AWS SDKs verfügen über konfigurierbare Timeout- und Wiederholungswerte, die Sie an die Toleranzen Ihrer spezifischen Anwendung anpassen können.

Kombinieren von Amazon S3 (Speicher) und Amazon EC2 (Datenverarbeitung) in derselben AWS-Region

Obwohl Namen von S3-Buckets global eindeutig sind, wird jeder Bucket in einer Region gespeichert, die Sie bei dessen Erstellung auswählen. Um die Leistung zu optimieren, empfehlen wir Ihnen, AWS-Region nach Möglichkeit von Amazon EC2-Instances in derselben aus auf den Bucket zuzugreifen. 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 von Amazon S3 Transfer Acceleration zur Minimierung der durch die Entfernung verursachten Latenz

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 global verteilten Edge-Standorte in 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 Amazon S3 Transfer Acceleration Speed Comparison Tool verwenden, um beschleunigte und nicht beschleunigte Upload-Geschwindigkeiten in allen 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.

Verwendung der neuesten Version der AWS -SDKs

Die AWS SDKs bieten integrierte Unterstützung für viele der empfohlenen Richtlinien zur Optimierung der Amazon S3-Leistung. Die SDKs bieten eine einfachere API zur Nutzung von Amazon S3 aus einer Anwendung heraus und werden regelmäßig nach bewährten Verfahren aktualisiert. Beispielsweise enthalten die SDKs Logik für die automatische Wiederholung von Anforderungen bei HTTP 503-Fehlern und investieren in Code zur Reaktion auf langsame Verbindungen.

Die SDKs bieten dazu den Transfer Manager, der die horizontale Skalierung von Verbindungen automatisiert, um, wo möglich mithilfe von Bytebereichanforderungen, Tausende von Anfragen pro Sekunde zu erreichen. Es ist wichtig, die neueste Version der - AWS SDKs zu verwenden, um die neuesten Funktionen zur Leistungsoptimierung zu erhalten.

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