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.
Recommandations de performance 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 Modèles de conception des performances pour Amazon S3 plus détaillés.
Pour obtenir les meilleures performances pour votre application sur Amazon S3, nous recommandons les directives suivantes.
Rubriques
Mesurer les performances
Lors de l’optimisation des performances, examinez le débit du réseau, l’UC et les exigences DRAM. 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 peut aussi être utile d’examiner le temps de recherche DNS, la latence et la vitesse de transfert des données à l’aide des outils d’analyse HTTP 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 les réponses d'état 5xx. Pour plus d'informations sur les métriques de demande CloudWatch , consultez Surveillance 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 de statut HTTP 503, vous pouvez souvent obtenir des insights précieux sur les préfixes, les clés ou les compartiments qui reçoivent le plus de demandes de limitation.
Mise à l’échelle horizontale des connexions de stockage
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.
Utilisation des extractions de plages d’octets
Avec l’en-tête HTTP Range
dans une demande GET Object, vous pouvez extraire une plage d’octets d’un objet, en ne transférant que la portion spécifiée. Vous pouvez utiliser des connexions simultanées vers 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 l’objet d’une opération PUT à l’aide d’un chargement en plusieurs parties, une bonne pratique consiste à les soumettre à une opération GET dans les mêmes tailles d’élément (ou au moins alignées sur les frontières d’élément) pour obtenir de meilleures performances. Les demandes GET peuvent directement adresser les éléments individuels ; 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 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
Utilisation d’Amazon S3 Transfer Acceleration pour réduire la latence provoqué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 de vitesse 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 fournissent une API plus simple pour tirer parti 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 qui permet de réessayer automatiquement les requêtes en cas d'erreur HTTP 503 et d'investir 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 aussi optimiser les performances lorsque vous utilisez les demandes d’API REST HTTP. Lorsque vous utilisez l'API REST, vous devez suivre les mêmes bonnes pratiques que celles incluses dans le SDKs. 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 de l’API REST, consultez la Référence d’API Amazon Simple Storage Service.