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 :
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.
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 :
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.
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 !
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
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”.
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.