instances-ec2-aws

Publié le 26 janvier 2023.

Vous vous lancez dans le cloud et avez choisi AWS comme cloud provider, mais vous êtes perdus face à des noms tels que T2, R6a ou X2iedn ?

Cet article va vous permettre de comprendre ce que sont les instances EC2 d’AWS puis de vous donner des pistes à suivre pour choisir votre première instance.

Déterminer les configurations nécessaires pour vos usages

Les instances EC2 sur AWS sont des serveurs virtuels qui peuvent être utilisés pour exécuter des applications et des services sur le cloud d'AWS. Elles sont caractérisées par des ressources telles que le CPU, la RAM, la capacité de stockage, ou encore la bande passante.

Avant même de vous lancer dans l’exploration des différentes instances EC2 d’AWS, il est nécessaire de bien connaître vos besoins et vos cas d’usage. Vous serez donc amené dans un premier temps à bien connaître vos applications et quelles configurations sont nécessaires pour les faire fonctionner.

Plusieurs questions sont à se poser pour savoir quelles caractéristiques sont nécessaires pour que vos applications tournent correctement. Il faut notamment connaître le système d’exploitation, ainsi que les quantités dont vous avez besoin pour les ressources suivantes :

  • vCPU: Ce sont les cœurs du processeur et donc sa puissance (l’unité de calcul du processeur étant un cœur). Plus il y a de cœurs, plus le processeur peut effectuer un grand nombre de tâches ou de plus grosses tâches, et plus les performances seront élevées pour effectuer des calculs.
  • GPU : C’est le processeur graphique qui assure normalement les calculs d’images, mais ceux-ci peuvent également être intéressants pour effectuer des calculs ayant besoin de performances plus élevées que celles des CPU.

  • RAM : Il s’agit de la mémoire vive qui permet de stocker l’information pendant que le CPU fait les calculs. Plus la RAM est élevée, plus le CPU pourra accéder rapidement aux données nécessaires pour réaliser ses calculs.

  • Espace de stockage : Plus l’application se base sur des fichiers de grande taille ou de nombreux fichiers de petite taille, plus celui-ci devra être important.

  • Bande passante réseau : À considérer si votre application effectue beaucoup d’opérations réseau (téléchargement / upload de données, contact d’APIs…) 

Vous pouvez par ailleurs être amené à vous poser d’autres questions sur vos cas d’usages, tels que la zone géographique que vous ciblez pour faire tourner vos applications. Cela peut s’avérer utile dans des cas, par exemple :

  • Pour limiter la latence pour vos utilisateurs finaux. En effet, il vaut mieux héberger en Europe une application destinée à un public européen plutôt qu’en Amérique du Nord.

  • Pour vous conformer à certaines législations, si vous hébergez des données de santé et que vous souhaitez notamment obtenir votre certification HDS.

Comprendre les différentes familles d’instances

Maintenant que vous en savez plus sur vos cas d’usage et vos applications, vous pouvez vous pencher sur les différents types d’EC2 proposées par AWS !

AWS propose un classement en cinq grandes familles qui sont les suivantes :

  • Polyvalent : Ce sont les instances les plus équilibrées entre les différentes ressources, elles présentent un bon compromis entre CPU, RAM, débit réseau, … Ce sont généralement celles qui sont utilisées pour héberger des sites web et / ou pour débuter.
  • Calcul optimisé : Elles mettent l’accent sur les performances des processeurs. Elles peuvent ainsi exécuter un grand nombre de calculs et sont idéales pour les modélisations scientifiques, ou toute autre application nécessitant du calcul intensif.

  • Mémoire optimisée : Ce sont les instances qui ont la RAM la plus élevée. permettent d’avoir une grande vitesse d’accès aux données stockées en mémoire vive. Si vous avez besoin d’accéder rapidement à une grosse base de données, elles seront alors idéales.

  • Calcul accéléré. Ces EC2 sont similaires à celles de calcul optimisé, mais utilisent des processeurs graphiques. Elles ont donc des capacités de calcul encore plus importantes. Elles peuvent être utilisées pour des applications de machine learning par exemple.

  • Stockage optimisé. Si ce sont les accès à de grandes quantités de données qui sont importants pour vous, alors ces instances peuvent être idéales. Elles sont conçues pour les charges de travail qui nécessitent un accès élevé et une large bande passante à un grand volume de stockage.

Ce sont des facteurs généraux qui vous permettront de faire un premier tri et vous orienter vers les instances EC2 d’AWS qui semblent être le plus adaptées à vos usages. Mais une fois la famille la plus appropriée sélectionnée, il vous faudra regarder quelle instance pourra correspondre le mieux à vos besoins. Et ce ne sera pas une mince affaire !

Comprendre les instances

Une fois que vous avez identifié la famille qui semble correspondre le mieux à vos besoins, vous pouvez vous pencher sur le choix de celle qui répondra à vos besoins. Les caractéristiques de vos applications déterminées au premier chapitre vous aideront pour choisir l’EC2 d’AWS qui vous conviendra le mieux.

Vous allez alors vous retrouver face à de nombreux noms tels que T2.micro, R6a.large ou encore X2iedn.4xlarge. Ces noms peuvent paraître complexes à appréhender, mais ils sont construits de la manière suivante :

  • la première lettre correspond à une catégorie d’instance

  • le chiffre suivant correspond à la génération de la catégorie (T3 est donc une génération plus récente que T2)

  • les dernières lettres, quant à elles, vont indiquer si le type d’instance est optimisé et pour quoi (ainsi R6a possède un a pour indiquer qu’elle est alimentée par des processus AMD et qu’elle est ainsi optimisée pour de lourdes charges de travail en termes de mémoire)

  • les dénominations suivant le point, déterminent la taille de l’EC2 (et donc ses caractéristiques de nombre de vCPU, quantité de RAM, …). Cette taille peut aller de nano à 32xlarge.

Expliquons désormais comment lire les instances EC2 d’AWS que nous avons cités précédemment :

  • T2.micro est une instance à usage général de la catégorie T de la 2e génération (il existe des T3 et T4) et a une taille micro. Elle possède, entre autres, les caractéristiques suivantes :

    • 1 vCPU

    • 1 Gio de RAM

  • R6a.large est une instance à mémoire optimisée de la catégorie R de la 6e génération (il existe des R4, R5, R6 et R7). Celle-ci possède un processeur AMD EPYC de 3e génération (d’où le “a”). Elle possède, entre autres, les caractéristiques suivantes :

    • 2 vCPU

    • 16 Gio de RAM

    • jusqu’à 12,5 Gbit/s de bande passante réseau


  • X2iedn.4xlarge est une instance à mémoire optimisée de la catégorie X de la 2e génération possédant des processeurs Intel Xeon Scalable de troisième génération et de taille 4xlarge. Elle possède, entre autres, les caractéristiques suivantes :

    • 16 vCPU

    • 512 Gio de RAM

    • 25 Gbit/s de bande passante réseau

    • un stockage d'instance de 475Go

Cas pratique de choix d’instances


Passons désormais à quelques cas pratiques pour comprendre comment mettre cela en application.

Un passionné de technologie souhaite héberger son blog d’articles sur la tech sur AWS. Pour choisir son EC2, il va suivre le raisonnement suivant :

  • Il sait que son site reçoit environ 100 visiteurs en simultané au maximum

  • Il lui faudra donc une instance avec une quantité suffisante de CPU pour gérer les connexions simultanées, mais il souhaite également avoir de la polyvalence. Il se dirige donc vers une instance polyvalente.

  • Il anticipe une augmentation de la charge sur son site, car il travaille en parallèle sur la visibilité de son site. Il estime tripler le nombre de visiteurs dans 3 mois. Cette prévision ainsi que les critères de pricing font qu’il va choisir la t3.small qui est un peu plus volumineuse que ses besoins actuels.

Il aurait pu s’orienter vers d’autres solutions plus simples telles que CloudFront, mais son choix se porte tout de même vers une instance EC2, car il utilise de nombreux autres services proposés par AWS.

L’entreprise X a créé une application permettant de consulter rapidement les données de santé de ses adhérents. Pour bien choisir, ils vont suivre le raisonnement suivant :

  • Il est prévu que l’app donne accès à beaucoup de données et qu’elle ait besoin de garder ces données en mémoire.

  • Il est donc logique de s’orienter vers une la famille des mémoires optimisées

  • Un bon équilibre entre les caractéristiques nécessaires (nombre d'usagers, volume de données à traiter) et le pricing leur a permis de choisir l’instance r5a.8xlarge

Soucieux d’être conformes aux normes HDS, ils vont également se contraindre à louer des instances EC2 AWS en Europe, et plus précisément sur la zone “eu-west-3”.

Conclusion

Les instances EC2 d’AWS sont si nombreuses qu’il vous faudra du temps pour vous familiariser avec toutes celles qui existent, mais vous avez désormais une meilleure compréhension de ce qui est proposé par Amazon Web Services. La plus recommandée pour débuter (et également éligible à l’offre gratuite) est l’instance t2.micro. Selon votre cas d’usage et l’évolution de vos applications, vous pourriez être amené à en utiliser d’autres avec des caractéristiques plus élevées.

Si, une fois votre choix fait, vous avez besoin d’augmenter les capacités de vos instances, vous pourrez facilement choisir un nouveau type d’EC2 plus puissant, ou alors ajouter de nouvelles instances en parallèle. Des solutions telles que Kubernetes, Karpenter ou encore l’autoscaling pourront vous aider à mettre à l’échelle vos instances pour répondre au mieux à vos besoins.