AWS : comment bien dimensionner les instances EC2

Les instances EC2 mal dimensionnées coûtent plus que nécessaire et limitent les performances des applications. Cet article explique comment éviter cet écueil.

Des instances EC2 mal dimensionnées peuvent avoir un impact considérable sur les coûts du cloud et sur les performances des applications. Les applications qui manquent de ressources risquent de saturer leur CPU ou leur mémoire. L’élasticité automatique (alias autoscaling) peut contribuer à réduire ce risque, mais elle ne garantit pas toujours que les charges de travail restent stables pendant les périodes de forte demande. En redimensionnant les instances EC2 à la juste taille, soit du rightsizing, les équipes cloud peuvent atteindre un équilibre optimal entre le coût et les performances des instances.

Qu'est-ce que le rightsizing des instances EC2 ?

Le rightsizing des instances EC2 est le processus qui consiste à choisir les meilleurs types d'instances pour les charges de travail hébergées sur Amazon EC2 afin d'optimiser les coûts.

Amazon propose plusieurs centaines d'instances EC2 à des prix variables. Chaque type d'instance offre différents niveaux de ressources virtuelles en termes de CPU et de mémoire. Certaines instances sont également dotées de fonctions spéciales, telles que l'accès aux GPU pour prendre en charge les charges de travail d'apprentissage automatique accélérées par GPU. Le choix d'une instance qui fournit plus de CPU, de mémoire ou d'autres ressources qu'une charge de travail ne l'exige peut entraîner des dépenses excessives.

Les administrateurs doivent comprendre les principaux types d'instances au sein d'EC2 afin de savoir quelles images conviennent le mieux à des applications particulières. Par exemple, il est généralement plus rentable d'exécuter des applications nécessitant beaucoup de mémoire en utilisant une instance optimisée pour la mémoire, que d’utiliser une instance polyvalente, même si elle est théoriquement parée pour les consommations mémoire importantes.

Le rightsizing doit être une pratique systématique et continue. Il ne doit pas s’agir d’une pratique d’appoint une fois de temps en temps. Suivez ces bonnes pratiques de redimensionnement pour maintenir les performances à un niveau élevé et les coûts à un niveau bas. Les meilleures pratiques sont les suivantes :

  • Marquer et suivre l'utilisation des ressources de la charge de travail.
  • Contrôler et comparer les coûts.
  • Utiliser des outils de redimensionnement.
  • Tirer parti des plans tarifaires EC2.
  • Changer de famille d'instance.

1/ Marquer et suivre l'utilisation des ressources de la charge de travail. Utilisez les balises en conjonction avec le redimensionnement EC2 pour obtenir des recommandations d'optimisation des coûts. Les balises aident les utilisateurs à suivre les instances et ce qu'ils paient pour chacune d'entre elles.

Le suivi des ressources consommées par les charges de travail sur EC2 permet d'identifier les domaines dans lesquels les instances non optimisées doivent être redimensionnées.

Les clients peuvent suivre l'utilisation des ressources des instances EC2 à l'aide d’Amazon CloudWatch. Ce service fournit des mesures de base des ressources par instance. Il est aussi possible d’utiliser des outils d'observation tiers. Le déploiement d'outils d'observabilité, y compris des offres de gestion des performances des applications, directement sur l'instance, permet de connaître la quantité de CPU, de mémoire et de débit de stockage consommée par des applications ou des processus spécifiques.

Les équipes Cloud peuvent améliorer les performances des charges de travail hébergées sur des instances EC2 afin d'atteindre un équilibre idéal entre coûts et performances. Techniquement, il ne s'agit pas d'une forme de redimensionnement, mais cela permet d'atteindre un objectif similaire.

Désactivez les fonctions inutiles de l'application ou régénérez l'instance sur la base d'un système d'exploitation différent qui coûte moins cher. Ces changements peuvent réduire les ressources consommées par les charges de travail EC2. Cela permet d'obtenir de meilleures performances sur les mêmes types d'instance ou, dans certains cas, de passer à une instance moins coûteuse.

2/ Surveiller et comparer les coûts. Outre le suivi de l'utilisation des ressources, il est important de surveiller les coûts d’EC2. Trouvez les détails de facturation pour les instances EC2 individuelles dans AWS Cost Explorer en ouvrant la console de facturation. Sélectionnez Cost allocation tags. Sélectionnez ensuite les balises appropriées pour toutes les instances EC2 concernées.

Comparez le coût de chaque instance à ses données d'utilisation des ressources. Si une instance utilise peu de ressources mais coûte cher, remplacez-la par un autre type d'instance qui fournit moins de ressources à un prix inférieur. Si l'instance n'utilise pas les ressources qui lui sont allouées, il n'est pas nécessaire de la payer.

3/ Utiliser des outils de redimensionnement. Divers outils peuvent aider à redimensionner les instances EC2. Amazon propose des outils natifs, notamment les suivants :

  • AWS Compute Optimizer. Cet outil utilise l'IA pour générer des recommandations d'optimisation des coûts en analysant les tendances d'utilisation. Sur la base de cette analyse, Compute Optimizer suggère des configurations alternatives qui permettent aux charges de travail d'atteindre les mêmes performances en utilisant une configuration d'instance EC2 différente, réduisant ainsi les coûts.
  • AWS Cost Explorer. Cet outil permet de mieux comprendre les dépenses afin d'identifier les charges de travail pour lesquelles les entreprises pourraient payer trop cher. Il fournit des fonctions d'analyse et de visualisation pour explorer le coût et l'utilisation des instances EC2 et d'autres ressources.

Des plateformes tierces, telles que ProsperOps et IBM Turbonomic, peuvent analyser automatiquement les instances EC2 pour identifier les dépenses inutiles. Dans certains cas, elles peuvent migrer automatiquement les charges de travail vers des types d'instances plus rentables.

4/ Tirer parti des plans tarifaires EC2. Il existe quatre types de plans tarifaires pour les instances EC2 :

  • Instance à la demande. Elle permet d'accéder aux instances sur demande et n'est assortie d'aucune réduction tarifaire.
  • Instance réservée. Les clients bénéficient d'un tarif horaire réduit mais doivent s'engager à utiliser l'instance pendant une certaine période.
  • Instance ponctuelle. Elle offre des remises importantes, mais peut être fermée à tout moment sans avertissement.
  • Hôte dédié. Ce type d'instance offre le plus grand contrôle sur les instances en permettant aux clients de choisir les hôtes physiques et s'accompagne d'un surcoût.

Pour redimensionner une instance EC2 et réduire les coûts, il est important de choisir le bon type d'instance pour une charge de travail donnée. Par exemple, les instances réservées peuvent être une bonne affaire pour un serveur cloud qui héberge une application web fonctionnant indéfiniment. Évitez les instances Spot dans ce cas, car l'instance - ainsi que l'application qu'elle héberge - pourrait s'arrêter sans avertissement. Une Spot Instance convient mieux à une charge de travail de traitement de données par lots qui peut être interrompue et redémarrée plus tard.

Techniquement, l'utilisation de remises tarifaires n'est pas une forme de rightsizing, car elle n'implique pas de modifier l'instance elle-même ; vous passez simplement à un plan tarifaire différent. Néanmoins, cette pratique va de pair avec le rightsizing car elle permet d'améliorer les coûts et les performances.

5/ Changer de famille d'instance. Amazon propose plus d'une demi-douzaine de familles d'instances EC2. Ces catégories d'instances EC2 sont conçues pour différents types de charges de travail.

Outre une famille d'instances à usage général, il existe des types d'instances optimisés pour les charges de travail suivantes, entre autres :

  • Charges de travail à forte intensité de calcul.
  • Charges de travail nécessitant beaucoup de mémoire.
  • Charges de travail nécessitant beaucoup de stockage.

Bien que le changement de famille d'instance ne garantisse pas toujours un coût inférieur sans modification des performances, il le peut souvent. Si vous utilisez actuellement un type d'instance qui n'est pas optimisé pour les charges de travail qu'il héberge, envisagez de le changer.

Diagram showing different types of Amazon EC2 instances

Comment mettre à niveau les instances EC2

Parfois, le redimensionnement d'une instance EC2 nécessite une mise à niveau vers un autre type d'instance. Les charges de travail peuvent changer et une instance différente peut offrir un meilleur équilibre entre les coûts et les performances. Ou encore, Amazon peut lancer de nouveaux types d'instances qui répondent mieux aux différents cas d'utilisation de l'entreprise.

Quoi qu'il en soit, les utilisateurs peuvent mettre à niveau les instances existantes vers une nouvelle instance EC2 en suivant les étapes ci-dessous.

1/ Arrêter l'instance. Tout d'abord, arrêtez l'instance qui recevra la mise à niveau. Pour ce faire, connectez-vous à la console AWS, sélectionnez Instances, choisissez l'instance et cliquez sur le bouton État de l'instance dans le coin supérieur droit de la console.

Screenshot showing Instance state options in Amazon EC2

Ceci ouvre une boîte de dialogue. Utilisez-la pour mettre l'état de l'instance sur Stop.

Screenshot showing the Manage instance state dialog box

Confirmez que l'instance est arrêtée en retournant à l'écran principal Instances.

Screenshot showing a stopped instance in Amazon EC2

Il est nécessaire de confirmer une instance arrêtée, car une instance en cours d'exécution ne peut pas recevoir de mise à niveau. Cependant, il est possible de configurer un groupe d'autoscaling pour mettre à jour les instances tout en évitant les temps d'arrêt.

2/ Changer le type d'instance. Avec l'instance arrêtée, naviguez vers Actions > Paramètres de l'instance > Changer le type d'instance dans l'écran Instances.

Screenshot showing options for Change instance type in Amazon EC2

Cela ouvre une boîte de dialogue qui permet aux utilisateurs de passer à un nouveau type d'instance.

Screenshot showing the dialog box for Change instance type

Dans cet exemple, une instance t2.micro devient une instance t3a.nano. Appuyez sur le bouton Modifier pour que les modifications soient prises en compte.

3/Redémarrer l'instance. Une fois le type d'instance modifié, les utilisateurs doivent redémarrer l'instance. Pour l'exécuter, utilisez le menu Instance state et sélectionnez Start instance.

Screenshot showing the Start instance option in Amazon EC2

Notez que ces étapes supposent que les utilisateurs conservent le même volume Elastic Block Store (EBS) et les mêmes paramètres réseau pour leur instance. Si ce n'est pas le cas, mettez d'abord à niveau l'instance, puis ajustez sa configuration EBS et réseau.

Comment mettre à niveau les instances EC2 sans interruption de service

Comme nous l'avons mentionné, Amazon ne permet pas de mettre à niveau une instance EC2 en cours d'exécution. Les utilisateurs doivent d'abord l'arrêter. Cela signifie généralement que les mises à niveau nécessitent un temps d'arrêt pour toutes les charges de travail hébergées sur l'instance que les utilisateurs mettent à niveau.

Il existe toutefois des solutions de contournement. L'une d'entre elles consiste à utiliser des groupes de mise à l'échelle automatique. Cette approche permet aux applications de continuer à fonctionner en les configurant pour qu'elles s'exécutent sur plusieurs instances. Les utilisateurs peuvent arrêter une instance et effectuer la mise à niveau sans arrêter l'application.

Une autre stratégie consiste à utiliser les déploiements bleu/vert. Il s'agit de mettre en place deux environnements : l'un où l'instance EC2 d'origine héberge une application et l'autre où l'application s'exécute sur un nouveau type d'instance. Lorsque le moment est venu d'arrêter le type d'instance d'origine, modifiez les paramètres du réseau pour rediriger le trafic vers le nouvel environnement.

Cette approche ne met pas techniquement à niveau une instance ; elle remplace une ancienne instance par une plus récente et nécessite deux instances qui fonctionnent simultanément. Toutefois, elle permet de passer à un nouveau type d'instance sans interruption de service.

Faire du rightsizing une pratique continue

Les charges de travail évoluent au fil du temps, c'est pourquoi il faut s'efforcer de faire du rightsizing EC2 un processus continu. Souvent, un type d'instance EC2 n'apporte plus de valeur ajoutée parce que sa charge de travail n'a plus besoin du même CPU, de la même mémoire ou d'autres ressources utilisées auparavant.

Les outils de surveillance des coûts qui fonctionnent en continu peuvent également aider à fournir un examen continu des types d'instances EC2. Une autre option consiste à exiger des évaluations régulières des sélections d'instances. Cela pourrait être une fois par mois et coïncider avec le paiement de la facture AWS.

Pour approfondir sur IaaS