

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.

# Bewährte Methoden für Designmuster: Optimieren der Leistung von Amazon S3
<a name="optimizing-performance"></a>

Ihre Anwendungen erreichen schnell Tausende von Transaktionen pro Sekunde bei der Anfrageleistung, wenn Speicherinhalte zu Amazon S3 hochgeladen oder von dort abgerufen werden. Amazon S3 wird automatisch auf hohe Anfrageraten skaliert. Ihre Anwendung kann beispielsweise mindestens 3.500 PUT/COPY/POST/DELETE or 5,500 GET/HEAD Anfragen pro Sekunde pro partitioniertem Amazon S3 S3-Präfix erreichen. Es gibt keine Einschränkungen für die Anzahl der Präfixe in einem Bucket. Sie können Ihre Lese- und Schreibleistung steigern, indem Sie Parallelisierung durchführen. Wenn Sie beispielsweise 10 Präfixe in einem Amazon-S3-Bucket für parallele Lesevorgänge einrichten, können Sie damit die Leseleistung auf 55 000 Leseanfragen pro Sekunde skalieren. Auf ähnliche Weise können Sie Schreibvorgänge skalieren, indem Sie auf mehrere Präfixe schreiben. Die Skalierung erfolgt sowohl bei Lese- als auch bei Schreibvorgängen schrittweise und nicht sofort, und die tatsächliche Leistung hängt von den spezifischen Merkmalen Ihres Workloads, Ihren Nutzungsmustern und Ihrer Systemkonfiguration ab. Während Amazon S3 auf Ihre neue höhere Anforderungsrate skaliert, können einige 503 (Slow Down)-Fehler auftreten. Diese Fehler werden nicht mehr angezeigt, sobald die Skalierung abgeschlossen ist. Weitere Informationen zum Erstellen und Verwenden von Präfixen finden Sie unter [Organisieren von Objekten mit Präfixen](using-prefixes.md).

So prüfen etwa manche Data-Lake-Anwendungen in Amazon S3 Millionen oder Milliarden von Objekten auf Anfragen, die über Petabytes von Daten ausgeführt werden. Diese Data-Lake-Anwendungen erzielen Single-Instance-Übertragungsraten, die die Netzwerkschnittstellennutzung für ihre [Amazon EC2 EC2-Instance](https://docs.aws.amazon.com/ec2/index.html) maximieren, die bei einer einzelnen Instance bis Gb/s zu 100 betragen kann. Anschließend aggregieren diese Anwendungen den Durchsatz über mehrere Instances hinweg, um mehrere Terabit pro Sekunde zu erreichen. 

Andere Anwendungen sind latenzempfindlich, wie etwa Social-Media-Messaginganwendungen. Diese Anwendungen können konsistente Latenzen für kleine Objekte (und first-byte-out Latenzen für größere Objekte) von etwa 100 bis 200 Millisekunden erreichen.

Andere AWS Services können ebenfalls dazu beitragen, die Leistung verschiedener Anwendungsarchitekturen zu beschleunigen. Wenn Sie beispielsweise höhere Übertragungsraten über eine einzelne HTTP-Verbindung oder Latenzen im einstelligen Millisekundenbereich wünschen, verwenden Sie [Amazon CloudFront oder Amazon](https://docs.aws.amazon.com/cloudfront/index.html) ElastiCache für das Caching mit [Amazon S3](https://docs.aws.amazon.com/elasticache/index.html).

Und wenn Sie eine schnelle Datenübertragung über große Distanzen zwischen einem Client und einem S3-Bucket wünschen, verwenden Sie [Konfigurieren schneller, sicherer Dateiübertragungen mit Amazon S3 Transfer Acceleration](transfer-acceleration.md). Transfer Acceleration nutzt die global verteilten Edge-Standorte, um den Datentransport über geografische CloudFront Entfernungen zu beschleunigen. Wenn Ihr Amazon S3 S3-Workload serverseitige Verschlüsselung mit verwendet AWS KMS, finden Sie unter [AWS KMS Limits](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) im AWS Key Management Service Developer Guide Informationen zu den für Ihren Anwendungsfall unterstützten Anforderungsraten. 

Die folgenden Themen beschreiben bewährte Verfahren und Designmuster zur Optimierung der Leistung von Anwendungen, die Amazon S3 verwenden. Die neuesten Informationen zur Leistungsoptimierung für Amazon S3 finden Sie unter [Anleitungen zur Leistung von Amazon S3](optimizing-performance-guidelines.md) und [Leistungsdesignmuster für Amazon S3](optimizing-performance-design-patterns.md). 

**Anmerkung**  
Weitere Informationen zur Verwendung der Speicherklasse Amazon S3 Express One Zone mit Verzeichnis-Buckets finden Sie unter [S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone) und [Arbeiten mit Verzeichnis-Buckets](directory-buckets-overview.md).

**Topics**
+ [Anleitungen zur Leistung von Amazon S3](optimizing-performance-guidelines.md)
+ [Leistungsdesignmuster für Amazon S3](optimizing-performance-design-patterns.md)

  


# Anleitungen zur Leistung von Amazon S3
<a name="optimizing-performance-guidelines"></a>

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 für Amazon S3 ](optimizing-performance-design-patterns.md). 

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

**Topics**
+ [

## Messen der Leistung
](#optimizing-performance-guidelines-measure)
+ [

## Horizontale Skalierung von Speicherverbindungen
](#optimizing-performance-guidelines-scale)
+ [

## Verwenden von Bytebereichsabrufen
](#optimizing-performance-guidelines-get-range)
+ [

## Wiederholung von Anforderungen für latzenzsensitive Anwendungen
](#optimizing-performance-guidelines-retry)
+ [

## Kombinieren Sie Amazon S3 (Speicher) und Amazon EC2 (Datenverarbeitung) in einem AWS-Region
](#optimizing-performance-guidelines-combine)
+ [

## Verwenden von Amazon S3 Transfer Acceleration zur Minimierung der durch die Entfernung verursachten Latenz
](#optimizing-performance-guidelines-acceleration)
+ [

## Verwenden Sie die neueste Version von AWS SDKs
](#optimizing-performance-guidelines-sdk)

## Messen der Leistung
<a name="optimizing-performance-guidelines-measure"></a>

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](https://docs.aws.amazon.com/ec2/index.html)-Instance-Typen zu erwägen. Weitere Informationen zu Instance-Typen finden Sie unter [Instance-Typen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) im *Amazon-EC2-Benutzerhandbuch*. 

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](https://aws.amazon.com/s3/pricing/). 

### Überwachen der Anzahl der Antworten auf 503 (Slow Down)-Statusfehler
<a name="optimizing-performance-guidelines-measure-503"></a>

 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 unter [Metriken mit Amazon überwachen CloudWatch](cloudwatch-monitoring.md).
+ 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](storage-lens-detailed-status-code.md).
+ 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](ServerLogs.md).

 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
<a name="optimizing-performance-guidelines-scale"></a>

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 Bytebereichsabrufen
<a name="optimizing-performance-guidelines-get-range"></a>

Mit dem `Range`-HTTP-Header in einer [GET-Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)-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](download-objects.md).

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.`

## Wiederholung von Anforderungen für latzenzsensitive Anwendungen
<a name="optimizing-performance-guidelines-retry"></a>

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 (Speicher) und Amazon EC2 (Datenverarbeitung) in einem AWS-Region
<a name="optimizing-performance-guidelines-combine"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) und [Regeln zur Benennung von Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). Um die Leistung zu optimieren, empfehlen wir, dass Sie nach Möglichkeit auf dieselbe AWS-Region Weise von Amazon EC2 EC2-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](https://aws.amazon.com/s3/pricing/).

## Verwenden von Amazon S3 Transfer Acceleration zur Minimierung der durch die Entfernung verursachten Latenz
<a name="optimizing-performance-guidelines-acceleration"></a>

[Konfigurieren schneller, sicherer Dateiübertragungen mit Amazon S3 Transfer Acceleration](transfer-acceleration.md) 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](https://docs.aws.amazon.com/cloudfront/index.html). 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](https://s3-accelerate-speedtest.s3-accelerate.amazonaws.com/en/accelerate-speed-comparsion.html) 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.

## Verwenden Sie die neueste Version von AWS SDKs
<a name="optimizing-performance-guidelines-sdk"></a>

 AWS SDKs Sie bieten integrierte Unterstützung für viele der empfohlenen Richtlinien zur Optimierung der Amazon S3 S3-Leistung. SDKs Sie bieten eine einfachere API für die 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 zur automatischen Wiederholung von Anfragen bei HTTP-503-Fehlern und investieren in Code, um auf langsame Verbindungen zu reagieren und sich an diese anzupassen. 

Sie bieten SDKs auch den [Transfer Manager](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/examples-s3-transfermanager.html), 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 auch die Leistung optimieren, wenn Sie HTTP REST-API-Anforderungen verwenden. Wenn Sie die REST-API verwenden, sollten Sie dieselben bewährten Methoden befolgen, die Teil von sind SDKs. 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](https://docs.aws.amazon.com/AmazonS3/latest/API/).

# Leistungsdesignmuster für Amazon S3
<a name="optimizing-performance-design-patterns"></a>

Beim Entwurf von Anwendungen zum Upload und Abruf von Objekten von Amazon S3 sollten Sie unsere bewährten Designmuster verwenden, um eine optimale Leistung für Ihre Anwendung zu erzielen. Dazu bieten wir Ihnen [Anleitungen zur Leistung von Amazon S3 ](optimizing-performance-guidelines.md) für Überlegungen zur Planung Ihrer Anwendungsarchitektur an.

Zur Optimierung der Leistung können Sie die folgenden Designmuster verwenden.

**Topics**
+ [

## Verwendung von Caching für Inhalte mit häufigen Zugriffen
](#optimizing-performance-caching)
+ [

## Timeouts und Wiederholungsversuche für latzenzsensitive Anwendungen
](#optimizing-performance-timeouts-retries)
+ [

## Horizontale Skalierung und Anforderungsparallelisierung für hohen Durchsatz
](#optimizing-performance-parallelization)
+ [

## Verwenden von Amazon S3 Transfer Acceleration zur Beschleunigung geographisch disparater Datenübertragungen
](#optimizing-performance-acceleration)
+ [

## Optimierung für Workloads mit hoher Anforderungsrate
](#optimizing-performance-high-request-rate)

## Verwendung von Caching für Inhalte mit häufigen Zugriffen
<a name="optimizing-performance-caching"></a>

Viele Anwendungen, die Daten in Amazon S3 speichern, stellen einen "Arbeitssatz" von Daten bereit, die wiederholt von Benutzern angefordert werden. Wenn ein Workload wiederholte GET-Anfragen für eine gemeinsame Gruppe von Objekten sendet, können Sie einen Cache wie [Amazon CloudFront, [Amazon](https://docs.aws.amazon.com/elasticache/index.html)](https://docs.aws.amazon.com/cloudfront/index.html) oder verwenden ElastiCache, um die Leistung [AWS Elemental MediaStore](https://docs.aws.amazon.com/mediastore/index.html)zu optimieren. Die erfolgreiche Cache-Nutzung kann zu niedriger Latenz und zu hohen Datenübertragungsraten führen. Anwendungen, die die Zwischenspeicherung verwenden, senden auch weniger direkte Anforderungen an Amazon S3, was zur Senkung der Anfragekosten beitragen kann.

Amazon CloudFront ist ein schnelles Content Delivery Network (CDN), das Daten aus Amazon S3 in einer Vielzahl von geografisch verteilten Präsenzpunkten () transparent zwischenspeichert. PoPs Wenn auf Objekte aus mehreren Regionen oder über das Internet zugegriffen werden kann, CloudFront können Daten in der Nähe der Benutzer zwischengespeichert werden, die auf die Objekte zugreifen. Dies kann zu hoher Leistung bei der Bereitstellung beliebter Amazon S3-Inhalte führen. Informationen dazu CloudFront finden Sie im [Amazon CloudFront Developer Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/).

Amazon ElastiCache ist ein verwalteter In-Memory-Cache. Mit ElastiCache können Sie Amazon EC2 EC2-Instances bereitstellen, die Objekte im Speicher zwischenspeichern. Dieses Caching führt zur Reduzierung der GET-Latenz im Bereich mehrerer Größenordnungen und zu einer erheblichen Zunahme des Downloaddurchsatzes. Um dies zu verwenden ElastiCache, ändern Sie die Anwendungslogik so, dass sowohl der Cache mit Hot-Objekten gefüllt wird als auch der Cache auf Hot-Objekte überprüft wird, bevor Sie sie von Amazon S3 anfordern. Beispiele für die Verwendung ElastiCache zur Verbesserung der Amazon S3-GET-Leistung finden Sie im Blogbeitrag [Turbocharge Amazon S3 with Amazon ElastiCache for Redis](https://aws.amazon.com/blogs/storage/turbocharge-amazon-s3-with-amazon-elasticache-for-redis/).

AWS Elemental MediaStore ist ein Caching- und Inhaltsverteilungssystem, das speziell für Video-Workflows und Medienbereitstellung von Amazon S3 entwickelt wurde. MediaStore bietet end-to-end Speicher APIs speziell für Videos und wird für leistungsabhängige Video-Workloads empfohlen. [Weitere Informationen dazu MediaStore finden Sie im AWS Elemental MediaStore Benutzerhandbuch.](https://docs.aws.amazon.com/mediastore/latest/ug/) 

## Timeouts und Wiederholungsversuche für latzenzsensitive Anwendungen
<a name="optimizing-performance-timeouts-retries"></a>

Es gibt bestimmte Situationen, in denen eine Anwendung eine Antwort von Amazon S3 erhält, die darauf hinweist, dass ein Wiederholungsversuch erforderlich ist. Amazon S3 ordnet Bucket- und Objektnamen den damit verbundenen Objektdaten zu. Wenn eine Anwendung hohe Anforderungsraten generiert (typischerweise dauerhaft über 5.000 Anforderungen pro Sekunde für eine kleine Zahl von Objekten), erhält sie möglicherweise HTTP 503 *Slowdown*-Antworten. Wenn solche Fehler auftreten, implementiert jedes AWS -SDK eine automatische Wiederholungsversuch-Logik mit exponentiellem Backoff. Wenn Sie kein AWS -SDK verwenden, sollten Sie eine Wiederholungsversuch-Logik implementieren, wenn Sie den HTTP-Fehler 503 erhalten. Informationen zu Back-Off-Techniken finden Sie unter [Verhalten bei Wiederholungsversuchen](https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html) im Referenzhandbuch *AWS SDKs und im Tools-Referenzhandbuch.*

Amazon S3 wird automatisch in Reaktion auf andauernde neue Anforderungsraten skaliert und optimiert so die Leistung in dynamischer Weise. Während Amazon S3 Optimierungen für eine neue Anforderungsrate durchführt, erhalten Sie temporär HTTP 503-Anforderungsantworten, bis die Optimierung abgeschlossen ist. Nachdem Amazon S3 die Leistung intern für die neue Anfragerate optimiert hat, werden alle Anfragen generell ohne Wiederholungsversuche bereitgestellt. 

Für latenzsensitive Anwendungen empfiehlt Amazon S3 Nachverfolgung und aggressive Wiederholungsversuche bei langsameren Vorgängen. Wenn Sie eine Anfrage wiederholen, empfehlen wir die Verwendung einer neuen Verbindung mit Amazon S3 und die Durchführung eines neuen DNS-Lookup-Vorgangs. 

Wenn Sie sehr große Anforderungen unterschiedlicher Größe (beispielsweise mit mehr als 128 MB) durchführen, sollten Sie den erreichten Durchsatz nachverfolgen und für die langsamsten 5 Prozent der Anforderungen Wiederholungsversuche durchführen. Wenn Sie kleinere Anforderungen (etwa unter 512 KB) durchführen, bei denen die mittleren Latenzen oft im zweistelligen Millisekundenbereich liegen, ist es sinnvoll, nach zwei Sekunden eine GET- oder PUT-Operation zu wiederholen. Wenn weitere Wiederholungsversuche erforderlich sind, ist ein Backoff die beste Lösung. So empfehlen wir beispielsweise die Ausgabe eines Wiederholungsversuchs nach zwei Sekunden und eines zweiten Versuchs nach weiteren vier Sekunden.

Wenn Ihre Anwendung Anfragen mit fester Größe an Amazon S3 sendet, sollten Sie konsistentere Reaktionszeiten für diese einzelnen Anfragen erwarten. In diesem Fall ist es eine einfache Strategie, das langsamste Prozent der Anforderungen zu identifizieren und diese zu wiederholen. Selbst ein einziger Wiederholungsversuch ist oft erfolgreich für die Reduzierung der Latenz.

Wenn Sie AWS Key Management Service (AWS KMS) für die serverseitige Verschlüsselung verwenden, finden Sie unter [Kontingente](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) im *AWS Key Management Service Entwicklerhandbuch* Informationen zu den Anforderungsraten, die für Ihren Anwendungsfall unterstützt werden.

## Horizontale Skalierung und Anforderungsparallelisierung für hohen Durchsatz
<a name="optimizing-performance-parallelization"></a>

Amazon S3 ist ein sehr großes verteiltes System. Um diese Größe zu nutzen, sollten Sie parallele Anforderungen horizontal zu den Amazon S3-Service-Endpunkten skalieren. Zusätzlich zur Verteilung der Anforderungen in Amazon S3 hilft dieses Skalierungskonzept dabei, die Last über mehrere Pfade im Netzwerk zu verteilen.

Für Übertragungen mit hohem Durchsatz empfiehlt Amazon S3 die Verwendung von Anwendungen mit mehreren Verbindungen für die parallele Ausführung von GET- und PUT-Aktionen. Dies wird beispielsweise von [Amazon S3 Transfer Manager](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/transfer-manager.html) im AWS Java SDK unterstützt, und die meisten anderen AWS SDKs bieten ähnliche Konstrukte. Für manche Anwendungen können Sie parallele Verbindungen dadurch erreichen, dass Sie Anforderungen gleichzeitig in verschiedenen Anwendungs-Threads oder in verschiedenen Anwendungs-Instances starten. Das beste Konzept hängt von Ihrer Anwendung und der Struktur der Objekte ab, auf die Sie zugreifen.

Sie können das verwenden AWS SDKs , um GET- und PUT-Anfragen direkt zu stellen, anstatt die Verwaltung von Übertragungen im AWS SDK zu verwenden. Dieses Konzept ermöglicht die direktere Abstimmung Ihrer Workloads, bei gleichzeitiger Nutzung des SDK-Supports für Wiederholungsversuche und den Umgang mit eventuell auftretenden HTTP 503-Antworten. In der Regel empfehlen wir, beim Herunterladen großer Objekte von Amazon S3 gleichzeitige Anfragen zu stellen, um den Netzwerkdurchsatz zu maximieren und die Download-Leistung zu optimieren. Sie können dies erreichen, indem Sie entweder bestimmte Bytebereiche des Objekts anfordern oder einzelne Teile eines mehrteiligen Objekts gleichzeitig herunterladen. Dieser parallel Download-Ansatz hilft dabei, die Kapazität Ihrer Netzwerkschnittstellenkarte (NIC) voll auszuschöpfen. Für Objekte, die mithilfe eines mehrteiligen Uploads hochgeladen wurden, empfehlen wir, sie mit denselben Bauteilgrößen herunterzuladen oder Anfragen an den ursprünglichen Bauteilgrenzen auszurichten, um eine optimale Leistung zu erzielen. Diese Methode des gleichzeitigen Herunterladens bietet einen höheren Gesamtdurchsatz als Anfragen für einzelne ganze Objekte.

Die Messung der Leistung ist wichtig für die Einstellung der Anzahl der gleichzeitig auszugebenden Anforderungen. Wir empfehlen, mit jeweils einer einzigen Anforderung zu beginnen. Messen Sie die erreichte Netzwerkbandbreite und die Nutzung weiterer Ressourcen durch Ihre Anwendung bei der Verarbeitung der Daten. Sie können dann die Engpassressource (die Ressource mit der höchsten Nutzung) identifizieren und so die Anzahl der Anforderungen ermitteln, die wahrscheinlich nützlich waren. z. B.: Wenn die Verarbeitung einzelner Anforderungen zu einer CPU-Nutzung von 25 Prozent führt, zeigt dies an, dass bis zu vier gleichzeitige Anforderungen möglich sind. Messungen sind sehr wichtig, und es lohnt sich, die Ressourcennutzung zu ermitteln, wenn die Anforderungsrate erhöht wird. 

Wenn ihre Anwendung Anforderungen direkt an Amazon S3 mit der REST-API ausgibt, sollten Sie einen Pool von HTTP-Verbindungen verwenden und jede Verbindung für eine Serie von Anforderungen wiederverwenden. Die Vermeidung der Einrichtung von Verbindungen für jede Anforderung macht TCP-Slow-Starts und Secure Sockets Layer (SSL)-Handshakes bei jeder Anforderung überflüssig. Informationen zur Verwendung der REST-API finden Sie in der [Amazon Simple Storage Service API-Referenz](https://docs.aws.amazon.com/AmazonS3/latest/API/).

Schließlich ist es auch sinnvoll, auf den DNS zu achten und genau zu prüfen, ob Anfragen über einen großen Pool von Amazon S3-IP-Adressen verteilt werden. DNS-Anforderungen für Amazon S3 durchlaufen eine lange Liste von IP-Endpunkten. Das Caching von Resolvern oder Anwendungscode, der eine einzelne IP-Adresse wiederverwendet, profitiert nicht von der Adressendiversität und dem daraus resultierenden Lastenausgleich. Network Utility-Tools wie das `netstat`-Befehlszeilentool können die IP-Adressen anzeigen, die für die Kommunikation mit Amazon S3 verwendet werden, und wir bieten Anleitungen zu den zu verwendenden DNS-Konfigurationen. Weitere Informationen zu diesen Richtlinien finden Sie unter [Senden von Anforderungen](https://docs.aws.amazon.com/AmazonS3/latest/API/MakingRequests.html) in der *Amazon-S3-API-Referenz*.

## Verwenden von Amazon S3 Transfer Acceleration zur Beschleunigung geographisch disparater Datenübertragungen
<a name="optimizing-performance-acceleration"></a>

[Konfigurieren schneller, sicherer Dateiübertragungen mit Amazon S3 Transfer Acceleration](transfer-acceleration.md) ist effektiv bei der Minimierung oder Beseitigung der durch geographische Entfernung zwischen global verteilten Clients und einer regionalen Anwendung mit Amazon S3 verursachten Latenz. Transfer Acceleration verwendet die global verteilten Edge-Standorte CloudFront für den Datentransport. Das AWS Edge-Netzwerk verfügt über Präsenzpunkte an mehr als 50 Standorten. Heute wird es verwendet, um Inhalte über [Amazon Route 53](https://docs.aws.amazon.com/route53/index.html) zu verteilen CloudFront und schnelle Antworten auf DNS-Anfragen zu geben. 

Dazu hilft das Edge-Netzwerk bei der Beschleunigung von Datenübertragungen zu und aus Amazon S3. Es ist ideal für Anwendungen, die Daten über oder zwischen Kontinenten übertragen, eine schnelle Internetverbindung nutzen, große Objekte verwenden oder zahlreiche Inhalte hochladen müssen. Sobald die Daten an einem Edge-Standort eingehen, werden sie über einen optimierten Netzwerkpfad an Ihren Amazon S3-Bucket weitergeleitet. Allgemein gilt: Je weiter Sie von einer Amazon S3-Region entfernt sind, um so größer ist die Geschwindigkeits-Verbesserung, die Sie von Transfer Acceleration erwarten können. 

Sie können Transfer Acceleration auf neuen oder bestehenden Buckets einrichten. Sie können einen separaten Amazon S3 Transfer Acceleration Acceleration-Endpunkt verwenden, um die AWS Edge-Standorte zu verwenden. Die beste Möglichkeit zur Prüfung, ob Transfer Acceleration die Client-Anfrageleistung erhöht, ist die Verwendung des [Amazon S3-Transfer-Acceleration-Speed-Comparison-Tools](https://s3-accelerate-speedtest.s3-accelerate.amazonaws.com/en/accelerate-speed-comparsion.html). Netzwerkkonfigurationen und Bedingungen variieren von zeit zu Zeit und von Standort zu Standort. Sie werden daher nur für Übertragungen belastet, bei denen Amazon S3 Transfer Acceleration Ihre Upload-Leistung potentiell verbessern kann. Informationen zur Verwendung von Transfer Acceleration mit anderen AWS SDKs finden Sie unter[Aktivieren und Verwenden von S3 Transfer Acceleration](transfer-acceleration-examples.md). 

## Optimierung für Workloads mit hoher Anforderungsrate
<a name="optimizing-performance-high-request-rate"></a>

Anwendungen, die hohe Anforderungsraten an Amazon S3 generieren, erfordern spezielle Entwurfsmuster, um eine optimale Leistung zu erzielen. Wenn Ihre Anwendung konsistent mehr als 3.500 PUT/COPY/POST/DELETE or 5,500 GET/HEAD Anfragen pro Sekunde und Präfix generiert, sollten Sie Strategien zur Verteilung von Anfragen und zur Handhabung des Skalierungsverhaltens implementieren.

Amazon S3 skaliert automatisch, um höhere Anforderungsraten zu bewältigen, aber diese Skalierung erfolgt schrittweise. Während des Skalierens erhalten Sie möglicherweise HTTP 503 (Slow Down) Antworten. Diese Antworten sind vorübergehend und zeigen an, dass Amazon S3 seine internen Systeme für Ihr neues Anfragemuster optimiert. Sobald das Skalieren abgeschlossen ist, werden Ihre Anfragen ohne Drosselung bedient.

Um die Leistung für Workloads mit hoher Anfragerate zu optimieren, sollten Sie die folgenden Strategien in Betracht ziehen:
+ **Anfragen auf mehrere Präfixe verteilen** – Verwenden Sie ein zufälliges oder sequentielles Präfixmuster, um Anfragen auf mehrere Partitionen zu verteilen. Verwenden Sie zum Beispiel statt fortlaufender Objektnamen wie `log-2024-01-01.txt`zufällige Präfixe wie `a1b2/log-2024-01-01.txt`. Dadurch kann Amazon S3 die Last besser verteilen.
+ **Implementieren Sie exponentielles Backoff für 503-Fehler** – Wenn Sie HTTP 503-Antworten erhalten, implementieren Sie eine Wiederholungslogik mit exponentiellem Backoff. Beginnen Sie mit einer kurzen Verzögerung und erhöhen Sie allmählich die Wartezeit zwischen den Wiederholungsversuchen. Sie AWS SDKs enthalten eine integrierte Wiederholungslogik, die dies automatisch handhabt.
+ **Anforderungsmuster überwachen** — Verwenden Sie CloudWatch Amazon-Metriken, um Ihre Anforderungs- und Fehlerquoten zu überwachen. Achten Sie besonders auf 5xx-Fehlermetriken, die anzeigen können, wenn sich Ihre Anwendung den aktuellen Skalierungsgrenzen nähert oder diese überschreitet.
+ **Schrittweise Erhöhung der Anforderungsraten** – Wenn Sie neue Anwendungen starten oder die Anforderungsraten deutlich erhöhen, sollten Sie Ihren Traffic im Laufe der Zeit schrittweise erhöhen, anstatt sofort Spitzenraten zu erreichen. Dadurch kann Amazon S3 proaktiv skalieren und die Wahrscheinlichkeit einer Drosselung verringern.
+ **Verwenden Sie mehrere Verbindungen** – Verteilen Sie Ihre Anfragen auf mehrere HTTP-Verbindungen, um den Durchsatz zu maximieren und die Auswirkungen einzelner Verbindungsprobleme zu reduzieren.

Für Anwendungen, die eine gleichbleibend hohe Leistung erfordern, sollten Sie Amazon S3 Express One Zone verwenden, das für Anwendungen konzipiert ist, die Latenzen im einstelligen Millisekundenbereich erfordern und Hunderttausende von Anfragen pro Sekunde unterstützen können. Weitere Informationen finden Sie unter [S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone).