3.1 - Déployer avec Elastic Beanstalk et SAM
L'objectif 3.1 de l'AWS Certified Developer Associate couvre le déploiement d'applications avec des outils gérés. AWS Elastic Beanstalk déploie et gère une application web en prenant en charge la capacité, la répartition de charge, la mise à l'échelle et la surveillance de santé : tu envoies le code et il provisionne l'environnement. Pour ajouter des paquets logiciels, des réglages d'OS ou des commandes à un environnement Beanstalk, on place des fichiers de configuration dans le dossier .ebextensions du bundle applicatif. Pour les déploiements serverless, un modèle AWS SAM peut publier une nouvelle version de Lambda et décaler le trafic progressivement via AutoPublishAlias avec une DeploymentPreference comme canary ou linéaire, intégrée à CodeDeploy. Tu dois aussi connaître les politiques de déploiement Beanstalk (all-at-once, rolling, immutable, blue-green) et les transforms SAM. Attends-toi à des mises en situation demandant le bon outil ou mécanisme.
Déploiement web-app géré (capacité, LB, mise à l'échelle) = Elastic Beanstalk. Paquets/réglages OS personnalisés Beanstalk = fichiers .ebextensions. Publier une version Lambda + décaler le trafic = AutoPublishAlias SAM avec DeploymentPreference.
Questions d'entraînement
1. Quel service déploie et gère une appli web en s'occupant de la capacité, de la répartition de charge et de la santé à partir de votre code téléversé, avec un minimum de configuration ?
- AWS CloudFormation
- AWS Elastic Beanstalk (bonne réponse)
- AWS CodeCommit
- Amazon EC2 Auto Scaling
Elastic Beanstalk est un PaaS qui provisionne et gère l'environnement (EC2, ELB, Auto Scaling, santé) à partir de votre code ; vous gardez le contrôle des ressources mais évitez la configuration manuelle.
2. Quel fichier définit les phases et commandes d'une construction pour AWS CodeBuild ?
- template.yaml
- appspec.yml
- Dockerfile
- buildspec.yml (bonne réponse)
CodeBuild lit buildspec.yml (phases install/pre_build/build/post_build, artefacts). appspec.yml est pour CodeDeploy ; template.yaml pour CloudFormation/SAM.
3. Quel service orchestre les étapes source, build et deploy en un pipeline de livraison automatisé ?
- AWS CodeArtifact
- AWS CodePipeline (bonne réponse)
- Amazon CodeGuru
- AWS CodeCommit
CodePipeline modélise la livraison continue en étapes (source -> build -> deploy...) intégrant CodeCommit/GitHub, CodeBuild et CodeDeploy ou CloudFormation, déclenchées automatiquement au changement.
4. Une équipe veut promouvoir le même code Lambda à travers dev, test et prod sans modifier le code, en changeant seulement les réglages par étape. Que doit-elle utiliser ?
- Des fonctions codées en dur par étape
- Une fonction sans configuration
- Des variables d'environnement (et alias) par étape (bonne réponse)
- Un seul rôle de production partagé
Les variables d'environnement externalisent les réglages par étape (noms de table, endpoints) pour que le même artefact tourne à chaque étape ; les alias/versions distinguent proprement les étapes.
5. Un modèle CloudFormation doit référencer un ID de groupe de sécurité créé par une pile réseau distincte. Quel mécanisme les relie ?
- Exporter la valeur et utiliser Fn::ImportValue (bonne réponse)
- Copier l'ID dans un paramètre codé en dur
- Utiliser un attribut DependsOn entre les piles
- Activer la détection de dérive sur les deux piles
Une pile exporte une valeur de sortie ; une autre l'importe avec Fn::ImportValue. Cette référence inter-piles garde les piles découplées et empêche de supprimer une ressource exportée encore utilisée.
6. Une mise à jour CloudFormation pourrait modifier ou remplacer des ressources critiques. Qu'est-ce qui permet à un développeur de prévisualiser exactement ce qui va se passer avant de l'appliquer ?
- Une politique de pile refusant toutes les mises à jour
- Activer la protection contre la suppression sur la pile
- Un change set généré à partir du nouveau modèle (bonne réponse)
- Une DeletionPolicy Retain sur chaque ressource
Un change set montre les ajouts, modifications et surtout les remplacements de ressources proposés avant exécution, pour repérer les changements destructeurs. Les politiques de pile et la protection contre la suppression restreignent des actions mais ne prévisualisent pas les différences.