Auteur : Anselme Tchassem – Tech Lead, DevOps, DevSecOps, Cloud
La migration vise à :
- Réduire les coûts d'infrastructure en optimisant les ressources
- Améliorer les performances d'accès aux applications
- Changer de région AWS : Paris → Irlande (
eu-west-1)
| Composant | Service AWS |
|---|---|
| Conteneurs | ECS Fargate – 1 vCPU / 2 GB RAM par tâche |
| Base de données | RDS (MySQL) |
| Fichiers statiques | EFS |
| Exposition | ALB + CloudFront |
| HTTPS | AWS Certificate Manager (ACM) |
| Sécurité (optionnelle) | AWS WAF |
Odoo est utilisé ponctuellement (facturation interne). L'instance est démarrée/arrêtée automatiquement via Semaphore.
| Composant | Détail |
|---|---|
| Instance EC2 | t2.medium – scale down : 2 vCPU / 2 GB RAM (remplacement du t2.large) |
| Stockage | Volume EBS (données Odoo + PostgreSQL) |
| IP publique | Elastic IP |
| Reverse proxy & SSL | nginx-proxy + nginx-proxy-letsencrypt (Let's Encrypt) |
| Conteneurs | Odoo, PostgreSQL, nginx, nginx-proxy, nginx-proxy-letsencrypt |
Les services non utilisés (Redis, phpMyAdmin, OpenVPN, Pure FTPd, Udemy apps, httpd) ne sont pas redéployés.
| Application | Données | Méthode |
|---|---|---|
| WordPress | Fichiers statiques (médias, plugins…) | Plugins de migration WordPress |
| WordPress | Base de données | Snapshot RDS restauré dans la nouvelle région |
| Odoo | Application + PostgreSQL | AMI générée depuis l'instance existante (sans les conteneurs WordPress/MySQL) |
L'infrastructure est définie en Terraform (>= 1.6) et cible AWS.
- Terraform >= 1.6 installé
- Credentials AWS configurés (
aws configureou variables d'environnement) - Une clé SSH nommée
eazytraining-migrationdisponible dans la région cible
# 1. Initialiser les providers et modules
terraform init
# 2. Vérifier le plan d'exécution
terraform plan
# 3. Provisionner l'infrastructure
terraform apply| Variable | Description | Défaut |
|---|---|---|
region |
Région AWS cible | — |
size |
Taille du volume EBS (Go) | 100 |
ssh_key |
Nom de la paire de clés EC2 | eazytraining-migration |
rds_instance_type |
Type d'instance RDS | db.t2.micro |
db_name |
Nom de la base de données WordPress | dbw |
elb_ssl_cert |
ARN du certificat ACM | — |
ec2.tf— Instance EC2 Odooebs.tf— Volume EBS attaché à l'instanceeip.tf— Elastic IP associée à l'instancerds.tf— Instance RDS MySQL pour WordPresssg.tf— Security Groupscloudfront.tf— Distribution CloudFrontrole.tf— IAM Roles (SSM, CloudWatch…)provisioners.tf— Scripts de post-configuration
terraform destroy- Implémenter le code IaC → ce dépôt
- Provisionner un environnement de test →
terraform apply - Simuler la migration des données (snapshot RDS, AMI Odoo)
- Valider le fonctionnement des applications dans le nouvel environnement
- Planifier la fenêtre de migration (minimiser l'impact utilisateurs)
- Exécuter la migration : transfert fichiers WordPress, restauration RDS, lancement instance Odoo depuis AMI
- Vérifications post-migration : fonctionnement, intégrité des données, stabilité
.png)
