TD6 - Multi-Environments et Multi-Services (NON RÉALISÉ)
Auteurs: DIALLO Samba, DIOP Mouhamed Date: 7 décembre 2025 Cours: DevOps - ESIEE PARIS Statut: ABANDONNÉ pour raisons de coûts AWS
Raison de l’abandon
Ce TD nécessite la création d’AWS Organizations et de multiples comptes AWS (dev, stage, prod), ce qui:
- Sort du AWS Free Tier et active automatiquement un forfait payant
- Génère potentiellement des frais même pour un usage académique
- N’est pas adapté pour un projet étudiant avec compte gratuit
Incident rencontré
Lors de la tentative de création des comptes AWS Organizations:
- Organisation créée:
o-f6p6stsx3q - Compte STAGE créé:
717892305920(mouhamed.diop@edu.esiee.fr) - Compte PROD créé:
097659826720(production@esiee.fr) - Compte DEV échoué: Email déjà utilisé
- Mise à niveau automatique vers forfait payant
Actions correctives prises
- Destruction immédiate des comptes créés
cd td6/scripts/tofu/live/child-accounts
tofu destroy -auto-approve- Comptes STAGE et PROD: Marqués pour suppression (90 jours)
- Organisation: Reste active jusqu’à fermeture complète des comptes
- Vérification complète des ressources AWS
- Lambda functions: Aucune
- EC2 instances: Aucune active
- S3 buckets: Tous supprimés
- DynamoDB tables: Toutes supprimées
- API Gateway: Aucune
- Documentation créée
IMPORTANT_AWS_GRATUIT.md: Guide de survie pour rester dans le Free Tier
Objectifs du TD6 (non réalisés)
Partie 1: Multi-Comptes AWS avec Organizations
Objectif: Isoler les environnements dev, stage, prod dans des comptes AWS séparés
Pourquoi abandonné:
- Coûts potentiels
- Complexité de gestion
- Inadapté au Free Tier
Partie 2: OpenTofu Workspaces
Objectif: Gérer plusieurs déploiements avec des workspaces
Alternative gratuite possible:
- Utiliser des workspaces dans un seul compte AWS
- Préfixer les ressources (dev-, stage-, prod-)
- Rester dans les limites du Free Tier
Partie 3: Kubernetes Multi-Services
Objectif: Déployer frontend + backend dans Kubernetes
Alternative 100% gratuite:
- Docker Desktop avec Kubernetes activé (local)
- Minikube (local)
- Kind (local)
- Aucun coût AWS
Structure existante
Fichiers préparés mais non utilisés:
td6/
├── README_TD6.md # Ce fichier
├── IMPORTANT_AWS_GRATUIT.md # Guide de sécurité AWS
├── lab6.pdf # Instructions originales
└── scripts/
├── sample-app-backend/ # Application backend Node.js
│ ├── Dockerfile
│ ├── app.js
│ ├── server.js
│ └── package.json
├── sample-app-frontend/ # Application frontend Node.js
│ ├── Dockerfile
│ ├── app.js
│ ├── server.js
│ └── package.json
└── tofu/
├── live/
│ ├── child-accounts/ # Création de comptes AWS (utilisé puis détruit)
│ │ ├── main.tf
│ │ └── outputs.tf
│ ├── lambda-sample/ # Lambda pour workspaces
│ └── lambda-sample-with-config/ # Lambda avec configuration
└── modules/
├── aws-organizations/ # Module pour AWS Organizations
└── test-endpoint/ # Module de test d'endpoints
Leçons apprises
Sur AWS Free Tier
- Services qui SORTENT du Free Tier:
- AWS Organizations
- Création de comptes multiples
- Services d’entreprise avancés
- Services qui RESTENT gratuits (12 mois):
- EC2: 750h/mois t2.micro ou t3.micro
- Lambda: 1M requêtes/mois
- S3: 5 GB de stockage
- DynamoDB: 25 GB
- API Gateway: 1M appels/mois
- Règle d’or:
- Toujours détruire les ressources après les tests
- Configurer des alertes de facturation
- Vérifier quotidiennement les coûts
Sur la gestion de projet DevOps
- Anticiper les coûts: Vérifier les implications financières avant de déployer
- Documentation: Toujours documenter les décisions et les abandons
- Alternatives locales: Privilégier Docker/Kubernetes local pour l’apprentissage
Alternatives recommandées pour l’apprentissage
Pour apprendre les multi-environnements:
- Git Flow avec branches
- Branch
devpour développement - Branch
stagingpour tests - Branch
mainpour production
- Docker Compose avec profiles
services:
app:
profiles: ["dev", "staging", "prod"]- Variables d’environnement
.env.dev.env.staging.env.prod
Pour apprendre Kubernetes:
- Minikube (recommandé pour débutants)
minikube start
kubectl apply -f deployments/- Docker Desktop Kubernetes
- Activer dans Settings > Kubernetes
- Utilisation simple et intégrée
- Kind (Kubernetes in Docker)
kind create clusterCoût final du projet
Total dépensé: $0.00
Toutes les ressources ont été créées et détruites dans un délai très court:
- Comptes Organizations: ~10 minutes d’existence
- Aucune ressource AWS coûteuse active
- Nettoyage complet effectué
Recommandations pour futurs TDs
- Toujours vérifier si un TD nécessite des services payants
- Privilégier les alternatives locales pour l’apprentissage
- Documenter les coûts dans les énoncés de TP
- Prévoir des alternatives gratuites pour les étudiants
Conclusion
Le TD6 a été abandonné pour des raisons financières légitimes. Cependant, les compétences visées (multi-environnements, Kubernetes) peuvent être acquises via:
- Des alternatives locales (Docker, Kubernetes local)
- Une documentation théorique approfondie
- Des projets personnels avec technologies open-source
Message important: Il est préférable d’abandonner un TD que de générer des frais AWS imprévus. La décision est sage et responsable.
Ressources utiles
- AWS Free Tier
- AWS Organizations Pricing
- Kubernetes local avec Minikube
- Docker Desktop Kubernetes
- OpenTofu Workspaces
Support
Pour questions sur la gestion des coûts AWS:
- AWS Support: https://console.aws.amazon.com/support/home
- ESIEE IT Support: Contacter votre enseignant