Leistungsrichtlinien und Entwurfsmuster für S3 Express One Zone - 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 und Entwurfsmuster für S3 Express One Zone

Bei der Entwicklung von Anwendungen, die Objekte zu Amazon S3 Express One Zone hochladen und daraus abrufen, sollten Sie unsere bewährten Methoden befolgen, um die Leistung zu optimieren. Um die Speicherklasse S3 Express One Zone zu verwenden, müssen Sie einen S3-Verzeichnis-Bucket erstellen. Die Speicherklasse S3 Express One Zone wird für die Verwendung mit S3-Allzweck-Buckets nicht unterstützt.

Leistungsrichtlinien für alle anderen Amazon-S3-Speicherklassen und S3-Allzweck-Buckets finden Sie unter Bewährte Methoden für Designmuster: Optimieren der Leistung von Amazon S3.

Zur Erzielung der besten Leistung für Ihre Anwendung bei Verwendung der Speicherklasse S3 Express One Zone und von Verzeichnis-Buckets empfehlen wir die folgenden Vorgehensweisen und Designmuster.

Platzieren Sie den S3 Express One Zone-Speicher gemeinsam mit Ihren Rechenressourcen AWS

Jeder Verzeichnis-Bucket wird in einer einzigen Availability Zone gespeichert, die Sie bei dessen Erstellung auswählen. Sie können damit beginnen, indem Sie neuen Verzeichnis-Bucket in einer Availability Zone erstellen, die für Ihre Computing-Workloads oder Ressourcen lokal ist. Sie können dann sofort mit Lese- und Schreibvorgängen mit sehr niedriger Latenz beginnen. Directory-Buckets sind die ersten S3-Buckets, in denen Sie die Availability Zone auswählen können, AWS-Region um die Latenz zwischen Datenverarbeitung und Speicher zu reduzieren.

Wenn Sie in verschiedenen Availability Zones auf Verzeichnis-Buckets zugreifen, erhöht sich die Latenz. Um die Leistung zu optimieren, empfehlen wir, dass Sie von Amazon Elastic Container Service-, Amazon Elastic Kubernetes Service- und Amazon Elastic Compute Cloud-Instances, die sich nach Möglichkeit in derselben Availability Zone befinden, auf einen Directory-Bucket zugreifen.

Verzeichnis-Buckets

Jeder Verzeichnis-Bucket kann Hunderttausende von Transaktionen pro Sekunde (TPS) unterstützen. Im Gegensatz zu Allzweck-Buckets organisieren Verzeichnis-Buckets Schlüssel hierarchisch in Verzeichnissen statt nach Präfixen. Ein Präfix ist eine Zeichenfolge am Anfang des Objektschlüsselnamens. Sie können sich Präfixe als eine Möglichkeit vorstellen, Ihre Daten ähnlich wie Verzeichnisse zu organisieren. Präfixe sind jedoch keine Verzeichnisse.

Präfixe organisieren Daten in einem flachen Namespace innerhalb von Allzweck-Buckets und die Anzahl der Präfixe in einem Allzweck-Bucket ist unbegrenzt. Mit jedem Präfix können mindestens 3 500 PUT/POST/DELETE/ oder 5 500 GET/HEAD Anforderungen pro Sekunde erreicht werden. Sie können Anfragen auch über mehrere Präfixe parallelisieren, um die Leistung zu skalieren. Die Skalierung erfolgt sowohl bei Lese- als auch bei Schreiboperationen schrittweise und nicht sofort. Während Allzweck-Buckets auf Ihre neue höhere Anforderungsrate skaliert werden, erhalten Sie möglicherweise einige HTTP-Statuscode 503 (Service Unavailable)-Fehler.

Bei einem hierarchischen Namespace ist das Trennzeichen im Objektschlüssel wichtig. Das einzige unterstützte Trennzeichen ist der Schrägstrich (/). Verzeichnisse werden durch Trennzeichengrenzen bestimmt. Beispielsweise führt der Objektschlüssel dir1/dir2/file1.txt dazu, dass die Verzeichnisse dir1/und dir2/ automatisch erstellt werden und das Objekt file1.txt dem /dir2-Verzeichnis im Pfad dir1/dir2/file1.txt hinzugefügt wird.

Die Verzeichnisse, die erstellt werden, wenn Objekte in Verzeichnis-Buckets hochgeladen werden, haben keine TPS-Beschränkungen pro Präfix und werden automatisch vorskaliert, um die Wahrscheinlichkeit von HTTP 503-Fehlern (Service Unavailable) zu verringern. Diese automatische Skalierung ermöglicht Ihren Anwendungen, Lese- und Schreibanforderungen innerhalb von Verzeichnissen und zwischen Verzeichnissen nach Bedarf zu parallelisieren.

Parallelisierung horizontaler Skalierungsanforderungen für verzeichnis-Buckets

Sie erreichen die beste Leistung durch die Ausgabe mehrerer gleichzeitiger Anfragen an Verzeichnis-Buckets zur Verteilung Ihrer Anforderungen auf separate Verbindungen und zur Maximierung der verfügbaren Bandbreite. S3Express One Zone hat keine Beschränkungen für die Anzahl der Verbindungen, die mit Ihrem Verzeichnis-Bucket hergestellt werden. Einzelne Verzeichnisse können die Leistung horizontal und automatisch skalieren, wenn eine große Anzahl gleichzeitiger Schreibvorgänge in dasselbe Verzeichnis stattfindet.

Wenn ein Objektschlüssel zum ersten Mal erstellt wird und sein Schlüsselname ein Verzeichnis enthält, wird das Verzeichnis automatisch für das Objekt erstellt. Bei nachfolgenden Objekt-Uploads in dasselbe Verzeichnis muss das Verzeichnis nicht erstellt werden, wodurch die Latenz beim Hochladen von Objekten in bestehende Verzeichnisse reduziert wird.

Obwohl sowohl flache als auch tiefe Verzeichnisstrukturen für das Speichern von Objekten in einem Verzeichnis-Bucket unterstützt werden, werden Verzeichnis-Buckets automatisch horizontal skaliert, wodurch die Latenz bei gleichzeitigen Uploads in dasselbe Verzeichnis oder in parallele „Verzeichnisgeschwister“ geringer ist.

Fehlerbehebung bei der Leistung

Wiederholung von Anforderungen für latzenzsensitive Anwendungen

S3 Express One Zone wurde speziell für gleichbleibende Leistung ohne zusätzliche Anpassungen entwickelt. Die Festlegung aggressiver Timeout-Werte und Wiederholungsversuche kann jedoch weiter zu einer gleichbleibenden Latenz und Leistung beitragen. Sie AWS SDKs verfügen über konfigurierbare Timeout- und Wiederholungswerte, die Sie an die Toleranzen Ihrer spezifischen Anwendung anpassen können.

AWS Common Runtime (CRT) -Bibliotheken und Paarung von EC2 Amazon-Instance-Typen

Anwendungen, die eine große Anzahl von Lese- und Schreibvorgängen ausführen, benötigen wahrscheinlich mehr Arbeitsspeicher oder Computing-Kapazitäten als Anwendungen, bei denen dies nicht der Fall ist. Wenn Sie Ihre Amazon Elastic Compute Cloud (Amazon EC2) -Instances für Ihre leistungsintensive Arbeitslast starten, wählen Sie Instance-Typen aus, die über die Menge dieser Ressourcen verfügen, die Ihre Anwendung benötigt. S3 Express One Zone Hochleistungsspeicher lässt sich ideal mit größeren und neueren Instance-Typen kombinieren, die über mehr Systemspeicher verfügen und leistungsfähiger sind CPUs und GPUs die Vorteile von leistungsfähigerem Speicher nutzen können. Wir empfehlen außerdem, die neuesten Versionen von CRT-Enabled zu verwenden AWS SDKs, wodurch Lese- und Schreibanforderungen besser parallel beschleunigt werden können.

Verwenden Sie die sitzungsbasierte Authentifizierung AWS SDKs anstelle von HTTP-REST APIs

Mit Amazon S3 können Sie auch die Leistung optimieren, wenn Sie HTTP-REST-API-Anfragen verwenden, indem Sie dieselben bewährten Methoden befolgen, die Teil von sind AWS SDKs. Angesichts des sitzungsbasierten Autorisierungs- und Authentifizierungsmechanismus, der von S3 Express One Zone verwendet wird, empfehlen wir Ihnen jedoch dringend, das Token für die Verwaltung CreateSession und das zugehörige verwaltete Sitzungstoken AWS SDKs zu verwenden. Sie erstellen und aktualisieren Tokens AWS SDKs automatisch in Ihrem Namen mithilfe der CreateSession API-Operation. Bei der Autorisierung der einzelnen Anfragen wird die AWS Identity and Access Management Round-Trip-Latenz pro Anfrage (IAM) CreateSession eingespart.