Lorsqu'il s'agit d'héberger des applications sur Amazon Web Services (AWS), l'une des décisions les plus importantes que vous devrez prendre est de choisir le type d'instance Amazon Elastic Compute Cloud (EC2). Les instances EC2 sont des machines virtuelles qui vous permettent d'exécuter vos applications sur AWS. Il existe différentes tailles et configurations, appelées familles d’instances, chacune conçue pour un usage spécifique. Le choix d'une offre et d'une taille d'instance adaptées à votre application est critique pour optimiser la performance et réduire les coûts. Cependant, comme le profil de demande de chaque application est unique et peut évoluer au fil du temps, cette tâche est beaucoup plus facile à définir qu'à résoudre. La taille 2x d’une instance d’une famille donnée n’est peut-être pas nécessaire, mais lorsque les équipes d’application confient aux Opérations cloud la gestion du temps de fonctionnement, la taille d’instance plus grande et plus coûteuse devient attractive — du moins, jusqu’à ce que les factures cloud explosent.
Dans cet article de blog, nous allons découvrir les difficultés liées au choix du type d'instance Amazon EC2 le plus adapté à votre application et vous fournirons quelques bonnes pratiques pour vous aider à prendre la bonne décision. Nous vous expliquerons également comment une solution comme IBM Turbonomic peut vous aider à redimensionner vos applications cloud AWS à l’aide du machine learning, de l’auto-scaling et de l’automatisation. Si vous connaissez Turbonomic et souhaitez commencer à optimiser votre environnement AWS dès maintenant, commencez dès aujourd’hui votre essai gratuit de 30 jours.
Les instances EC2 sont classées en fonction de leurs caractéristiques telles que le processeur, la mémoire, le stockage et la capacité réseau. Chaque type d'instance est conçu pour optimiser des workloads spécifiques, telles que l'informatique polyvalente, les applications gourmandes en mémoire ou les tâches gourmandes en ressources informatiques. Voici quelques exemples de types d'instances EC2 et leurs principaux cas d’utilisation :
Choisir le type d’instance EC2 adapté à votre application peut être une tâche complexe. Voici quelques-uns des défis auxquels vous pourriez être confrontés :
Maintenant que vous comprenez les principales difficultés liées au choix de la meilleure instance EC2, voici quelques unes des bonnes pratiques que nous encourageons nos clients et partenaires à suivre.
La première et la plus importante étape pour choisir le bon type d’instance EC2 est de comprendre votre workload. Chaque application a des exigences différentes en termes de CPU, de mémoire, de réseau et de stockage, et il est essentiel de savoir ce dont votre application a besoin pour fonctionner correctement.
Par exemple, si vous exécutez une application de base de données, vous pourriez avoir besoin d’une grande quantité de RAM pour gérer efficacement les requêtes. Par contre, si vous exécutez une application gourmande en ressources informatiques, vous aurez peut-être besoin d’un processeur haute performance.
Pour mieux comprendre votre workload, vous pouvez utiliser des outils comme AWS CloudWatch ou des solutions de surveillance tierces pour collecter des données sur l’utilisation des ressources. Ces données peuvent ensuite être utilisées pour déterminer le type d’instance optimal pour votre application.
Le processeur est l’un des composants les plus critiques d’une instance EC2, car il détermine la puissance de traitement de l’instance. Si votre application nécessite de fortes performances CPU, vous devriez chercher un type d’instance ayant un nombre de CPU et une fréquence plus élevés.
AWS propose une variété de types d’instances optimisés pour le processeur (lien externe à de ibm.com), tels que les familles C5, M5 et R5, conçues pour des workloads de calcul haute performance. Ces instances disposent des processeurs AWS Graviton3 (lien externe à ibm.com ) de dernière génération (mises à jour significatives du Graviton2) et sont optimisées pour les applications nécessitant une forte utilisation du processeur. Cependant, si votre application ne nécessite pas de hautes performances de processeur, vous pouvez opter pour un type d'instance moins cher, sans GPU et avec un nombre de processeurs plus faible, comme la famille T3.
La mémoire est un autre composant critique d'une instance EC2, car elle détermine la quantité de données que l'instance peut traiter à la fois. Si votre application nécessite beaucoup de mémoire, vous devriez choisir un type d'instance doté d'une plus grande capacité de mémoire.
Toutefois, si votre application ne nécessite pas beaucoup de mémoire, vous pouvez opter pour un type d'instance moins coûteux ayant une capacité de mémoire plus faible, comme la famille T3.
AWS propose une variété de types d'instances optimisées pour la mémoire (lien externe à ibm.com), telles que les familles X1, R4 et z1d, conçues pour les workloads gourmandes en mémoire. Ces instances disposent d'une grande quantité de mémoire et sont optimisées pour les applications qui nécessitent une utilisation élevée de la mémoire, telles que les bases de données en mémoire.
Toutefois, si votre application ne nécessite pas beaucoup de mémoire, vous pouvez opter pour un type d'instance moins coûteux ayant une capacité de mémoire plus faible, comme la famille T3.
Le réseau est un autre composant critique d’une instance EC2, car il détermine à quel point les données peuvent être transférées vers et depuis l’instance. Si votre application nécessite de fortes performances réseau, vous devriez chercher un type d’instance ayant une bande passante réseau plus élevée.
AWS propose différents types d'instances optimisées pour le stockage, telles que les familles I3 et D2, conçues pour les workloads nécessitant un stockage intensif. Ces instances disposent de fonctionnalités d'interfaces réseau à haute vitesse et sont optimisées pour les applications nécessitant une forte utilisation du réseau.
Cependant, si votre application ne nécessite pas de hautes performances réseau, vous pouvez opter pour un type d’instance moins coûteux avec une bande passante réseau plus faible, comme la famille T3.
Le stockage est le dernier composant critique d’une instance EC2, car il détermine la quantité de données pouvant être stockées sur l’instance. Si votre application nécessite beaucoup de stockage, vous devriez rechercher un type d'instance ayant une capacité de stockage plus importante (Elastic Block Store, ou EBS). Cependant, soyez prudent : le stockage est également l'une des ressources cloud les plus coûteuses et peut facilement générer des dépenses inutiles en raison des volumes EBS inactifs et non attachés.
AWS propose différents types d'instances optimisées pour le stockage, telles que les familles I3 et D2, conçues pour les workloads nécessitant un stockage intensif. Ces instances disposent d’une grande quantité de stockage SSD et local, et sont optimisées pour les applications nécessitant un débit IOPS élevé.
Toutefois, si votre application ne nécessite pas beaucoup de stockage, vous pouvez opter pour un type d’instance moins onéreux qui dispose d’une capacité de stockage HDD plus petite, comme la gamme T3.
AWS propose plusieurs modèles de tarification pour les instances EC2, notamment les instances à la demande, les instances réservées et les instances Spot. Chaque modèle a ses avantages et ses inconvénients, et il est essentiel de choisir celui qui correspond le mieux à votre workload et à votre budget.
Les instances à la demande sont facturées à l'heure et ne nécessitent aucun engagement préalable. Elles sont particulièrement adaptées aux workloads dont la demande est variable ou aux projets à court terme.
Les instances réservées offrent une réduction significative du taux horaire en échange d'un paiement initial unique. Elles sont particulièrement adaptées aux workloads dont l'utilisation est prévisible et qui nécessitent un engagement à long terme.
Les instances Spot vous permettent d'enchérir sur des capacités EC2 inutilisées et peuvent vous permettre de réaliser d'importantes économies. Cependant, elles conviennent mieux aux workloads capables de gérer des interruptions et d’avoir des heures de début et de fin flexibles.
Une fois que vous avez sélectionné un type d'instance EC2, il est essentiel de tester et d'optimiser votre application pour garantir son bon fonctionnement. Vous pouvez utiliser des outils comme AWS CloudWatch ou IBM Instana pour surveiller les performances de votre application et identifier les goulots d’étranglement ou les points à améliorer.
Choisir le bon type d’instance EC2 est crucial pour la performance et la rentabilité de votre infrastructure AWS. En comprenant votre workload, en tenant compte des exigences en matière de CPU, de mémoire, de réseau et de stockage, en choisissant le bon modèle de tarification et en testant et en optimisant votre application, vous pouvez vous assurer que vous tirez le meilleur parti de vos instances EC2.
N'oubliez pas que le choix du meilleur type d'instance n'est pas une décision ponctuelle, car votre workload et vos besoins d'infrastructure peuvent évoluer au fil du temps. L'évaluation et l'optimisation continues de vos types d'instances EC2 peuvent vous aider à optimiser les performances et la rentabilité de votre infrastructure AWS.
IBM Turbonomic peut vous aider à gérer ce processus automatiquement en évaluant continuellement les besoins en ressources de vos applications AWS et en générant des actions spécifiques qui permettent d’économiser de l’argent et de garder vos instances EC2 de la bonne taille. Turbonomic utilise le machine learning et l'automatisation, s’intégrant facilement à vos comptes AWS et AWS Billing et génère des actions d’optimisation en moins de 30 minutes.