1. Livres & vidéos
  2. AWS
  3. Automatisation de l'architecture
Extrait - AWS Préparation à la certification Solutions Architect - Associate
Extraits du livre
AWS Préparation à la certification Solutions Architect - Associate Revenir à la page d'achat du livre

Automatisation de l'architecture

Prérequis et objectifs

1. Prérequis

Un compte AWS configuré.

Des connaissances en lignes de commandes pour le cas pratique.

2. Objectif

L’objectif de ce chapitre est de fournir une compréhension approfondie des solutions AWS d’automatisation, en explorant leurs fonctionnalités, leurs cas d’usage et les bonnes pratiques associées.

Ce chapitre explore les services AWS dédiés à l’automatisation et à la gestion des infrastructures cloud, permettant de simplifier le déploiement, la configuration et l’administration des ressources AWS. Grâce à des outils comme AWS CloudFormation, Elastic Beanstalk, Systems Manager et OpsWorks, les entreprises peuvent automatiser leurs opérations, améliorer la scalabilité et renforcer la sécurité de leurs environnements cloud.

3. Positionnement dans la certification AWS

Ce chapitre couvre plusieurs domaines de la certification AWS Certified Solutions Architect - Associate (SAA-C03) :

  • Domaine 2 : Conception d’architectures résilientes (26 %)

  • Orchestration et automatisation avec CloudFormation, Elastic Beanstalk et OpsWorks.

  • Gestion des configurations et automatisation des mises à jour via Systems Manager.

  • Domaine 3 : Conception d’architectures hautement performantes (24 %)

  • Déploiement optimisé et évolutif des applications...

AWS CloudFormation

1. Fonctionnement et composants

a. Présentation d’AWS CloudFormation

images/08CE01.png

AWS CloudFormation est un service d’orchestration et d’automatisation de l’infrastructure, qui permet aux utilisateurs de modéliser, déployer et gérer des ressources AWS sous forme de code. Il repose sur un modèle déclaratif : l’utilisateur décrit les ressources nécessaires et leur configuration dans un template, et CloudFormation se charge de créer ces ressources dans le bon ordre, avec les paramètres exacts spécifiés. Cette approche élimine la nécessité de configurer manuellement les ressources, garantissant ainsi une gestion cohérente et reproductible des infrastructures. L’utilisation du service est gratuite, seules les ressources créées sont facturées.

L’un des principaux atouts de CloudFormation est sa capacité à mettre en œuvre l’Infrastructure as Code (IaC), c’est-à-dire de gérer l’infrastructure au même titre que du code applicatif. Cela offre plusieurs avantages tels que :

  • Contrôle total : aucune ressource n’est créée manuellement, ce qui permet un contrôle rigoureux des déploiements.

  • Revue des changements : les modifications apportées à l’infrastructure passent par une validation du code, permettant une meilleure gestion des évolutions.

  • Réduction des coûts : chaque ressource déployée est automatiquement taguée, ce qui facilite le suivi des coûts par stack. Il est également possible d’estimer les coûts à l’avance en utilisant les informations contenues dans le template CloudFormation.

De plus, CloudFormation permet de considérablement augmenter la productivité des équipes en automatisant de nombreuses tâches répétitives liées à la gestion de l’infrastructure :

  • Recréation rapide de l’infrastructure : il devient possible de détruire et de recréer rapidement des environnements entiers en quelques minutes, facilitant ainsi les tests ou les déploiements temporaires.

  • Génération automatique de diagrammes : AWS propose des outils qui permettent...

AWS Elastic Beanstalk

1. Introduction et objectifs

a. Présentation d’AWS Elastic Beanstalk

images/08CE02.png

AWS Elastic Beanstalk est une solution de gestion des applications orientée développeurs, conçue pour simplifier le déploiement et la gestion d’applications web dans le cloud. Il permet aux utilisateurs de télécharger leur code et de laisser le service gérer automatiquement le déploiement, la création des ressources sous-jacentes (instances EC2, groupes Auto Scaling, Load Balancers, etc.), ainsi que la maintenance de l’infrastructure. Ce service est particulièrement adapté aux équipes de développement ayant une connaissance limitée de l’infrastructure cloud et souhaitant se concentrer sur l’écriture de code et l’évolution de leurs applications.

Elastic Beanstalk prend en charge un large éventail de plateformes de développement populaires, notamment :

  • Java Standard Edition

  • .NET

  • PHP

  • Node.js

  • Python

  • Ruby

  • Go

  • Docker

Le processus est simple : on télécharge le code, et Elastic Beanstalk gère automatiquement le déploiement. Selon la plateforme choisie, il déploie l’application sur des serveurs préconfigurés avec des logiciels tels qu’Apache, NGINX, Passenger, Puma, et Microsoft Internet Information Services (IIS). Cela permet de garantir un environnement optimisé et cohérent, prêt à l’emploi, avec des options de scalabilité et de haute disponibilité activée par défaut.

images/08CE03.png

Ce schéma illustre le modèle de gestion partagée proposé par AWS Elastic Beanstalk, où certaines couches de l’infrastructure sont gérées par AWS et d’autres par l’utilisateur. AWS prend en charge les aspects liés à l’infrastructure sous-jacente, notamment l’hôte physique, le système d’exploitation, l’interpréteur de langage (comme Python, Node.js ou PHP), le serveur d’application et le serveur HTTP (Apache, Nginx). Cela permet à l’utilisateur de se concentrer uniquement sur le développement et la gestion de son code applicatif, sans se soucier des détails d’administration de l’infrastructure. Ce modèle facilite le déploiement...

AWS Systems Manager

1. Introduction à AWS Systems Manager

images/08CE04.png

AWS Systems Manager est un service centralisé conçu pour simplifier la gestion, l’automatisation et la supervision des machines virtuelles, serveurs et instances EC2, aussi bien sur AWS que dans des environnements hybrides (incluant les machines on-premise). Ce service fournit une interface unique permettant aux administrateurs d’effectuer des opérations de gestion sur un ensemble de machines, sans avoir à se connecter manuellement à chacune d’elles via SSH ou RDP.

Un composant clé d’AWS Systems Manager est son agent logiciel, appelé SSM Agent (Systems Manager Agent), qui doit être installé et exécuté sur chaque machine à gérer. Cet agent est responsable de recevoir les commandes de Systems Manager et d’exécuter localement les tâches demandées, comme l’installation de packages, les mises à jour ou l’exécution de scripts. L’agent est préinstallé sur les AMI officielles d’Amazon Linux, Ubuntu et Windows Server. Pour d’autres systèmes d’exploitation ou environnements, il peut être ajouté manuellement.

En automatisant les tâches répétitives et critiques, AWS Systems Manager aide les équipes DevOps et administrateurs système à gagner en efficacité tout en réduisant les erreurs humaines. Ce service propose des fonctionnalités avancées telles que la gestion centralisée des patchs, l’exécution de commandes à distance, la collecte d’inventaires ou encore la gestion des paramètres sensibles.

Voici quelques exemples d’utilisation typiques :

  • mise à jour des machines avec Patch Manager pour garantir que toutes les instances respectent les dernières normes de sécurité ;

  • exécution de commandes à distance avec Run Command, permettant d’appliquer des actions simultanées sur plusieurs machines sans connexion directe ;

  • gestion centralisée des paramètres sensibles avec Parameter Store, pour stocker et chiffrer des secrets comme des mots de passe ou des chaînes de connexion ;

  • automatisation des tâches récurrentes avec Automation, facilitant...

AWS OpsWorks

1. Introduction à AWS OpsWorks

images/08CE15.png

AWS OpsWorks est un service de gestion de configuration entièrement managé qui facilite l’orchestration, le déploiement et la gestion des applications sur une infrastructure dynamique. Basé sur des outils populaires comme Chef et Puppet, OpsWorks permet d’automatiser les tâches d’administration système complexes telles que l’installation de logiciels, la gestion de configurations et les mises à jour de sécurité sur un grand nombre de serveurs.

Le service permet une gestion fine des instances EC2 en intégrant des fonctionnalités avancées comme l’utilisation de recettes Chef ou de manifestes Puppet pour automatiser la configuration des machines. 

OpsWorks se distingue par sa capacité à gérer aussi bien des environnements cloud qu’hybrides (incluant des serveurs on-premise). Les utilisateurs peuvent définir des stacks représentant différentes parties de l’application (comme la couche web, la couche applicative et la couche de base de données). Chaque couche peut être associée à des scripts de configuration spécifiques, permettant un déploiement cohérent et automatisé sur toutes les instances d’un même environnement.

AWS OpsWorks offre plusieurs avantages clés :

  • Automatisation : grâce à l’utilisation de recettes Chef ou de manifestes Puppet, les administrateurs peuvent automatiser des tâches répétitives telles que la mise à jour de packages ou l’installation de logiciels.

  • Flexibilité : OpsWorks prend en charge des architectures multi-tier complexes et permet une gestion fine des différentes couches d’une application.

  • Gestion centralisée : il fournit une interface unique pour orchestrer et gérer les ressources, ce qui simplifie l’administration d’environnements de grande envergure.

  • Support des environnements hybrides : OpsWorks permet de gérer à la fois des instances dans le cloud AWS et des serveurs physiques ou virtuels on-premise.

2. Composants principaux

a. OpsWorks Stacks

OpsWorks Stacks est l’un des composants de base du service AWS OpsWorks. Dans le même principe que CloudFormation, OpsWorks permet de créer...

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 déployer une architecture multi-tier sur AWS en automatisant la création et la gestion de ses ressources (VPC, EC2, RDS, ALB). Elle veut éviter les déploiements manuels et assurer la cohérence de son infrastructure. Quelle solution AWS peut-elle utiliser pour provisionner et gérer ces ressources de manière déclarative ?

2 Une entreprise utilise AWS CloudFormation pour gérer son infrastructure. Elle s’aperçoit que certaines ressources ont été modifiées manuellement, ce qui crée un décalage entre l’état réel de l’infrastructure et la configuration définie dans CloudFormation. Comment AWS permet-il de détecter et de corriger ces écarts ?

3 Une start-up veut déployer rapidement une application web en Node.js sans avoir à gérer les serveurs sous-jacents. Elle souhaite une solution qui automatise la gestion de l’environnement tout en lui laissant la possibilité d’appliquer ses propres configurations si nécessaire. Quelle solution AWS peut-elle utiliser pour accélérer ce déploiement ?

4 Une entreprise veut centraliser la gestion des configurations et des secrets de son application (ex. : clés API, credentials de base de données) de manière sécurisée, tout en les injectant dynamiquement dans son code. Quelle solution AWS peut-elle utiliser pour éviter de stocker ces informations sensibles dans ses fichiers de configuration ?

5 Une entreprise souhaite centraliser les logs AWS CloudTrail de tous les comptes de son organisation dans un compte central de sécurité. Elle veut s’assurer que CloudTrail est activé et configuré de manière cohérente dans toutes les régions AWS et sur tous les comptes de son organisation AWS Organizations. Comment AWS CloudFormation peut-il l’aider à automatiser ce déploiement à grande échelle ?

6 Une entreprise souhaite automatiser le provisioning et la configuration de ses serveurs en utilisant des scripts d’infrastructure...