Analyser le besoin — Identifier les exigences fonctionnelles et non-fonctionnelles du projet (performance, disponibilité, sécurité, budget)
Choisir la région et les zones de disponibilité — Sélectionner la région AWS la plus adaptée en fonction de la latence, de la conformité réglementaire et du coût
Concevoir le réseau (VPC) — Définir l'architecture réseau avec les sous-réseaux publics/privés, les security groups, les NACLs et les passerelles (NAT, Internet Gateway)
Sélectionner les services de calcul — Choisir entre EC2, Lambda, ECS ou Fargate selon la charge de travail, le pattern de trafic et les contraintes de coût
Configurer le stockage et les bases de données — Déterminer la stratégie de stockage (S3, EBS, EFS) et le moteur de base de données (RDS, DynamoDB, Aurora) appropriés
Mettre en place la sécurité (IAM) — Définir les rôles, politiques et permissions IAM en respectant le principe du moindre privilège
Automatiser avec Infrastructure as Code — Écrire les templates CloudFormation ou CDK pour rendre l'infrastructure reproductible et versionnée
Planifier le monitoring et la résilience — Configurer CloudWatch, CloudTrail, les alarmes et les stratégies de disaster recovery (multi-AZ, backups)
Règles
Toujours appliquer le principe du moindre privilège pour les rôles et politiques IAM
Ne jamais exposer de credentials ou clés d'accès en dur dans le code ou les templates CloudFormation
Privilégier les architectures multi-AZ pour la haute disponibilité en production
Utiliser des tags cohérents sur toutes les ressources pour le suivi des coûts et la gouvernance
Valider les templates CloudFormation avec aws cloudformation validate-template avant tout déploiement