Directives relatives aux performances pour Amazon S3 - 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 relatives aux performances pour Amazon S3

Lors du développement d'applications qui téléchargent et extraient les objets depuis Amazon S3, suivez nos instructions sur les bonnes pratiques pour optimiser les performances. Nous proposons également des plus détaillé Modèles de conception des performances pour Amazon S3 .

Pour obtenir les meilleures performances pour votre application sur Amazon S3, nous recommandons les directives suivantes.

Mesurer les performances

Lorsque vous optimisez les performances, tenez compte du débit du réseau et CPU des DRAM exigences. En fonction de la combinaison des demandes pour ces différentes ressources, il peut être utile d'évaluer différents types d'EC2instances Amazon. Pour plus d'informations sur les types d'instances, consultez la section Types d'instances dans le guide de EC2 l'utilisateur Amazon.

Il est également utile d'examiner le temps de DNS recherche, la latence et la vitesse de transfert des données à l'aide d'outils d'HTTPanalyse lors de la mesure des performances.

Pour comprendre les exigences de performances et optimiser les performances de votre application, vous pouvez également surveiller les réponses d'erreur 503 que vous recevez. La surveillance de certaines métriques de performances peut entraîner des dépenses supplémentaires. Pour plus d’informations, consultez Tarification Amazon S3.

Surveillance du nombre de réponses d'erreur de statut 503 (Ralentissement)

Pour surveiller le nombre de réponses d'erreur de statut 503 que vous recevez, vous pouvez utiliser l'une des options suivantes :

  • Utilisez les métriques de CloudWatch demande Amazon pour Amazon S3. Les métriques de CloudWatch demande incluent une métrique pour 5xx réponses d'état. Pour plus d'informations sur les métriques relatives aux CloudWatch demandes, consultezSurveillance des métriques avec Amazon CloudWatch.

  • Utilisez le nombre d'erreurs 503 (Service non disponible) disponible dans la section des métriques avancées d'Amazon S3 Storage Lens. Pour plus d’informations, consultez Utilisation de métriques S3 Storage Lens pour améliorer les performances.

  • Utilisez la journalisation des accès au serveur Amazon S3. La journalisation des accès au serveur vous permet de filtrer et de passer en revue toutes les demandes qui reçoivent des réponses 503 (Erreur interne). Vous pouvez également utiliser Amazon Athena pour analyser les journaux. Pour en savoir plus sur la journalisation des accès au serveur, consultez Enregistrement de demandes avec journalisation des accès au serveur.

En surveillant le nombre de codes d'erreur d'état HTTP 503, vous pouvez souvent obtenir des informations précieuses sur les préfixes, les clés ou les compartiments qui reçoivent le plus de demandes de limitation.

Redimensionnez les connexions de stockage horizontalement

La répartition des demandes entre plusieurs connexions est un modèle de conception courant pour mettre horizontalement à l’échelle les performances. Lorsque vous développez des applications hautes performances, pensez à Amazon S3 comme à un très grand système réparti, et non comme un simple point de terminaison réseau, tel qu'un serveur de stockage traditionnel. Vous pouvez atteindre les meilleures performances en adressant plusieurs demandes concurrentes à Amazon S3. Répartissez ces demandes sur des connexions distinctes pour maximiser la bande passante accessible à partir d'Amazon S3. Amazon S3 n'a aucune limite pour le nombre de connexions à votre compartiment.

Utiliser des extractions par plage d'octets

À l'aide de l'RangeHTTPen-tête d'une demande d'GETobjet, vous pouvez récupérer une plage d'octets à partir d'un objet, en transférant uniquement la partie spécifiée. Vous pouvez utiliser des connexions simultanées vers Simple Storage Service (Amazon S3) pour extraire différentes plages d'octets depuis le même objet. Vous pouvez ainsi parvenir au regroupement de débits le plus élevé, par opposition à une seule demande d’objet entier. L’extraction des plages les plus petites d’un grand objet permet aussi à votre application d’améliorer l’intervalle des nouvelles tentatives quand les demandes sont interrompues. Pour plus d’informations, consultez Téléchargement d'objets.

Les tailles traditionnelles des demandes de plages d’octets sont de 8 Mo ou 16 Mo. Si les objets sont PUT chargés en plusieurs parties, il est recommandé de GET les utiliser avec des pièces de même taille (ou du moins alignées sur les limites des pièces) pour de meilleures performances. GETles demandes peuvent porter directement sur des pièces individuelles ; par exemple, GET ?partNumber=N.

Nouvelle tentative de demandes pour les applications sensibles à la latence

Les expirations et les nouvelles tentatives agressives permettent d’obtenir une latence cohérente. Étant donnée la large échelle d'Amazon S3, si la première demande est lente, une demande de nouvelle tentative est susceptible d'emprunter un chemin différent et de réussir rapidement. 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.

Combinez Amazon S3 (stockage) et Amazon EC2 (calcul) dans le même Région AWS

Même si les noms de compartiment S3 sont globalement uniques, chaque compartiment est stocké dans une région que vous sélectionnez lorsque vous créez le compartiment. Pour en savoir plus sur les directives relatives à la dénomination des compartiments, consultez les sections Présentation des compartiments et Règles de dénomination des compartiments. Pour optimiser les performances, nous vous recommandons d'accéder au bucket depuis les EC2 instances Amazon de la même manière Région AWS lorsque cela est possible. Cela permet de réduire la latence réseau et les coûts de transfert des données.

Pour plus d’informations sur la tarification du transfert des données, consultez la Tarification Amazon S3.

Utilisez Amazon S3 Transfer Acceleration pour minimiser la latence causée par la distance

Configuration de transferts de fichiers rapides et sécurisés à l'aide d'Amazon S3 Transfer Acceleration permet un transfert rapide, facile et sécurisé des fichiers sur des longues distances entre votre client et un compartiment S3. Transfer Acceleration tire parti des emplacements périphériques répartis dans le monde entier sur Amazon CloudFront. Lorsque les données arrivent dans un emplacement périphérique, elles sont transférées vers Amazon S3 sur un chemin de réseau optimisé. Transfer Acceleration convient parfaitement au transfert régulier de gigaoctets ou téraoctets de données d’un continent à l’autre. Il est aussi utile pour les clients qui chargent sur un compartiment centralisé depuis le monde entier.

Vous pouvez utiliser l'outil de comparaison Amazon S3 Transfer Acceleration Speed pour comparer les vitesses de téléchargement accélérées et non accélérées dans les régions Amazon S3. L'outil de comparaison de la vitesse utilise les chargements partitionnés pour transférer un fichier à partir de votre navigateur vers différentes régions Amazon S3 avec ou sans Amazon S3 Transfer Acceleration.

Utilisez la dernière version du AWS SDKs

Ils AWS SDKs fournissent un support intégré pour de nombreuses directives recommandées pour optimiser les performances d'Amazon S3. Ils SDKs permettent de tirer parti plus API facilement d'Amazon S3 depuis une application et sont régulièrement mis à jour pour suivre les meilleures pratiques les plus récentes. Par exemple, ils SDKs incluent une logique permettant de réessayer automatiquement les demandes en cas d'erreur HTTP 503 et investissent dans du code pour répondre et s'adapter aux connexions lentes.

Ils fournissent SDKs également le gestionnaire de transfert, qui automatise le dimensionnement horizontal des connexions pour traiter des milliers de demandes par seconde, en utilisant des requêtes par plage d'octets le cas échéant. Il est important d'utiliser la dernière version du AWS SDKs pour obtenir les dernières fonctionnalités d'optimisation des performances.

Vous pouvez également optimiser les performances lorsque vous utilisez des HTTP REST API requêtes. Lorsque vous utilisez le RESTAPI, vous devez suivre les mêmes bonnes pratiques que celles figurant dans leSDKs. Autorisez les délais d’expiration et les nouvelles tentatives sur les demandes lentes, et multipliez les connexions pour autoriser l’extraction de données d’objet en parallèle. Pour plus d'informations sur l'utilisation du RESTAPI, consultez le Amazon Simple Storage Service API Reference.