Déploiement automatisé : de GitHub à Elastic Beanstalk
Mettre en place une architecture scalable pour votre backend peut sonner comme un véritable challenge. AWS Elastic Beanstalk simplifie le déploiement et le scaling. Combiné avec GitHub Actions, vous obtenez un pipeline CI/CD complet. Chez Eve Media, nous automatisons les déploiements pour nos clients.
Pourquoi Elastic Beanstalk
Beanstalk est un PaaS AWS qui gère l’infrastructure pour vous : instances EC2, load balancer, auto-scaling. Vous uploadez votre code, Beanstalk s’occupe du reste. Plus simple qu’ECS ou Kubernetes pour des déploiements standards.
Prérequis
Un compte AWS avec les permissions nécessaires. Une application Elastic Beanstalk créée. Un repo GitHub avec votre code backend. Des credentials AWS (Access Key ID et Secret).
Configurer les secrets GitHub
Dans Settings > Secrets de votre repo, ajoutez : AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY. Ces credentials permettent au workflow de déployer sur votre compte AWS. Utilisez un utilisateur IAM avec les permissions minimales.
Le workflow GitHub Actions
Créez .github/workflows/deploy.yml. Le workflow se déclenche sur push vers main. Il checkout le code, configure AWS CLI, package l’application, et déploie sur Beanstalk.
Étapes du workflow
Checkout : récupère le code. Setup : installe les dépendances si nécessaire. Build : compile/bundle l’application. Create zip : package le code pour Beanstalk. Upload to S3 : dépose le package. Deploy : déclenche le déploiement Beanstalk.
Action aws-actions
L’action aws-actions/configure-aws-credentials configure les credentials. L’action aws-actions/amazon-eb-deploy peut simplifier le déploiement. Alternativement, utilisez la CLI eb ou aws directement.
Environment branches
Différentes branches peuvent déployer vers différents environnements. main → production. staging → environment de staging. Configurez les triggers et les variables d’environnement en conséquence.
Variables d’environnement
Les variables sensibles (database URL, API keys) sont dans Beanstalk, pas dans le code. Le workflow peut mettre à jour les variables d’environnement si nécessaire. Séparez les secrets des configurations.
Rollback
Beanstalk conserve les versions précédentes. En cas de problème, vous pouvez rollback en un clic dans la console. Ou automatisez le rollback si les health checks échouent.
Notifications
Ajoutez des notifications Slack ou email en fin de workflow. Informez l’équipe des déploiements réussis ou échoués. L’intégration avec les outils de communication améliore la visibilité.
Conclusion
L’automatisation du déploiement avec GitHub Actions et Elastic Beanstalk transforme les releases de corvée stressante en non-événement. Le setup initial demande un peu de travail, mais le gain de temps est significatif.
Chez Eve Media, nous mettons en place des pipelines CI/CD. Contactez-nous pour automatiser vos déploiements.



