Objectif
Ce lab vous guide dans la mise en place d’AWS App Runner pour déployer une application web conteneurisée sans gérer d’infrastructure sous-jacente. Vous apprendrez à :
- Construire une application web en Python avec Flask.
- Conteneuriser l’application avec Docker.
- Déployer l’application sur AWS App Runner à partir d’Amazon ECR.
1. Architecture du Lab
- Une application Flask exécutée dans un conteneur Docker.
- Un dépôt Amazon ECR pour stocker l’image du conteneur.
Un service AWS App Runner pour héberger l’application.
2. Étapes du Déploiement
1. Créer et Conteneuriser l’Application
1.1. Créer l’Application Flask
Sur votre machine locale, créez un répertoire de projet :
mkdir app-runner-demo && cd app-runner-demo
Créez un fichier app.py :
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "Bienvenue sur AWS App Runner ! 🚀"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080)
Ajoutez un fichier requirements.txt :
flask
gunicorn
1.2. Créer le Dockerfile
Dans le même répertoire, ajoutez un fichier Dockerfile :
# Utiliser une image de base légère
FROM python:3.9-slim
# Définir le répertoire de travail
WORKDIR /app
# Copier les fichiers d'application
COPY app.py requirements.txt ./
# Installer les dépendances
RUN pip install -r requirements.txt
# Exposer le port 8080
EXPOSE 8080
# Lancer l'application avec Gunicorn
CMD ["gunicorn", "-b", "0.0.0.0:8080", "app:app"]
1.3. Construire et Tester l’Image Docker
Construisez l’image Docker :
docker build -t app-runner-demo .
Testez en local :
docker run -p 8080:8080 app-runner-demo
2. Pousser l’Image sur Amazon ECR
2.1. Créer un Dépôt Amazon ECR
- Allez sur AWS Management Console > Amazon ECR.
- Cliquez sur Create repository.
- Nommez-le app-runner-demo et cliquez sur Create.
2.2. Pousser l’Image Docker vers ECR
Authentifiez Docker à ECR :
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin .dkr.ecr.us-east-1.amazonaws.com
Taggez l’image :
docker tag app-runner-demo:latest .dkr.ecr.us-east-1.amazonaws.com/app-runner-demo:latest
Poussez l’image vers ECR :
docker push .dkr.ecr.us-east-1.amazonaws.com/app-runner-demo:latest
3. Déployer sur AWS App Runner
- Allez sur AWS App Runner > Create Service.
- Source Deployment : Sélectionnez Amazon ECR.
- Sélectionnez votre dépôt ECR et l’image poussée.
- Configurez le service :
- Nom : app-runner-demo.
- Port : 8080.
- Deployment settings : Automatique (optionnel).
- Lancez le déploiement et attendez que le service soit en cours d’exécution.
4. Tester l’Application
- Une fois l’application déployée, copiez l’URL fournie par App Runner.
Ouvrez un navigateur et accédez à : https://your-app-runner-url.amazonaws.com/
5. Nettoyer les Ressources
- Supprimez le service App Runner.
- Supprimez le dépôt Amazon ECR.
Supprimez les images Docker locales :
docker rmi app-runner-demo
Conclusion
Ce lab vous a permis de déployer une application web conteneurisée avec AWS App Runner, sans gérer de serveurs ou de clusters. 🚀