Le calcul sur AWS
Prérequis et objectifs
1. Prérequis
Pour aborder ce chapitre dans de bonnes conditions, il est recommandé d’avoir :
Un compte AWS.
Des connaissances de base sur l’utilisation du système d’exploitation Linux, y compris les commandes essentielles pour la gestion des fichiers, des processus, et des permissions.
2. Objectifs
Ce chapitre explore les capacités de calcul offertes par Amazon EC2 (Elastic Compute Cloud), un service clé d’AWS pour exécuter des applications à haute disponibilité et performance. Vous apprendrez à configurer, déployer, et gérer des instances EC2, tout en comprenant leurs cas d’utilisation, caractéristiques, et options de tarification. Ce chapitre couvre également les stratégies d’optimisation des coûts, les fonctionnalités avancées, et les bonnes pratiques pour concevoir des architectures scalables et robustes adaptées à différents besoins métier.
L’objectif est de se familiariser avec les options de calcul sur AWS en déployant des instances, tout en explorant les différents types d’instances, modes de déploiement et options de tarification.
3. Positionnement dans la certification AWS
Ce chapitre est aligné avec les objectifs de la certification AWS Certified Solutions Architect - Associate (SAA-C03), en couvrant les domaines...
Introduction au calcul sur AWS
1. Présentation d’Amazon EC2
![]() |
Amazon EC2 (Elastic Compute Cloud) est un service phare d’Amazon Web Services (AWS), lancé en 2006. Il a apporté une révolution dans le cloud computing en offrant une solution de calcul virtuel à la fois flexible et économique. EC2 permet aux utilisateurs de louer des instances virtuelles, adaptant ainsi leurs ressources informatiques selon leurs besoins spécifiques. |
Ce service est conçu pour fournir une puissance de calcul adaptable pour tout, des applications d’entreprise aux traitements de données volumineuses. Avec EC2, les utilisateurs bénéficient d’une grande variété de configurations d’instances, ce qui leur permet de choisir la combinaison optimale de CPU, de mémoire et de stockage pour leurs applications. Les utilisateurs peuvent également choisir leur système d’exploitation préféré, y compris Linux, Windows, et macOS. De plus, Elastic Compute Cloud permet l’attachement de solutions de stockage telles qu’EBS, Instance Store ou EFS pour des systèmes compatibles, et FSx pour Windows, offrant une flexibilité accrue en matière de gestion des données.
La simplicité d’utilisation, couplée à un modèle de tarification flexible, rend EC2 particulièrement attrayant pour...
Architecture et composants d’EC2
1. Paires de clés
Les paires de clés, ou « Key Pairs », sont un mécanisme de sécurité permettant l’accès aux instances Amazon EC2. Elles permettent l’authentification et l’assurance que seul le détenteur de la clé privée appropriée peut se connecter aux instances via SSH (Secure Shell).
Une paire de clés est constituée de deux clés complémentaires : une clé publique et une clé privée. Lors de la création d’une instance EC2, l’utilisateur a la possibilité de spécifier une clé publique qui sera installée dans l’instance. Cette clé publique est stockée dans le fichier .ssh/authorized_keys de l’instance conformément aux pratiques standard de SSH, permettant à quiconque possède la clé privée correspondante de s’y connecter sécuritairement.
Pour rappel la différence entre clé publique et privée :
-
Clé publique : installée dans l’instance EC2, elle peut être vue et utilisée par n’importe qui, mais elle ne peut pas être utilisée seule pour accéder à l’instance.
-
Clé privée : doit être conservée en sécurité par l’utilisateur. Elle est utilisée pour initier une session SSH vers l’instance. La sécurité de l’instance dépend directement de la confidentialité de cette clé privée.
Il est crucial de stocker la clé privée dans un endroit sécurisé. La perte de la clé privée signifie perdre l’accès à l’instance, et si la clé est compromise, cela peut permettre à des utilisateurs non autorisés d’accéder à vos instances. De plus, il ne faut jamais partager votre clé privée à des personnes externes. La sécurité de vos instances EC2 dépend de la confidentialité de vos clés privées.
En réalité, il est en fait possible de récupérer l’accès à une instance EC2 dont la clé privée a été perdue. Il...
Tarification et coûts associés à EC2
AWS propose plusieurs modèles de tarification pour les instances EC2, chacun conçu pour répondre à différents besoins en termes de flexibilité, de coûts, et de gestion des ressources. En fonction des exigences, que ce soit pour des charges de travail imprévisibles, stables, ou spécifiques, AWS met à disposition divers types de tarification permettant d’optimiser les dépenses tout en garantissant la performance et la disponibilité. Les principaux modèles de tarification incluent la tarification à la demande, la réservation d’instances, les instances Spot ainsi la tarification des instances dédiées. Chacun de ces modèles présente des avantages distincts et des cas d’utilisation spécifiques, que nous allons explorer en détail ci-dessous.
Ces stratégies de tarification s’inscrivent dans le pilier Cost Optimization d’AWS, également connu sous le nom de FinOps. L’objectif est d’optimiser les coûts tout en maintenant les performances, en choisissant le modèle de tarification le plus adapté aux besoins de l’application et de l’entreprise.
1. Modèle de tarification à la demande
Le modèle de tarification à la demande d’AWS est conçu pour offrir une flexibilité maximale, permettant aux utilisateurs de payer uniquement pour la capacité de calcul réellement utilisée, sans engagement à long terme ni paiement initial. C’est celui que nous avons utilisé lors du déploiement de nos instances EC2 dans les précédents chapitres. Ce modèle est particulièrement adapté aux charges de travail avec des besoins imprévisibles ou fluctuants, où il est difficile de prévoir à l’avance la quantité exacte de ressources nécessaires.
Avec la tarification à la demande, nous pouvons démarrer, arrêter et redimensionner nos instances selon les besoins de l’application. Les tarifs sont facturés à l’heure ou à la seconde (selon le type d’instance), ce qui permet de maîtriser les coûts en ajustant les ressources en temps réel....
Fonctionnalités avancées d’EC2
AWS EC2 propose plusieurs fonctionnalités avancées qui permettent d’optimiser la performance, la résilience et la gestion des coûts des instances EC2. Parmi ces fonctionnalités, les Placement Groups et l’EC2 Spot Fleet offrent des outils puissants pour maximiser l’efficacité de nos déploiements.
1. Placement Groups
Les Placement Groups sont une fonctionnalité d’AWS EC2 qui permet de contrôler la manière dont les instances sont placées sur le matériel sous-jacent pour optimiser la performance et la résilience des applications. Il existe trois types de placement groups, chacun adapté à des besoins spécifiques.
![]() |
Le Cluster Placement Group regroupe les instances au sein d’une même zone de disponibilité, sur un cluster de matériel physique unique. Ce type de placement est idéal pour les applications qui nécessitent une faible latence et une bande passante réseau élevée entre les instances, telles que les simulations de calcul intensif, les applications de rendu vidéo, ou les clusters de bases de données. Toutefois, en cas de ressources limitées, AWS pourrait ne pas être en mesure de lancer toutes les instances requises dans le même placement group, ce qui peut poser des défis de capacité. |
Le Spread Placement Group, quant à lui, répartit les instances sur différents racks de matériel physique, chaque rack ayant sa propre alimentation et son propre réseau. Ce type de placement est optimisé pour la haute disponibilité, minimisant le risque de défaillance corrélée. Il est particulièrement adapté aux applications critiques qui doivent rester opérationnelles même en cas de panne d’un rack. Cependant, il est important de noter que le nombre d’instances dans un Spread Placement Group est limité à 7 par zone de disponibilité et 21 dans un groupe, ce qui peut être une contrainte pour les très grands déploiements.
Comme AWS évolue constamment, ces limitations, comme toutes limitations, sont susceptibles de changer à l’avenir. Il est donc recommandé de consulter la documentation officielle d’AWS...
Cas pratiques French Bakery avec EC2
1. Passage au site dynamique de l’entreprise French Bakery
Après avoir lancé son site vitrine avec succès, French Bakery a vu une augmentation significative de son activité grâce à sa présence en ligne. D’autres franchises ont même été ouvertes. Cependant, face à une demande croissante de ses clients, l’entreprise souhaite désormais aller plus loin en proposant une fonctionnalité de commande en ligne. Cette évolution nécessitant un traitement dynamique des données, comme la gestion des commandes et des interactions avec une base de données, nous allons ainsi déployer une application web sur une instance Amazon EC2. Ce déploiement permettra de répondre aux besoins croissants de l’entreprise tout en assurant une flexibilité et une scalabilité adaptées à cette nouvelle fonctionnalité.
Voici le schéma d’architecture du site web que nous allons déployer :

Ce schéma illustre une architecture web déployée sur une instance Amazon EC2. L’architecture repose sur un serveur Nginx qui joue à la fois le rôle de serveur web pour le frontend (demandes sur le chemin /) et de reverse proxy pour le backend Node.js (demandes sur le chemin /api). Les utilisateurs accèdent au serveur EC2 via Internet, en envoyant des requêtes HTTP sur le port 80. Ces requêtes sont ensuite redirigées selon leur chemin : soit vers les fichiers statiques du frontend (hébergés sur le serveur Nginx), soit vers le backend Node.js via le proxy configuré. Le backend interagit avec une base de données PostgreSQL pour stocker et récupérer les données.
L’accès administrateur à l’instance EC2 est restreint au port SSH (22) et limité à une adresse IP spécifique (1.2.3.4/32) conformément aux règles du Security Group, tandis que les règles de sortie (outbound) autorisent tout trafic. Cette configuration garantit un accès sécurisé pour l’administration tout en permettant aux utilisateurs finaux d’accéder aux services nécessaires. Une séparation claire entre les différents composants - frontend, backend...
Validation des acquis : questions/réponses
Si l’état de vos connaissances sur ce chapitre vous semble suffisant, répondez aux questions ci-après.
1. Questions
1 Une entreprise spécialisée dans l’analyse de données massives pour des applications de Big Data et d’analyse d’ERP utilise des applications de traitement de données à grande échelle. Ces applications nécessitent un accès rapide et efficace à de grandes quantités de données stockées en mémoire pour un traitement optimal. L’entreprise recherche des instances capables de gérer des charges de travail intensives en mémoire, mais avec une exigence encore plus élevée en termes de capacité de mémoire pour les calculs complexes. Quelle solution d’instance recommanderiez-vous pour ces charges de travail très exigeantes en mémoire ?
2 Une entreprise utilise une base de données RDS MySQL hébergée sur AWS. Cette base de données ne doit être accessible qu’à partir des instances EC2 ayant le security group sg-xyz attaché. Quelle configuration recommanderiez-vous pour les Security Groups afin de restreindre l’accès à la base de données uniquement aux instances EC2 autorisées ?
3 Une entreprise spécialisée dans l’analyse de données pour le secteur de l’énergie déploie plusieurs instances EC2 pour exécuter des tâches de calcul distribuées, telles que le traitement de grandes quantités de données de consommation énergétique en temps réel. Chaque instance EC2 doit pouvoir connaître l’état et les rôles des autres instances afin de coordonner efficacement les tâches, comme la collecte, l’analyse et la sauvegarde des données dans un stockage centralisé. Pour répondre à ce besoin, l’entreprise cherche une solution qui permet à chaque instance de récupérer des informations sur son propre état, d’interagir avec les autres instances et de réagir en fonction de ces informations. Comment pourriez-vous concevoir un système permettant à chaque instance EC2 de gérer cette coordination...