Directives d’optimisation des performances et modèles de conception pour S3 Express One Zone - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Directives d’optimisation des performances et modèles de conception pour S3 Express One Zone

Lors du développement d’applications qui chargent et récupèrent les objets depuis Amazon S3 Express One Zone, suivez nos bonnes pratiques pour optimiser les performances. Pour utiliser la classe de stockage S3 Express One Zone, vous devez créer un compartiment de répertoires S3. La classe de stockage S3 Express One Zone n’est pas prise en charge pour une utilisation avec les compartiments S3 à usage général.

Pour accéder aux directives d’optimisation des performances relatives à toutes les autres classes de stockage Amazon S3 et aux compartiments à usage général S3, consultez Modèles de conception des bonnes pratiques : optimisation des performances d'Amazon S3.

Pour optimiser les performances pour votre application lorsque vous utilisez la classe de stockage et les compartiments de répertoires S3 Express One Zone, nous recommandons les directives et modèles de conception suivants.

Colocalisez le stockage S3 Express One Zone avec vos AWS ressources informatiques

Chaque compartiment de répertoires est stocké dans une zone de disponibilité unique que vous sélectionnez lorsque vous créez le compartiment. Vous pouvez commencer par créer un nouveau compartiment de répertoires dans une zone de disponibilité locale pour vos charges de travail ou vos ressources de calcul. Vous pouvez alors commencer immédiatement des opérations de lecture et d’écriture à très faible latence. Les compartiments d'annuaire sont les premiers compartiments S3 dans lesquels vous pouvez choisir la zone de disponibilité afin de réduire le temps de latence entre le calcul et le stockage. Région AWS

Si vous accédez à des compartiments de répertoires dans différentes zones de disponibilité, la latence augmente. Pour optimiser les performances, nous vous recommandons d’accéder à un compartiment de répertoires depuis des instances Amazon Elastic Container Service, Amazon Elastic Kubernetes Service et Amazon Elastic Compute Cloud situées dans la même zone de disponibilité, quand cela est possible.

Compartiments de répertoires

Chaque compartiment d'annuaire peut prendre en charge des centaines de milliers de transactions par seconde (TPS). Contrairement aux compartiments à usage général, les compartiments de répertoires organisent les clés de manière hiérarchique dans des répertoires plutôt qu’avec des préfixes. Un préfixe est une chaîne de caractères au début du nom de la clé d'objet. Vous pouvez voir les préfixes comme un moyen d'organiser vos données de la même manière que les répertoires. Toutefois, les préfixes ne sont pas des répertoires.

Les préfixes organisent les données dans un espace de noms plat au sein de compartiments à usage général, et le nombre de préfixes dans un compartiment à usage général est illimité. Chaque préfixe peut atteindre au moins 3 500 HEAD requêtesPUT/POST/DELETEou 5 500GET/par seconde. Vous pouvez également mettre en parallèle les demandes sur plusieurs préfixes pour mettre à l’échelle les performances. Toutefois, dans le cas d’opérations de lecture et d’écriture, cette mise à l’échelle se fait progressivement et n’est pas instantanée. Alors que les compartiments à usage général s'adaptent à votre nouveau taux de demandes plus élevé, il est possible que vous receviez des erreurs liées au code d'HTTPétat 503 (Service non disponible).

Avec un espace de noms hiérarchique, le délimiteur figurant dans la clé d’objet est important. Le seul délimiteur pris en charge est la barre oblique (/). Les répertoires sont déterminés par les limites des délimiteurs. Par exemple, la clé d’objet dir1/dir2/file1.txt entraîne la création automatique des répertoires dir1/ et dir2/, et l’ajout de l’objet file1.txt dans le répertoire /dir2, dans le chemin dir1/dir2/file1.txt.

Les répertoires créés lorsque les objets sont chargés dans des compartiments de répertoires ne sont soumis à aucune TPS limite par préfixe et sont automatiquement pré-dimensionnés afin de réduire le risque d'erreurs HTTP 503 (service non disponible). Cette mise à l’échelle automatique permet à vos applications de mettre en parallèle les demandes de lecture et d’écriture dans et entre les répertoires, selon les besoins.

Mise en parallèle des demandes de mise à l’échelle horizontale des compartiments de répertoires

Vous pouvez optimiser les performances en adressant plusieurs demandes simultanées aux compartiments de répertoires pour répartir vos demandes sur des connexions distinctes et augmenter au maximum la bande passante accessible. S3 Express One Zone n’a aucune limite quant au nombre de connexions établies avec votre compartiment de répertoires. Les répertoires individuels peuvent mettre à l’échelle horizontalement et automatiquement les performances quand un grand nombre d’écritures simultanées sont effectuées dans le même répertoire.

Lorsqu’une clé d’objet est initialement créée et que son nom de clé inclut un répertoire, le répertoire est automatiquement créé pour l’objet. Les chargements d’objets ultérieurs vers ce même répertoire ne nécessitent pas la création du répertoire, ce qui réduit la latence lors des chargements d’objets vers les répertoires existants.

Des structures de répertoires superficielles et profondes sont prises en charge pour stocker des objets dans un compartiment de répertoires, mais les compartiments de répertoires sont automatiquement mis à l’échelle horizontalement, avec une latence plus faible lors de chargements simultanés vers le même répertoire ou vers des répertoires similaires parallèles.

Utilisation de l’authentification basée sur les sessions

S3 Express One Zone et les compartiments de répertoires prennent en charge un nouveau mécanisme d’autorisation basé sur les sessions pour authentifier et autoriser les demandes adressées à un compartiment de répertoires. Avec l'authentification basée sur les sessions, l'CreateSessionAPIopération est AWS SDKs automatiquement utilisée pour créer un jeton de session temporaire qui peut être utilisé pour autoriser à faible latence les demandes de données adressées à un bucket d'annuaire.

Ils AWS SDKs utilisent l'CreateSessionAPIopération pour demander des informations d'identification temporaires, puis créer et actualiser automatiquement des jetons pour vous en votre nom toutes les 5 minutes. Pour tirer parti des avantages en termes de performances de la classe de stockage S3 Express One Zone, nous vous recommandons d'utiliser le AWS SDKs pour lancer et gérer la CreateSession API demande. Pour plus d’informations sur ce modèle basé sur les sessions, consultez Autoriser les opérations des terminaux API zonaux avec CreateSession.

Bonnes pratiques supplémentaires en matière de somme de contrôle S3

S3 Express One Zone vous offre la possibilité de choisir l’algorithme de somme de contrôle utilisé pour valider vos données pendant le chargement ou le téléchargement. Vous pouvez sélectionner l'un des algorithmes de hachage sécurisé (SHA) ou de contrôle de redondance cyclique (CRC) suivants pour vérifier l'intégrité des données : CRC32CRC32C, SHA -1 et -256. SHA MD5les checksums basés sur la base de données ne sont pas pris en charge avec la classe de stockage S3 Express One Zone.

CRC32est la somme de contrôle par défaut utilisée par le AWS SDKs lors de la transmission de données vers ou depuis S3 Express One Zone. Nous vous recommandons d'utiliser CRC32 et CRC32C d'optimiser les performances avec la classe de stockage S3 Express One Zone.

Utiliser la dernière version des bibliothèques d'exécution AWS SDKs et les bibliothèques d'exécution communes

Plusieurs d'entre eux fournissent AWS SDKs également les bibliothèques AWS Common Runtime (CRT) pour accélérer encore les performances des clients S3. Ceux-ci SDKs incluent le AWS SDK for Java 2.x, le AWS SDK for C++, et le AWS SDK for Python (Boto3). Le client S3 CRT basé sur S3 transfère les objets vers et depuis S3 Express One Zone avec des performances et une fiabilité améliorées en utilisant automatiquement l'APIopération de téléchargement en plusieurs parties et les extractions par plage d'octets pour automatiser les connexions à échelle horizontale.

Pour obtenir les meilleures performances avec la classe de stockage S3 Express One Zone, nous vous recommandons d'utiliser la dernière version AWS SDKs qui inclut les CRT bibliothèques ou d'utiliser le AWS Command Line Interface (AWS CLI).

Dépannage des performances

Nouvelle tentative de demandes pour les applications sensibles à la latence

La classe S3 Express One Zone est spécialement conçue pour fournir des niveaux élevés constants de performances sans réglages supplémentaires. Toutefois, la définition de valeurs de délai d’attente et de nouvelles tentatives agressives contribue également à garantir une latence et des performances constantes. Ils AWS SDKs ont des valeurs de délai d'expiration et de nouvelle tentative configurables que vous pouvez ajuster en fonction des tolérances de votre application spécifique.

AWS Bibliothèques Common Runtime (CRT) et appariement des types d'EC2instances Amazon

Les applications qui effectuent un grand nombre d’opérations de lecture et d’écriture ont probablement besoin de plus de mémoire et de capacité de calcul que les autres. Lorsque vous lancez vos instances Amazon Elastic Compute Cloud (AmazonEC2) pour votre charge de travail exigeante en performances, choisissez des types d'instances dotés de la quantité de ressources dont votre application a besoin. Le stockage hautes performances S3 Express One Zone est idéalement associé à des types d'instances plus grands et plus récents, dotés d'une plus grande quantité de mémoire système et plus puissants, CPUs et GPUs qui peuvent tirer parti d'un stockage plus performant. Nous recommandons également d'utiliser les dernières versions de CRT -enabled AWS SDKs, qui permettent de mieux accélérer les requêtes de lecture et d'écriture en parallèle.

Utilisez l'authentification basée sur les sessions au lieu de AWS SDKs HTTP REST APIs

Avec Amazon S3, vous pouvez également optimiser les performances lorsque vous utilisez des HTTP REST API demandes en suivant les mêmes bonnes pratiques que celles décrites dans le AWS SDKs. Toutefois, compte tenu du mécanisme d'autorisation et d'authentification basé sur les sessions utilisé par S3 Express One Zone, nous vous recommandons vivement d'utiliser le AWS SDKs to manage CreateSession et son jeton de session géré. Créez et actualisez AWS SDKs automatiquement les jetons en votre nom à l'aide de l'CreateSessionAPIopération. Utilisation d'CreateSessionéconomies sur le temps de latence aller-retour par demande vers AWS Identity and Access Management (IAM) pour autoriser chaque demande.