1. Livres & vidéos
  2. Architecture AWS
  3. Les services de calcul sur AWS
Extrait - Architecture AWS Concevez des infrastructures cloud robustes, sécurisées et évolutives
Extraits du livre
Architecture AWS Concevez des infrastructures cloud robustes, sécurisées et évolutives Revenir à la page d'achat du livre

Les services de calcul sur AWS

Introduction

Dans les coulisses de tout projet cloud, la question du calcul, autrement dit la façon dont s’exécute le code et dont on alloue les ressources informatiques demeurent essentielles.

Que vous soyez développeur, architecte ou simple curieux des technologies AWS, le choix de la solution de calcul adaptée a un impact sur la performance, la fiabilité et même la facture de votre application.

Dans ce chapitre, nous explorons les principaux services de calcul proposés par AWS : EC2, ECS, EKS et Lambda. Chacune de ces options possède sa propre logique d’utilisation : d’un côté des machines virtuelles configurables (EC2), de l’autre un environnement « serverless » où l’on s’affranchit de la gestion des serveurs (Lambda). Entre ces deux extrêmes se trouvent les conteneurs managés via ECS ou orchestrés via Kubernetes (EKS), qui offrent un compromis intéressant pour la mise en place de microservices portables et évolutifs.

Nous commencerons par une vue d’ensemble, puis nous plongerons dans Amazon EC2 et ses bonnes pratiques. Nous examinerons ensuite la montée en charge à l’aide d’Autoscaling et de Load Balancers. Nous verrons comment choisir la bonne solution de conteneurs entre ECS, EKS et Fargate et découvrirons l’univers serverless d’AWS Lambda....

Présentation des options de calcul (EC2, ECS, EKS, Lambda)

1. Une brève histoire du compute sur AWS

Lancé publiquement en 2006, Amazon EC2 (Elastic Compute Cloud) a rapidement pris la forme de « vitrine » du cloud, permettant de louer de la puissance de calcul à l’heure, aujourd’hui facturée à la seconde pour la plupart des instances Linux (avec un minimum de 60 secondes), tandis que Windows et certaines distributions commerciales restent facturées à l’heure. Cette flexibilité était en rupture avec l’achat et la gestion de serveurs physiques traditionnels.

Les besoins ont progressivement évolué vers davantage d’abstraction, notamment via les conteneurs Docker. AWS a répondu en introduisant Amazon ECS (Elastic Container Service), puis un service Kubernetes managé, Amazon EKS (Elastic Kubernetes Service). Plus tard, le service AWS Lambda a fait son apparition pour permettre l’exécution de code sans gestion de serveurs, selon un modèle « serverless ».

On peut résumer ces quatre piliers de calcul comme suit :

  • EC2 procure des machines virtuelles (VM) offrant un contrôle total.

  • ECS déploie des conteneurs Docker managés par AWS.

  • EKS orchestre des conteneurs Kubernetes, mais sur AWS.

  • Lambda exécute des fonctions sans nécessiter...

Amazon EC2 : fonctionnement et bonnes pratiques

EC2 en quelques mots

Amazon EC2 (Elastic Compute Cloud) permet de déployer et configurer des machines virtuelles (instances) dans le cloud AWS. Chaque instance correspond à des ressources choisies (vCPU, RAM, stockage, débit réseau), que l’on peut adapter parmi de nombreuses catégories (T, M, C, R, G, P, etc.). On est facturé en fonction de l’utilisation, et il est possible de redimensionner, d’arrêter ou de démarrer les instances à volonté.

Historiquement, EC2 est l’un des services phares d’AWS, car il offre la possibilité de tout faire sur une instance, en contrepartie de la charge liée à l’OS (patching, sécurité, mises à l’échelle).

1. Fonctionnement

Pour créer une instance, on sélectionne une AMI (Amazon Machine Image) qui définit l’OS et les packages initiaux. On choisit ensuite le type d’instance (t2.micro, m5.large, etc.), les paramètres réseau (VPC, subnet, IP), ainsi que les options de sécurité (Security Group, clés SSH, mots de passe). Après le lancement, on peut se connecter et configurer librement l’instance.

Images/ei03sanstitre.png

Écran de création d’un EC2 sur AWS

Volumes EBS

Par défaut, on utilise souvent un volume EBS (Elastic Block Store) comme disque principal. C’est un stockage persistant et chiffrable dont la taille et les performances varient selon les types : gp3 (usage général), io2 (usage intensif) ou st1/sc1 (HDD moins coûteux).

Cycle de vie des instances

Une instance peut être démarrée...

Conteneurs : choisir entre ECS, EKS et Fargate

L’essor des conteneurs

Docker a radicalement changé la façon de déployer des applications. En regroupant code, dépendances et configuration dans une image, on garantit un déploiement identique sur tous les environnements Docker. Cela simplifie le cycle de développement et encourage la portabilité.

Images/virtualisation.png

Comparaison entre machines virtuelles et conteneurs

Dans le modèle VM, chaque application tourne sur son propre système d’exploitation, via un hyperviseur, ce qui consomme plus de ressources.

Dans le modèle conteneur, plusieurs applications partagent le même OS via un moteur de conteneur (comme Docker), ce qui les rend plus légers, rapides à lancer et plus efficaces en termes de consommation.

Amazon ECS

Amazon ECS (Elastic Container Service) est un orchestrateur de conteneurs « maison » proposé par AWS. Il est plus simple à prendre en main que Kubernetes. L’architecture ECS repose sur des définitions de tâches (task definitions), où l’on précise l’image Docker, les besoins en mémoire et CPU, puis on exécute ces tâches sur un cluster ECS.

Il existe deux modes d’exécution :

  • ECS sur EC2, où l’on gère un cluster d’instances servant d’hôtes aux conteneurs.

  • ECS sur Fargate, où l’on ne gère plus aucun serveur ; AWS fournit l’infrastructure et...

AWS Lambda et serverless : exécuter du code sans serveur

L’essence du serverless

Serverless ne signifie pas l’absence de serveurs, mais que vous n’avez plus à vous en occuper. Avec AWS Lambda, on écrit simplement des fonctions (Node.js, Python, Java, Go, etc.), qu’on télécharge sur AWS et qu’on déclenche soit manuellement, soit via un événement (par exemple l’upload d’un fichier S3).

Principes de base

Une fonction Lambda est un paquet de code (zip ou image Docker) et une configuration (mémoire, délai maximal, variables d’environnement). Son exécution se déclenche à la réception d’un événement (ajout d’un objet dans S3, appel d’API Gateway, message SQS, etc.). Le service Lambda gère automatiquement la concurrence et met à l’échelle sans intervention manuelle, avec une facturation par milliseconde d’exécution.

Avantages et limites

La simplicité d’utilisation est un point fort, puisqu’il n’y a aucune gestion de machines ni de patchs. La montée en charge est instantanée et la facturation extrêmement fine. En revanche, on rencontre des limites : une durée maximale d’exécution de 15 minutes, un modèle sans état (stateless) et les risques de cold start sur certains runtimes....

Comparatif EC2 vs ECS vs EKS vs Lambda : quel service pour quel besoin ?

Maintenant que nous avons détaillé ces services, il est possible de les combiner dans une architecture plus large. Par exemple, un backend peut tourner sur ECS/EKS, des tâches batch sur des instances Spot EC2, et des fonctions Lambda peuvent gérer des événements spécifiques.

Modèle

EC2 : IaaS

ECS : CaaS AWS

EKS : Kubernetes managé

Lambda : FaaS

Gestion Serveurs/OS

Vous gérez le système

Sur ECS-EC2, vous gérez les nœuds. Sur Fargate, non

Sur EKS-EC2, vous gérez les nœuds. Sur Fargate, non

Aucune gestion de serveurs

Évolutivité

Autoscaling Group

ECS Scheduler + Autoscaling

Kubernetes (HPA, Cluster Autoscaler)

Automatique (concurrence élastique)

Complexité du déploiement

Plutôt faible (serveurs « classiques »)

Moyenne (définition de tâches, cluster)

Élevée (courbe d’apprentissage Kubernetes)

Faible à moyenne (packaging et déclencheurs)

Cas d’usage

Applications monolithiques, HPC, bases de données, besoin de contrôle sur l’OS

Microservices Docker, batch, scénarios simples sans K8s

Microservices complexes, multicloud, gros clusters

Fonctions événementielles, tâches ponctuelles

Coûts

Instances payées en continu

Coût...

Conclusion du chapitre

Les services de calcul AWS offrent une diversité propice à un large éventail de besoins et de compétences. EC2 est la solution la plus polyvalente et historique, Autoscaling & Load Balancing en sont des compléments presque incontournables. Les conteneurs, déployés sur ECS ou EKS (avec ou sans Fargate), jouent un rôle majeur dans l’informatique moderne. Enfin, AWS Lambda promet un mode serverless où tout tourne à la demande, selon une facturation très granulaire.

Voici quelques points clés à retenir :

  • La montée en charge est facilitée par les mécanismes d’autoscaling.

  • Il importe de ne jamais négliger la sécurité (Security Groups, IAM, patching).

  • Les coûts, très variables, doivent être surveillés en permanence pour rester sous contrôle.

  • Les conteneurs ECS/EKS constituent une étape intermédiaire naturelle entre la gestion de serveurs EC2 et le « tout serverless » de Lambda.

  • L’approche serverless, bien qu’elle présente des limites, permet de se focaliser sur le code et de minimiser la maintenance.

  • La plupart des organisations démarrent avec EC2 pour une migration rapide, puis évoluent vers des microservices conteneurisés via ECS ou EKS, avant d’intégrer des briques serverless...