TP 5 - Laboratoire Pratique : Conception d’une Architecture AWS Complète
Durée : 3 heures
Dans ce laboratoire, vous allez créer une architecture AWS complète pour héberger une application
web. Vous utiliserez les services AWS suivants : EC2, RDS, S3, VPC, et CloudFront. Vous expliquerez
vos choix en termes de sécurité, de scalabilité, et d’optimisation des coûts.
Objectifs
1. Concevoir et déployer une infrastructure AWS pour une application web.
2. Configurer un environnement sécurisé en utilisant un VPC, des Groupes de Sécurité, et IAM.
3. Héberger des fichiers statiques sur S3 et configurer CloudFront pour améliorer la
performance.
4. Configurer une base de données relationnelle avec RDS pour stocker les données de
l’application.
Prérequis
• Un compte AWS (Free Tier suffisant pour ce laboratoire).
• Connaissance de base des services AWS.
• Outils nécessaires : un navigateur web, un éditeur de texte pour le code HTML.
Étapes du Laboratoire
Partie 1 : Création du VPC et des sous-réseaux
Durée : 30 minutes
1. Créer un VPC personnalisé :
• Accédez à VPC → "Your VPCs" → Cliquez sur "Create VPC".
• Nom : WebApp-VPC.
• CIDR : 10.0.0.0/16.
• Cliquez sur Create VPC.
2. Créer des sous-réseaux publics et privés :
• Sous-réseau public :
• Nom : Public-Subnet.
• CIDR : 10.0.1.0/24.
• Sous-réseau privé :
• Nom : Private-Subnet.
• CIDR : 10.0.2.0/24.
3. Créer une table de routage et une passerelle Internet :
• Créez une Internet Gateway et attachez-la au VPC.
• Créez une table de routage publique avec une route vers 0.0.0.0/0 pointant vers
l’Internet Gateway.
• Associez cette table au sous-réseau public.
4. Créer une passerelle NAT pour le sous-réseau privé :
• Créez une NAT Gateway dans le sous-réseau public et associez une Elastic IP.
• Créez une table de routage privée avec une route vers 0.0.0.0/0 pointant vers la NAT
Gateway.
• Associez cette table au sous-réseau privé.
Partie 2 : Lancer une instance EC2 pour héberger l’application web
Durée : 30 minutes
1. Créer une instance EC2 :
• Accédez à EC2 → "Launch Instance".
• AMI : Amazon Linux 2.
• Type d’instance : t2.micro (Free Tier).
• Sous-réseau : Public-Subnet.
• Groupe de sécurité : Créez un groupe avec les règles suivantes :
• SSH (port 22) : Votre IP.
• HTTP (port 80) : Public.
2. Installer un serveur web (Apache) :
• Connectez-vous à l’instance via SSH :
ssh -i "votre-cle.pem" ec2-user@<IP-publique>
• Installez Apache :
sudo yum install -y httpd sudo systemctl start httpd sudo systemctl enable httpd
3. Déployer l’application web :
• Créez un fichier HTML dans /var/www/html/index.html :
sudo nano /var/www/html/index.html
• Copiez le code HTML fourni (voir la fin).
Partie 3 : Configurer S3 pour les fichiers statiques
Durée : 30 minutes
1. Créer un bucket S3 :
• Accédez à S3 → "Create Bucket".
• Nom : webapp-static-files.
• Activez la gestion des versions et l’accès public.
2. Télécharger les fichiers statiques :
• Téléchargez des fichiers (images ou autres) dans le bucket.
• Configurez les permissions pour rendre ces fichiers accessibles publiquement.
Partie 4 : Ajouter CloudFront pour améliorer la performance
Durée : 30 minutes
1. Créer une distribution CloudFront :
• Accédez à CloudFront → "Create Distribution".
• Origine : Sélectionnez le bucket S3 (webapp-static-files).
• Configurez les paramètres par défaut et générez l’URL de distribution.
2. Tester CloudFront :
• Accédez à l’URL générée pour vérifier la diffusion des fichiers statiques.
Partie 5 : Configurer RDS pour la base de données
Durée : 30 minutes
1. Créer une base de données RDS :
• Accédez à RDS → "Create Database".
• Moteur : MySQL.
• Type d’instance : db.t2.micro.
• Réseau : Private-Subnet.
2. Configurer l’accès à la base de données :
• Créez un groupe de sécurité autorisant les connexions depuis l’instance EC2
publique.
• Notez l’endpoint RDS pour l’utiliser dans l’application.
Code HTML pour l’application web
Enregistrez ce code dans /var/www/html/index.html :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport"
content="width=device-width, initial-scale=1.0"> <title>My Web Application</title> </head> <body>
<h1>Welcome to My Web Application</h1> <p>This is a simple AWS-powered web application.</p>
<img src="https://<CLOUDFRONT_URL>/example.jpg" alt="Static File Example"> </body> </html>
• Remplacez <CLOUDFRONT_URL> par l’URL générée par votre distribution CloudFront.
Livrables
1. Architecture finale (capture d’écran ou diagramme).
2. URL de l’application web fonctionnelle.
3. Explications sur les choix faits pour :
• Sécurité (ex : groupes de sécurité, VPC).
• Scalabilité (ex : utilisation de S3 et CloudFront).
• Optimisation des coûts (ex : choix des types d’instances et services Free Tier).
Résumé
Ce laboratoire vous permet de concevoir une architecture AWS robuste et scalable, tout en
comprenant les interactions entre différents services AWS. Vous appliquez des principes clés de
sécurité, de performance, et de rentabilité.