1. Pourquoi l'infrastructure as code #
Reproductible, revue, versionnée.
Avantages #
- Environnements identiques (recette, production) et recréables en minutes.
- Revue des changements comme du code, historique Git.
- Détection des dérives entre le code et la réalité.
2. Les outils #
CloudFormation, CDK, Terraform.
Comparaison #
| Outil | Langage | Points forts |
|---|---|---|
| CloudFormation | YAML / JSON | Natif, état géré par AWS, change sets, StackSets multi-comptes |
| AWS CDK | TypeScript, Python, Java… | Abstractions de haut niveau, génère du CloudFormation |
| Terraform | HCL | Multi-fournisseurs, très répandu, vaste écosystème de modules |
CloudFormation en pratique #
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
Environnement: { Type: String, AllowedValues: [recette, prod] }
Resources:
Rapports:
Type: AWS::S3::Bucket
Properties:
VersioningConfiguration: { Status: Enabled }
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
Outputs:
NomBucket: { Value: !Ref Rapports }aws cloudformation deploy --template-file rapports.yaml --stack-name rapports-recette \
--parameter-overrides Environnement=recette
aws cloudformation describe-stack-events --stack-name rapports-recette --max-items 10
aws cloudformation detect-stack-drift --stack-name rapports-recette3. Well-Architected #
Concevoir correctement.
Les six piliers #
Pour aller plus loin : La formation Terraform du site détaille l'outil multi-cloud ; ce chapitre se concentre sur ce qui est propre à AWS.
