DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesAWS - Intermédiaire : VPC, RDS, Lambda et CloudFormation06 - Créer une base de données RDS PostgreSQL

Détails

  • 40 minutes
  • Intermédiaire

Objectifs

  • Créer une instance RDS PostgreSQL dans un sous-réseau privé
  • Configurer un Security Group pour autoriser uniquement l'accès depuis EC2
  • Se connecter à RDS depuis une instance EC2 et créer des tables
  • Comprendre les options de sauvegarde automatique et de multi-AZ
Module AWS - Intermédiaire : VPC, RDS, Lambda et CloudFormation

Exercice 06 : Créer une base de données RDS PostgreSQL

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Lancer une instance RDS PostgreSQL dans un subnet privé
  • ✅ Configurer les Security Groups pour une communication sécurisée EC2 → RDS
  • ✅ Se connecter à la base depuis une instance EC2 (pas depuis l'internet public)
  • ✅ Activer les sauvegardes automatiques et comprendre le Multi-AZ

Durée estimée : 40 minutes

Difficulté : ⭐⭐⭐☆☆ (Intermédiaire)

Prérequis : VPC avec sous-réseaux créé (Exercice 02), notions de PostgreSQL


📖 Contexte

Gérer une base de données soi-même (installation, patches, sauvegardes, réplication) est fastidieux. RDS (Relational Database Service) délègue cette gestion à AWS : vous vous concentrez sur vos données, AWS gère le reste. RDS supporte PostgreSQL, MySQL, Oracle, SQL Server, et Aurora (version AWS-native).


📋 Énoncé

Créez une base RDS PostgreSQL, connectez-vous depuis une instance EC2 dans votre VPC et effectuez des opérations basiques.


🧭 Déroulement de l'exercice

Tâche 1 : Créer le Security Group RDS

La bonne pratique est de créer un Security Group dédié à RDS qui n'autorise que le port 5432 depuis le Security Group de votre EC2 (pas depuis internet).

  1. Console AWS → EC2 → Security Groups → Créer un groupe de sécurité
  • Nom : sg-rds-postgres
  • Description : "Accès PostgreSQL depuis EC2 uniquement"
  • VPC : votre VPC (pas le VPC par défaut)
  1. Règle entrante :
  • Type : PostgreSQL (port 5432)
  • Source : Groupe de sécurité → choisir sg-web-server (votre SG EC2)

Indice : Référencer un Security Group comme source est plus robuste qu'une plage IP. Cela signifie "autoriser le trafic de toute instance EC2 qui porte ce Security Group", même si leurs IPs changent.


Tâche 2 : Créer le Subnet Group RDS

RDS a besoin d'un "DB Subnet Group" : un ensemble de sous-réseaux privés dans plusieurs AZ pour la haute disponibilité.

  1. Console AWS → RDS → Groupes de sous-réseaux → Créer
  • Nom : rds-subnet-group
  • VPC : votre VPC
  • Zones de disponibilité : sélectionner au moins 2 AZ
  • Sous-réseaux : sélectionner vos sous-réseaux privés

Tâche 3 : Créer l'instance RDS

  1. Console AWS → RDS → Bases de données → Créer une base de données

Configuration :

  • Méthode de création : Standard
  • Moteur : PostgreSQL (version 16.x)
  • Modèle : Niveau gratuit (Free Tier - désactive Multi-AZ)
  • Identifiant de l'instance : postgres-exercice
  • Nom d'utilisateur principal : dbadmin
  • Mot de passe : choisir un mot de passe fort (≥ 12 caractères)
  • Classe d'instance : db.t3.micro (Free Tier)
  • Stockage : 20 Go gp2

Connectivité :

  • VPC : votre VPC
  • Groupe de sous-réseaux : rds-subnet-group
  • Accès public : Non (important - base accessible uniquement depuis le VPC)
  • Groupe de sécurité VPC : sg-rds-postgres

Configuration supplémentaire :

  • Nom de la base initiale : appdb
  • Sauvegardes automatiques : activées (période de rétention : 7 jours)

Indice : La création prend environ 5 minutes. Pendant ce temps, notez le "point de terminaison" (endpoint) de la base - c'est l'adresse DNS que vos applications utiliseront, du style postgres-exercice.xxxxx.eu-west-3.rds.amazonaws.com.


Tâche 4 : Se connecter depuis EC2

bash
# Sur votre instance EC2 (connectée via SSH)
sudo dnf install -y postgresql16

# Obtenir l'endpoint depuis la console RDS
RDS_ENDPOINT="postgres-exercice.xxxxx.eu-west-3.rds.amazonaws.com"

# Se connecter
psql -h $RDS_ENDPOINT -U dbadmin -d appdb -p 5432
# Entrer votre mot de passe quand demandé
sql
-- Créer des tables de test
CREATE TABLE utilisateurs (
    id SERIAL PRIMARY KEY,
    nom VARCHAR(100) NOT NULL,
    email VARCHAR(200) UNIQUE NOT NULL,
    cree_le TIMESTAMP DEFAULT NOW()
);

-- Insérer des données
INSERT INTO utilisateurs (nom, email) VALUES
    ('Alice Dupont', 'alice@example.com'),
    ('Bob Martin', 'bob@example.com');

-- Vérifier
SELECT * FROM utilisateurs;

-- Quitter
\q

Tâche 5 : Explorer les sauvegardes

  1. Console AWS → RDS → votre base → Maintenance et sauvegardes

Vous y trouverez :

  • Les snapshots automatiques (créés chaque jour dans la fenêtre de maintenance)
  • La possibilité de créer un snapshot manuel
bash
# Via CLI : créer un snapshot manuel
aws rds create-db-snapshot \
  --db-instance-identifier postgres-exercice \
  --db-snapshot-identifier snap-exercice-$(date +%Y%m%d)

# Voir les snapshots disponibles
aws rds describe-db-snapshots \
  --db-instance-identifier postgres-exercice \
  --query 'DBSnapshots[*].[DBSnapshotIdentifier,Status,SnapshotCreateTime]' \
  --output table

✅ Vérification du résultat

  • L'instance RDS est en état "Disponible" dans la console
  • La connexion psql -h $RDS_ENDPOINT -U dbadmin -d appdb fonctionne depuis EC2
  • La table utilisateurs a été créée avec 2 lignes
  • Les sauvegardes automatiques sont activées (période de 7 jours)
  • L'instance RDS n'est pas accessible directement depuis internet

💡 À retenir

Pourquoi RDS plutôt qu'une DB sur EC2 ?

RDSEC2 DIY
Sauvegardes✅ Automatiques❌ Manuelles
Patches OS✅ AWS gère❌ Vous gérez
Multi-AZ (HA)✅ Option native❌ Complexe à configurer
Read Replicas✅ Native❌ Complexe
Coût$$ (plus cher)$

Multi-AZ : RDS maintient une réplique synchrone dans une 2e zone de disponibilité. En cas de panne de la principale, le basculement (failover) est automatique (~1 minute).


✨ Solution Complète

bash
# Connexion RDS depuis EC2
RDS_ENDPOINT="<votre-endpoint>.rds.amazonaws.com"
psql -h $RDS_ENDPOINT -U dbadmin -d appdb -p 5432

# Depuis le code applicatif (Python)
# pip install psycopg2-binary
import psycopg2
conn = psycopg2.connect(
    host=RDS_ENDPOINT,
    database="appdb",
    user="dbadmin",
    password="votre-mot-de-passe",
    port=5432
)
Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Créer le Security Group RDS
  • Tâche 2 : Créer le Subnet Group RDS
  • Tâche 3 : Créer l'instance RDS
  • Tâche 4 : Se connecter depuis EC2
  • Tâche 5 : Explorer les sauvegardes
  • ✅ Vérification du résultat
  • 💡 À retenir
  • ✨ Solution Complète