Conteneuriser. NETapplications - AWS Conseils prescriptifs

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.

Conteneuriser. NETapplications

Présentation

Les conteneurs constituent un moyen léger et efficace d'empaqueter et de déployer des applications de manière cohérente et reproductible. Cette section explique comment vous pouvez utiliser AWS Fargate un service de conteneur sans serveur pour réduire les coûts de votre. NETapplications tout en fournissant une infrastructure évolutive et fiable.

Impact sur les coûts

Parmi les facteurs qui influencent l'efficacité de l'utilisation des conteneurs pour réduire les coûts, citons la taille et la complexité de l'application, le nombre d'applications à déployer, ainsi que le niveau de trafic et de demande sur les applications. Pour les applications petites ou simples, les conteneurs peuvent ne pas permettre de réaliser des économies significatives par rapport aux approches d'infrastructure traditionnelles, car les frais généraux liés à la gestion des conteneurs et des services associés peuvent en fait augmenter les coûts. Toutefois, pour les applications plus importantes ou plus complexes, l'utilisation de conteneurs peut permettre de réaliser des économies en améliorant l'utilisation des ressources et en réduisant le nombre d'instances requises.

Nous vous recommandons de garder à l'esprit les points suivants lorsque vous utilisez des conteneurs afin de réaliser des économies :

  • Taille et complexité des applications — Les applications plus volumineuses et plus complexes sont mieux adaptées à la conteneurisation, car elles ont tendance à nécessiter davantage de ressources et peuvent bénéficier davantage d'une meilleure utilisation des ressources.

  • Nombre d'applications : plus votre entreprise doit déployer d'applications, plus la conteneurisation permet de réaliser des économies.

  • Trafic et demande : les applications soumises à un trafic et à une demande élevés peuvent bénéficier de l'évolutivité et de l'élasticité fournies par les conteneurs. Cela peut permettre de réaliser des économies.

Les différentes architectures et systèmes d'exploitation influent sur les coûts des conteneurs. Si vous utilisez des conteneurs Windows, il est possible que les coûts ne diminuent pas pour des raisons de licence. Les coûts de licence sont inférieurs ou absents avec les conteneurs Linux. Le tableau suivant utilise une configuration de base AWS Fargate dans la région USA Est (Ohio) avec les paramètres suivants : 30 tâches par mois exécutées chacune pendant 12 heures avec 4 vCPUs et 8 Go de mémoire allouée.

Vous pouvez choisir entre deux plateformes de calcul principales sur lesquelles exécuter vos conteneurs AWS : les hôtes de conteneurs EC2 basés et les plateformes sans serveur ou AWS Fargate. Si vous utilisez Amazon Elastic Container Service (AmazonECS) au lieu de Fargate, vous devez continuer à exécuter le calcul (instances) pour permettre au moteur de placement d'instancier les conteneurs en cas de besoin. Si vous utilisez Fargate à la place, seule la capacité de calcul nécessaire est provisionnée.

Le graphique suivant montre la différence entre des conteneurs équivalents utilisant Fargate et Amazon. EC2 Grâce à la flexibilité de Fargate, les tâches d'une application peuvent être exécutées 12 heures par jour, sans aucune utilisation en dehors des heures de bureau. Toutefois, pour AmazonECS, vous devez contrôler la capacité de calcul à l'aide d'un groupe d'EC2instances Auto Scaling. Cela peut conduire à une capacité opérationnelle 24 heures sur 24, ce qui peut en fin de compte augmenter les coûts.

Fargate : coûts mensuels par rapport aux coûts mensuels EC2

Recommandations d'optimisation des coûts

Utiliser des conteneurs Linux plutôt que Windows

Vous pouvez réaliser des économies importantes si vous utilisez des conteneurs Linux au lieu de conteneurs Windows. Par exemple, vous pouvez réaliser des économies d'environ 45 % sur les coûts de calcul si vous exécutez le. NETCore sous EC2 Linux au lieu d'exécuter le. NETFramework EC2 sous Windows. Vous pouvez réaliser des économies supplémentaires de 40 % si vous utilisez l'ARMarchitecture (AWS Graviton) au lieu de x86.

Si vous envisagez d'exécuter des conteneurs basés sur Linux pour les conteneurs existants. NETApplications Framework, vous devez porter ces applications vers des versions multiplateformes modernes de. NET(comme. NET6.0) afin d'utiliser des conteneurs Linux. L'un des principaux facteurs à prendre en compte est de comparer le coût de la refactorisation aux économies réalisées grâce à la réduction du coût des conteneurs Linux. Pour plus d'informations sur le portage de vos applications vers une version moderne. NET, voir Porting Assistant pour. NETdans la AWS documentation.

Un autre avantage du passage à la modernité. NET(c'est-à-dire loin du. NETFramework) est que de nouvelles opportunités de modernisation deviennent disponibles. Par exemple, vous pouvez envisager de réorganiser l'architecture de votre application vers une architecture basée sur les microservices, plus évolutive, plus agile et plus rentable.

Le schéma suivant illustre le processus de prise de décision pour explorer les opportunités de modernisation.

Arbre décisionnel relatif à la refonte de la plateforme

Profitez des Savings Plans

Les conteneurs peuvent vous aider à tirer parti des Compute Savings Plans pour réduire vos coûts liés à Fargate. Le modèle de réduction flexible offre les mêmes remises que les instances réservées convertibles. La tarification de Fargate est basée sur le CPU v et les ressources de mémoire utilisées entre le moment où vous commencez à télécharger votre image de conteneur et la fin de la tâche ECS Amazon (arrondi à la seconde près). Les Savings Plans for Fargate offrent des économies allant jusqu'à 50 % sur l'utilisation de Fargate en échange d'un engagement à utiliser une quantité spécifique d'utilisation informatique (mesurée en dollars par heure) pour une durée d'un an ou trois ans. Vous pouvez l'utiliser AWS Cost Explorerpour vous aider à choisir un Savings Plan.

Il est important de comprendre que les Compute Savings Plans s'appliquent d'abord à l'utilisation qui vous permet de réaliser les économies les plus importantes. Par exemple, si vous exécutez une instance Linux t3.medium dans us-east-2 une instance Windows t3.medium identique, l'instance Linux bénéficie en premier de l'avantage Savings Plan. Cela est dû au fait que l'instance Linux a un potentiel d'économie de 50 % alors que la même instance Windows a un potentiel d'économie de 35 %. Si vous disposez d'autres ressources éligibles au Savings Plan Compte AWS, telles qu'Amazon EC2 ou Lambda, il n'est pas nécessaire que votre Savings Plan soit d'abord appliqué à Fargate. Pour plus d'informations, consultez Comprendre comment les Savings Plans s'appliquent à votre AWS utilisation dans la documentation Savings Plans et dans la EC2 section Optimize spending for Windows on Amazon de ce guide.

Tâches Fargate de la bonne taille

Il est important de s'assurer que les tâches Fargate sont correctement dimensionnées afin d'optimiser au maximum les coûts. Souvent, les développeurs ne disposent pas de toutes les informations d'utilisation nécessaires lorsqu'ils déterminent initialement les configurations des tâches Fargate utilisées dans leurs applications. Cela peut entraîner un surprovisionnement des tâches et entraîner des dépenses inutiles. Pour éviter cela, nous vous recommandons de charger des applications de test exécutées sur Fargate afin de comprendre les performances d'une configuration de tâche spécifique dans différents scénarios d'utilisation. Vous pouvez utiliser les résultats des tests de charge, vCPU, l'allocation de mémoire des tâches et les politiques de dimensionnement automatique pour trouver le juste équilibre entre performances et coûts.

Le schéma suivant montre comment Compute Optimizer génère des recommandations pour la taille optimale des tâches et des conteneurs.

Recommandations de Compute Optimizer concernant la taille des tâches et des conteneurs

L'une des approches consiste à utiliser un outil de test de charge, tel que celui décrit dans Distributed Load Testing on AWS, pour établir une base de référence pour v CPU et l'utilisation de la mémoire. Après avoir effectué le test de charge pour simuler une charge d'application typique, vous pouvez affiner la configuration de la v CPU et de la mémoire pour la tâche jusqu'à ce que l'utilisation de base soit atteinte.

Ressources supplémentaires