Conteneurisation
Prérequis et objectifs
1. Prérequis
Un compte AWS configuré.
(Optionnel) Docker installé sur votre environnement.
2. Objectif
Comprendre les principes de la conteneurisation et savoir utiliser les services AWS dédiés pour le déploiement, la gestion et l’orchestration des conteneurs (microservices).
Ce chapitre explore les concepts de la conteneurisation et les solutions AWS pour la gestion et l’orchestration des conteneurs. Il couvre Docker, Kubernetes, ainsi que les services managés comme Amazon ECS, EKS, Fargate et ECR pour assurer une gestion efficace des workloads conteneurisés.
3. Positionnement dans la certification AWS
Ce chapitre est en lien avec plusieurs objectifs de la certification AWS Certified Solutions Architect - Associate (SAA-C03) :
-
Domaine 2 : Conception d’architectures résilientes (26 %)
-
Orchestration des conteneurs avec Amazon ECS et Amazon EKS.
-
Gestion des images de conteneurs avec Amazon ECR.
-
Domaine 3 : Conception d’architectures hautement performantes (24 %)
-
Déploiement et gestion de conteneurs optimisés et évolutifs.
-
Exécution des conteneurs sans gestion de serveurs avec AWS Fargate.
-
Domaine 4 : Conception d’architectures optimisées en termes de coûts (20 %)
-
Optimisation des coûts de stockage et d’exécution des conteneurs avec Amazon ECR, ECS et EKS...
Qu’est-ce que la conteneurisation ?
1. Définition et principes de la conteneurisation
La conteneurisation est une méthode de virtualisation légère qui consiste à regrouper une application et toutes ses dépendances (bibliothèques, fichiers de configuration, runtime, etc.) dans un conteneur autonome. Contrairement à la virtualisation traditionnelle avec des machines virtuelles (VM), la conteneurisation repose sur un partage du noyau du système d’exploitation entre les différents conteneurs, ce qui les rend plus légers, rapides à démarrer et faciles à déplacer.
Un conteneur garantit que l’application s’exécutera de manière identique dans n’importe quel environnement, qu’il s’agisse d’un poste de développement local, d’un serveur de production ou d’un cloud public comme AWS. Cela permet d’éliminer de nombreuses erreurs dues à des différences d’environnement entre développement et production.
La conteneurisation respecte différents principes fondamentaux :
-
Isolation : chaque conteneur fonctionne dans son propre espace d’exécution isolé des autres conteneurs et de l’hôte sous-jacent. Cela garantit que les différentes applications ou services conteneurisés n’interfèrent pas les uns avec les autres, même si elles utilisent des bibliothèques ou dépendances différentes.
-
Cohérence et portabilité : un conteneur encapsule tout ce qui est nécessaire à l’exécution d’une application. Par conséquent, une fois qu’une application est empaquetée dans un conteneur, elle peut être exécutée sur n’importe quelle machine ou plateforme prenant en charge les conteneurs, sans modification. Cette portabilité est particulièrement importante dans les environnements multi-clouds et hybrides.
Les conteneurs permettent également d’éviter le classique : « ça marche sur ma machine », en fournissant toujours le même environnement d’exécution, quel que soit l’endroit où ils sont déployés. Cela améliore grandement la fiabilité...
Amazon ECR
1. Présentation d’Amazon ECR
![]() |
Amazon Elastic Container Registry (ECR) est un service entièrement managé d’AWS conçu pour stocker, gérer et déployer des images conteneurisées de manière sécurisée. Il s’intègre étroitement avec les services d’orchestration de conteneurs comme Amazon ECS, EKS et AWS Fargate, offrant ainsi une solution clé pour les entreprises utilisant des architectures conteneurisées. ECR élimine la gestion complexe d’un registre d’images privé et garantit une haute disponibilité ainsi qu’une durabilité des images grâce à l’infrastructure AWS sous-jacente. |
Contrairement à Docker Hub, qui propose également des registres privés mais impose des limites dans sa version gratuite, Amazon ECR est conçu pour offrir un contrôle d’accès granulaire via IAM et une intégration native avec l’écosystème AWS. Il permet de gérer les permissions de manière fine et centralisée, garantissant une sécurité accrue et simplifiant l’accès aux images pour les services AWS tels qu’ECS, EKS et Fargate.
En plus de ses dépôts privés, Amazon ECR propose également un registre public accessible à l’adresse https://gallery.ecr.aws/. Ce registre public permet de partager des images conteneurisées de manière ouverte et facilite la collaboration entre développeurs, tout en bénéficiant des performances et de la fiabilité de l’infrastructure AWS.
2. Fonctionnalités principales d’Amazon ECR
Amazon ECR offre une série de fonctionnalités avancées conçues pour simplifier la gestion des images conteneurisées tout en assurant un haut niveau de sécurité et d’intégration avec les services AWS :
-
Dépôts privés et gestion fine des accès : Amazon ECR permet de créer des dépôts privés où les images sont accessibles uniquement aux entités...
Amazon ECS
1. Présentation d’Amazon ECS
![]() |
Amazon ECS (Elastic Container Service) est un service d’orchestration de conteneurs entièrement managé, créé par AWS pour répondre aux besoins croissants des entreprises souhaitant déployer et gérer facilement des applications conteneurisées. Conçu pour simplifier le déploiement de conteneurs sur le cloud, ECS offre une gestion automatisée et scalable des conteneurs tout en intégrant de manière transparente l’ensemble des services AWS. Contrairement aux orchestrateurs traditionnels comme Kubernetes, ECS se distingue par sa simplicité d’utilisation et son intégration native avec des services tels qu’Amazon ECR, CloudWatch et IAM, ce qui en fait un choix privilégié pour les entreprises utilisant déjà l’infrastructure AWS. |
ECS offre deux principaux modes d’exécution : un mode basé sur des instances EC2 et un mode entièrement serverless via AWS Fargate. Cette flexibilité permet aux utilisateurs de choisir l’approche la plus adaptée à leurs besoins, que ce soit pour gérer leurs propres instances EC2 ou pour se concentrer uniquement sur les conteneurs grâce à une infrastructure gérée par AWS.
L’un des avantages majeurs d’Amazon ECS est son intégration native avec des services tels qu’Amazon ECR pour la gestion des images conteneurisées, CloudWatch pour la surveillance des tâches, IAM pour la gestion fine des permissions et de la sécurité. Grâce à ces intégrations, ECS facilite la gestion des applications conteneurisées tout en offrant une scalabilité automatique et un haut niveau de sécurité.
Depuis son lancement, Amazon ECS a considérablement évolué et s’est enrichi de fonctionnalités telles que l’auto scaling, le support des tâches programmées (Scheduled Tasks), et plus récemment Amazon ECS Anywhere, qui permet d’exécuter et de gérer des conteneurs sur des infrastructures on-premises ou dans d’autres clouds. Cette capacité à orchestrer des conteneurs de manière hybride fait d’ECS une solution puissante pour les entreprises cherchant...
Amazon EKS
1. Présentation d’Amazon EKS
![]() |
Amazon Elastic Kubernetes Service (EKS) est un service entièrement managé d’orchestration de conteneurs proposé par AWS, basé sur Kubernetes. Kubernetes est une plateforme open source extrêmement populaire, conçue pour automatiser le déploiement, la gestion et la mise à l’échelle des applications conteneurisées. Avec EKS, AWS simplifie la gestion de Kubernetes en prenant en charge l’infrastructure sous-jacente et les opérations complexes, comme la configuration des clusters, les mises à jour et la gestion des nœuds maîtres (control plane). |
EKS constitue une alternative à Amazon ECS, bien que les deux services visent la même finalité, ils diffèrent dans leur approche. ECS est une solution propriétaire d’AWS, conçue pour une intégration native et simplifiée avec les services de l’écosystème AWS, tandis qu’EKS repose sur Kubernetes, un standard open source mondialement adopté. Cette distinction permet aux entreprises de choisir la solution la mieux adaptée à leurs besoins : ECS pour une simplicité d’utilisation optimale dans un environnement 100 % AWS, et EKS pour les équipes ayant déjà une expertise Kubernetes et cherchant une portabilité accrue de leurs charges de travail.
L’un des principaux atouts d’EKS réside dans sa compatibilité totale avec l’écosystème Kubernetes. Cela signifie que les entreprises ayant déjà adopté Kubernetes en on-premises ou sur d’autres clouds peuvent facilement migrer ou étendre leurs charges de travail sur AWS, sans changer la logique d’implémentation de leurs applications ni les outils qu’elles utilisent. Cette portabilité fait d’EKS un choix privilégié pour les organisations souhaitant adopter une stratégie multi-cloud ou hybride, tout en bénéficiant de la fiabilité et des performances de l’infrastructure AWS.
Contrairement à ECS, qui simplifie fortement l’expérience utilisateur grâce à une intégration directe avec des services comme Amazon ECR, CloudWatch ou IAM, EKS suit les standards de Kubernetes...
Cas pratique de la conteneurisation avec FrenchBakery
Passage du site FrenchBakery en microservices
Actuellement, FrenchBakery repose sur une architecture frontend-backend distincte, mais le backend reste un bloc unique centralisant plusieurs responsabilités. Pour accompagner notre croissance et intégrer de nouveaux services (gestion des paiements, recommandations, fidélité), nous évoluons vers une architecture microservices.
Ce passage permettra une meilleure scalabilité, des déploiements indépendants et une meilleure résilience en isolant les fonctionnalités critiques. Avec la multiplication des services, cette approche devient essentielle pour garantir flexibilité, performance et évolutivité du système.
L’architecture finale sera comme ceci :

Tout d’abord, nous allons créer des dépôts ECR pour stocker nos images Docker. Rendez-vous dans la console ECR, puis cliquez sur Create pour créer un dépôt pour nos images Docker.

Donnez comme nom « frenchbakery/frontend », puis cliquez sur Create.

Répétez les mêmes actions en créant les dépôts suivants : frenchbakery/products frenchbakery/orders et frenchbakery/reviews.

Nous pousserons nos images Docker ensuite dans nos dépôts ECR. En attendant, rendez-vous dans la console ECS, puis cliquez sur Clusters, puis sur Create cluster.

Donnez comme nom « frenchbakery » à votre cluster. Choisissez ensuite Fargate pour votre infrastructure. Cela permet à ECS de gérer l’infrastructure automatiquement, sans avoir à gérer des instances EC2. Enfin, cliquez sur Create pour créer votre cluster.

Vous remarquerez que le cluster est provisionné automatiquement à travers CloudFormation si vous consultez le service.
Rendez-vous ensuite dans l’onglet Task definitions dans ECS, puis cliquez sur Create new task definition.

Donnez comme nom « frontend » à votre définition de tâche. Concernant les ressources, sélectionnez .25 vCPU et .5 GB de mémoire.

Laissez le champ Task role vide. Ce paramètre permet d’attribuer des permissions spécifiques aux tâches. Par exemple, si notre...
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 souhaite moderniser son infrastructure en migrant ses applications monolithiques vers une architecture plus flexible et scalable. Quelle approche permettrait de garantir l’isolation des services tout en optimisant l’utilisation des ressources ?
2 Une équipe DevOps veut centraliser et sécuriser ses images de conteneurs, tout en s’assurant qu’elles sont facilement accessibles pour le déploiement sur AWS. Quelle approche permettrait de gérer ces images efficacement ?
3 Une entreprise souhaite réduire les coûts liés au stockage des images conteneurisées en supprimant automatiquement les anciennes versions non utilisées. Quelle fonctionnalité devrait-elle mettre en place ?
4 Une application web est conteneurisée et doit être déployée sur AWS sans gestion manuelle des serveurs sous-jacents. Quelle solution permettrait d’exécuter ces conteneurs de manière serverless ?
5 Un administrateur souhaite exécuter des conteneurs sur AWS tout en gardant un contrôle total sur l’infrastructure sous-jacente et en utilisant un orchestrateur bien connu du marché Kubernetes. Quelle approche doit-il privilégier ?
6 Un site e-commerce doit gérer des pics de trafic saisonniers et veut que ses conteneurs puissent automatiquement augmenter ou réduire en nombre en fonction de la demande. Quelle stratégie doit être mise en place ?
7 Un administrateur doit configurer un cluster de conteneurs pour garantir que les services restent disponibles même en cas de panne d’une instance sous-jacente. Quelle architecture doit-il adopter pour assurer cette résilience ?
8 Une entreprise veut limiter l’accès à ses conteneurs en production afin que seuls les comptes autorisés puissent extraire et déployer des images. Quelle méthode peut être utilisée pour sécuriser l’accès aux images conteneurisées ?
9 Une équipe DevOps doit exécuter des conteneurs avec un accès minimal aux ressources système pour réduire les risques...


