PERF02-BP02 Comprendre les options de configuration de calcul disponibles - AWS Well-Architected Framework

PERF02-BP02 Comprendre les options de configuration de calcul disponibles

Chaque solution de calcul propose des options et des configurations pour prendre en charge les caractéristiques de votre charge de travail. Vous devez savoir comment les différentes options soutiennent votre charge de travail et connaître celles qui sont optimales pour votre système. Parmi ces options, citons, par exemple) la famille d'instances, les tailles, les fonctionnalités (GPU, E/S), la capacité de débordement (bursting), les délais d'attente, les tailles de fonction, les instances de conteneur et la simultanéité.

Résultat souhaité : Les caractéristiques de la charge de travail, notamment le processeur, la mémoire, le débit réseau, le processeur graphique, les IOPS, les modèles de trafic et les modèles d'accès aux données, sont documentées et utilisées pour configurer la solution de calcul afin qu'elle corresponde aux caractéristiques de la charge de travail. Chacune de ces métriques ainsi que des métriques personnalisées spécifiques à votre charge de travail sont enregistrées, surveillées, puis exploitées pour optimiser la configuration de calcul afin de répondre au mieux aux exigences.

Anti-modèles courants :

  • Vous utilisez la même solution de calcul que celle utilisée sur site.

  • Vous ne vérifiez pas que les options de calcul ou la famille d'instances correspondent aux caractéristiques de la charge de travail.

  • Vous surdimensionnez le calcul pour garantir une capacité de débordement (bursting).

  • Vous utilisez plusieurs plateformes de gestion de calcul pour la même charge de travail.

Avantages liés au respect de cette bonne pratique : Connaître les offres de calcul AWS afin de pouvoir identifier la solution la plus adaptée à chacune de vos charges de travail. Après la sélection des offres de calcul pour votre charge de travail, vous pouvez rapidement les tester pour déterminer si elles répondent aux besoins de vos charges de travail. Une solution de calcul optimisée pour répondre aux caractéristiques de votre charge de travail accroît les performances, réduit les coûts et renforce la fiabilité.

Niveau de risque exposé si cette bonne pratique n'est pas respectée : Débit

Directives d'implémentation

Si votre charge de travail utilise la même option de calcul depuis plus de quatre semaines et que vous anticipez que les caractéristiques resteront les mêmes à l'avenir, vous pouvez utiliser AWS Compute Optimizer pour recevoir une recommandation basée sur vos caractéristiques de calcul. Si AWS Compute Optimizer n'est pas une option en raison du manque de métriques, un type d'instance non pris en charge ou un changement prévisible de vos caractéristiques, vous devrez prédire vos métriques en vous basant sur des tests de charge et des expérimentations. 

Étapes d'implémentation :

  1. Exécutez-vous des instances EC2 ou des conteneurs avec le type de lancement EC2 ?

    1. Votre charge de travail peut-elle utiliser des GPU pour augmenter les performances ?

      1. Calcul accéléré Les instances de calcul accéléré sont des instances basées sur GPU qui offrent des performances optimales pour l'entraînement du machine learning, l'inférence et le calcul haute performance.

    2. Votre charge de travail exécute-t-elle des applications d'inférence de machine learning ?

      1. AWS Inferentia (Inf1) — Les instances Inf1 sont conçues pour prendre en charge les applications d'inférence de machine learning. En utilisant des instances Inf1, les clients peuvent exécuter à grande échelle des applications d'inférence de machine learning telles que la reconnaissance des images, la reconnaissance vocale, le traitement du langage naturel, la personnalisation et la détection des fraudes. Vous pouvez créer un modèle dans l'un des frameworks de machine learning les plus courants tels que TensorFlow, PyTorch ou MXNet, et utiliser des instances GPU pour entraîner votre modèle. Une fois que votre modèle de machine learning a été entraîné pour répondre à vos besoins, vous pouvez déployer votre modèle sur des instances Inf1 en utilisant AWS Neuronest un kit de développement logiciel (kit SDK) spécialisé composé d'un compilateur, d'un environnement d'exécution et d'outils de profilage qui optimisent les performances d'inférence de machine learning des puces Inferentia.

    3. Votre charge de travail s'intègre-t-elle au matériel de bas niveau pour améliorer les performances ? 

      1. Circuits logiques programmables (FPGA) — Avec les FPGA, vous pouvez optimiser vos charges de travail en bénéficiant d'une exécution à accélération matérielle personnalisée pour vos charges de travail les plus exigeantes. Vous pouvez définir vos algorithmes en exploitant des langages de programmation à usage général pris en charge, comme C ou Go, ou des langages orientés matériel comme Verilog ou VHDL.

    4. Disposez-vous d'au moins quatre semaines de métriques et pouvez-vous prédire que votre modèle de trafic et vos métriques resteront à peu près les mêmes à l'avenir ?

      1. Utilisez Compute Optimizer pour recevoir une recommandation de machine learning sur la configuration de calcul qui correspond le mieux à vos caractéristiques de calcul.

    5. Les performances de votre charge de travail sont-elles limitées par les métriques du processeur ? 

      1. Les instances optimisées pour le calcul sont idéales pour les charges de travail nécessitant des processeurs hautes performances. 

    6. Les performances de votre charge de travail sont-elles limitées par les métriques de la mémoire ? 

      1. Les instances optimisées pour la mémoire offrent de grandes quantités de mémoire pour soutenir les charges de travail gourmandes en mémoire.

    7. Les performances de votre charge de travail sont-elles limitées par les IOPS ?

      1. Les instances optimisées pour le stockage sont conçues pour les charges de travail nécessitant un accès séquentiel élevé en lecture et en écriture (IOPS) au stockage local.

    8. Les caractéristiques de votre charge de travail représentent-elles un besoin équilibré pour toutes les métriques ?

      1. Le processeur de votre charge de travail doit-il fonctionner en débordement (mode bursting) pour gérer les pics de trafic ?

        1. Les instances de performance à capacité extensible sont similaires aux instances optimisées pour le calcul, sauf qu'elles offrent la possibilité de dépasser le point de référence de base fixe du processeur identifié dans une instance optimisée pour le calcul.

      2. Polyvalent Les instances à usage général fournissent un juste milieu entre toutes les caractéristiques afin de permettre l'exécution d'une variété de charges de travail.

    9. Votre instance de calcul s'exécute-t-elle sous Linux et est-elle limitée par le débit réseau sur la carte d'interface réseau ?

      1. Vérifiez. la question de performance 5, bonne pratique 2 : évaluation des fonctionnalités de mise en réseau disponibles pour trouver le type d'instance et la famille les plus adaptés à vos besoins de performances.

    10. Votre charge de travail nécessite-t-elle des instances cohérentes et prévisibles dans une zone de disponibilité spécifique sur laquelle vous pouvez vous engager pendant un an ? 

      1. Instances réservées Les instances réservées vous permettent de confirmer les réservations de capacité dans une zone de disponibilité spécifique. Les instances réservées sont idéales pour la puissance de calcul requise dans une zone de disponibilité spécifique. 

    11. Votre charge de travail a-t-elle des licences qui nécessitent du matériel dédié ?

      1. Hôtes dédiés Les hôtes dédiés prennent en charge les licences logicielles existantes et vous aident à respecter les exigences de conformité.

    12. Votre solution de calcul fonctionne-t-elle en débordement (mode bursting) et nécessite-t-elle un traitement synchrone ?

      1. Instances à la demande Les instances à la demande vous permettent d'utiliser la capacité de calcul à l'heure ou à la seconde sans engagement à long terme. Ces instances sont idéales pour dépasser les besoins de base en matière de performances.

    13. Votre solution de calcul est-elle sans état, tolérante aux pannes et asynchrone ? 

      1. Instances Spot Les instances Spot vous permettent de tirer parti de la capacité d'instance inutilisée pour vos charges de travail sans état et tolérantes aux pannes. 

  2. Exécutez-vous des conteneurs sur Fargate?

    1. Les performances de vos tâches sont-elles limitées par la mémoire ou le processeur ?

      1. Utilisez la boîte à outils Taille de la tâche pour ajuster la mémoire ou le processeur.

    2. Vos performances sont-elles affectées par vos pics de trafic ?

      1. Utilisez la boîte à outils Auto Scaling configuration Auto Scaling pour correspondre à vos modèles de trafic.

  3. Votre solution de calcul est-elle sur Lambda?

    1. Disposez-vous d'au moins quatre semaines de métriques et pouvez-vous prédire que votre modèle de trafic et vos métriques resteront à peu près les mêmes à l'avenir ?

      1. Utilisez Compute Optimizer pour recevoir une recommandation de machine learning sur la configuration de calcul qui correspond le mieux à vos caractéristiques de calcul.

    2. N'avez-vous pas assez de métriques pour utiliser AWS Compute Optimizer ?

      1. Si vous n'avez pas de métriques disponibles pour utiliser Compute Optimizer, optez pour AWS Lambda Power Tuning pour vous aider à choisir la meilleure configuration.

    3. Les performances de votre fonction sont-elles limitées par la mémoire ou le processeur ?

      1. Configurez la mémoire Lambda pour répondre à vos besoins de performance.

    4. Votre fonction expire-t-elle lors de l'exécution ?

    5. Les performances de votre fonction sont-elles limitées par des pics d'activité et la simultanéité ? 

      1. Configurez les paramètres de simultanéité pour répondre à vos besoins de performance.

    6. Votre fonction s'exécute-t-elle de manière asynchrone et échoue-t-elle lors des tentatives ?

      1. Configurez l'ancienneté maximale de l'événement et la limite maximale de nouvelles tentatives dans les paramètres de configuration asynchrone.

Niveau d'effort du plan d'implémentation : 

Pour respecter cette bonne pratique, vous devez connaître vos caractéristiques et métriques de calcul actuelles. La collecte de ces métriques, l'établissement d'un point de référence, puis l'utilisation de ces métriques pour identifier l'option de calcul idéale indique un niveau d'effort faible to modéré . La validation par des tests de charge et des expérimentations est conseillée.

Ressources

Documents connexes :

Vidéos connexes :

Exemples connexes :