Architectures AWS ING-4-SSIRF
Lab 06 : Déploiement RDS Sécurisé et Scalable
Objectif
Ce TP vise à mettre en place une base de données MySQL sécurisée et scalable sur AWS, avec :
• Un VPC personnalisé.
• Un Bastion Host (serveur d’administration).
• Une instance RDS MySQL Master placée en sous-réseaux privés.
• Un Read Replica pour décharger les lectures.
• Des tests de lecture/écriture.
• Du nettoyage pour éviter les coûts.
Architecture Cible :
Étape 1 : Configuration du VPC et des Sous-réseaux
Nous allons créer un VPC avec deux paires de subnets (un Public et un Privé) dans deux
Zones de Disponibilité (AZ) différentes.
1. Créer le VPC :
o Service : VPC > Your VPCs > Create VPC.
o Nom : Mon-VPC-Lab
o CIDR IPv4 : [Link]/16
2. Créer les Subnets :
o Service : VPC > Subnets > Create subnet.
o Créez 4 subnets dans deux AZ différentes : 2 subnet privés et deux subnet
publics.
4 sous-réseaux (subnets)
Architectures AWS ING-4-SSIRF
Dans 2 AZ différentes (a et b) :
2 publics (pour Bastion + NAT Gateway)
2 privés (pour RDS Master + Read Replica)
Cela prépare une architecture sécurisée : RDS en privé, Bastion en public.
Architectures AWS ING-4-SSIRF
Étape 2 : Créer les Groupes de Sécurité
1. Créer Bastion-SG :
o Nom : Bastion-SG
o VPC : Mon-VPC-Lab
o Règles entrantes :
▪ Type : SSH (Port 22)
2. Créer RDS-SG :
o Nom : RDS-SG
o VPC : Mon-VPC-Lab
o Règles entrantes :
▪ Type : MySQL/Aurora (Port 3306)
▪ Source : Bastion-SG .
Étape 3 : Lancer le Bastion Host
1. EC2 > Launch instances.
Architectures AWS ING-4-SSIRF
2. Nom : Bastion-Host
3. AMI : Ubuntu server24.04 LTS
4. Paire de clés : Sélectionnez votre clé.
5. Réseau :
o VPC : Mon-VPC-Lab
o Subnet : Public-Subnet-A
o Auto-assign public IP : Enable
o Security Group : Bastion-SG.
6. Lancez l'instance.
4 . Créer un DB Subnet Group
AWS Console → RDS → Subnet Groups → Create DB Subnet Group
• Name : my-rds-subnet-group
• Description : subnets privés pour MySQL
• VPC : Mon-VPC-Lab
• Subnets à ajouter :
✔ Private-Subnet-a
✔ Private-Subnet-b
(obligatoire d’en mettre au moins deux, dans deux AZ différentes)
Étape 4 : Créer l'Instance RDS Master (Écriture)
1. RDS > Databases > Create database.
2. Méthode : Standard Create.
3. Moteur : MySQL.
4. Modèle : Sandbox .
5. Deployment options : Single-AZ DB instance deployment (1 instance)
6. Master username : admin
7. Master password : Définissez un mot de passe et garder-le.
8. Connectivité (Connectivity) :
Compute resource : Dont connect to an EC2 compute resource
o VPC : Mon-VPC-Lab
o DB subnet group : my-rds-subnet-group
o Public access : yes
Architectures AWS ING-4-SSIRF
o VPC security group : RDS-SG.
o Availability Zone : Choisir une AZ (ex: AZ-A).
9. Cliquez sur Create database (Ignorer les suggestions ElastiCache/Proxy).
Architectures AWS ING-4-SSIRF
Étape 5 : Créer la Réplique en Lecture (Read Replica)
1. Sélectionnez database-1 > Actions > Create read replica.
2. DB cluster identifier : read-replica-db
3. Instance configuration : Laissez les valeurs par défaut .
4. Connectivity (Connectivité) :
o Existing VPC security groups : Sélectionnez RDS-SG.
o Availability Zone : C'est crucial : Choisir l'autre AZ (ex: AZ-B).
5. Cliquez sur Create read replica.
Étape 6 : Test et Validation
1. Récupérer les Endpoints : Dès que le Master et la Réplique sont disponibles,
notez et copiez leurs endpoints respectifs.
2. Connexion au Bastion :
o Connectez-vous en SSH à l'IP Publique de votre Bastion-Host
o Installez le client MySQL :
sudo sudo apt update -y
sudo apt install mysql-client
3. Verify the EC2 can reach the RDS endpoint
telnet ENDPOINT_DU_MASTER 3306
4. Set up EC2 connexion avec rds
Aurora and RDS ----Databases------------ Set up EC2 connection
5. Test du Master (Écriture) :
o Connectez-vous au Master :
mysql -h [ENDPOINT_DU_MASTER] -P 3306 -u
admin -p
# Entrez votre mot de passe
Architectures AWS ING-4-SSIRF
o Créer une base de test et une table :
1. CREATE DATABASE testdb;
2. USE testdb;
3. CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name
VARCHAR(100), email VARCHAR(100));
4. INSERT INTO users (name, email) VALUES ('John Doe',
'john@[Link]');
5. SELECT * FROM users;
6. Test de la Réplique (Lecture Seule) :
o Connectez-vous à la Réplique :
mysql -h
[ENDPOINT_DE_LA_REPLIQUE] -P 3306 -u admin -p # Entrez
votre mot de passe
o Test de lecture :
SHOW DATABASES; (Doit réussir, et doit montrer « testdb »)
SHOW TABLES;
SELECT * FROM users; (Doit montrer users)
o Test d'écriture : CREATE DATABASE test_replica; (Doit échouer avec un
message d'erreur "Read-only")
Étape 7 : Nettoyage
Pour éviter tout frais, vous devez supprimer les ressources dans cet ordre :
1. Supprimer le Read Replica :
o RDS > Databases, sélectionnez read-replica-db > Actions > delete me
2. Supprimer l'Instance Master :
o RDS > Databases, sélectionnez database-1 > Actions > delete me
(Décochez le snapshot final).
3. Terminer l'Instance EC2 :
o EC2 > Instances, terminez le Bastion-Host.
4. Supprimer la NAT Gateway :
Architectures AWS ING-4-SSIRF
o VPC > NAT Gateways, supprimez NAT-Getway
5. Supprimer le VPC :
o Supprimez les Security Groups (Bastion-SG, RDS-SG), puis le DB Subnet Group,
puis l'Internet Gateway, et enfin le VPC (Mon-VPC-Lab).