Skip to content
Learni
Voir tous les tutoriels
AWS

Comment déployer Amazon Aurora en 2026

Read in English

Introduction

Amazon Aurora est un service de base de données relationnelle géré par AWS, compatible MySQL et PostgreSQL, conçu pour offrir des performances jusqu'à 5 fois supérieures à MySQL standard tout en garantissant une haute disponibilité à 99,99 %. En 2026, avec Aurora Serverless v2 et l'intégration IA/ML native, il devient incontournable pour les applications scalables comme les SaaS, e-commerce ou microservices.

Pourquoi choisir Aurora ? Imaginez une DB qui scale automatiquement (de 0,5 à 128 ACU), réplique les données sur 6 copies dans 3 AZ sans downtime, et récupère en 30 secondes après crash. Ce tutoriel intermediate vous guide pas à pas pour déployer un cluster Aurora MySQL via AWS CLI, le configurer, y injecter des données SQL, monitorer et optimiser. À la fin, vous aurez une DB production-ready, bookmarquez-le pour vos projets AWS ! (128 mots)

Prérequis

  • Compte AWS actif avec permissions IAM pour RDS (AmazonRDSFullAccess)
  • AWS CLI v2 installé et configuré (aws configure avec access key/secret)
  • Client MySQL installé localement (brew install mysql sur macOS ou équivalent)
  • Région AWS : us-east-1 (modifiable dans les commandes)
  • Connaissances de base en SQL et VPC (Aurora nécessite un subnet group)

Créer le DB Subnet Group

create-subnet-group.sh
aws rds create-db-subnet-group \
  --db-subnet-group-name aurora-tutorial-subnet \
  --db-subnet-group-description "Subnet group pour Aurora tutorial" \
  --subnet-ids subnet-0123456789abcdef0 subnet-0123456789abcdef1 subnet-0123456789abcdef2 \
  --region us-east-1

Cette commande crée un DB Subnet Group obligatoire pour Aurora, en spécifiant 3 subnets dans différentes AZ (remplacez par vos IDs VPC). Sans cela, le cluster échoue. Vérifiez vos subnets avec aws ec2 describe-subnets ; ils doivent être privés pour la sécurité.

Étape 1 : Préparation du réseau

Aurora s'exécute dans un VPC. Le subnet group répartit les replicas sur plusieurs Availability Zones pour la résilience. Exécutez la commande ci-dessus et vérifiez avec aws rds describe-db-subnet-groups --db-subnet-group-name aurora-tutorial-subnet. Temps : ~1 min.

Créer le cluster Aurora MySQL

create-cluster.sh
aws rds create-db-cluster \
  --db-cluster-identifier aurora-tutorial-cluster \
  --engine aurora-mysql \
  --engine-version 8.0.mysql_aurora.3.05.0 \
  --master-username admin \
  --master-user-password SecurePass123! \
  --db-subnet-group-name aurora-tutorial-subnet \
  --storage-encrypted \
  --region us-east-1

Crée un cluster Aurora MySQL 8.0 avec chiffrement activé et mot de passe fort (changez-le !). L'engine-version est la plus récente en 2026 pour perf optimales. Le cluster est primary-ready mais sans instance writer encore.

Ajouter une instance writer au cluster

create-instance.sh
aws rds create-db-instance \
  --db-instance-identifier aurora-tutorial-writer \
  --db-instance-class db.r6g.large \
  --engine aurora-mysql \
  --db-cluster-identifier aurora-tutorial-cluster \
  --region us-east-1

Ajoute l'instance primaire (writer) au cluster avec db.r6g.large (équilibré coût/perf). Aurora auto-génère 5 replicas read. Attendez 5-10 min avec aws rds describe-db-instances --db-instance-identifier aurora-tutorial-writer.

Étape 2 : Lancement du cluster

Après création, notez l'endpoint du cluster via aws rds describe-db-clusters --db-cluster-identifier aurora-tutorial-cluster (ex: aurora-tutorial-cluster.cluster-abc123.us-east-1.rds.amazonaws.com:3306). C'est votre point d'entrée unique pour HA.

Se connecter et créer une base de données

connect-and-create-db.sh
mysql -h aurora-tutorial-cluster.cluster-abc123.us-east-1.rds.amazonaws.com -P 3306 -u admin -pSecurePass123! <<< "CREATE DATABASE tutorial_db; USE tutorial_db; SHOW DATABASES;"

Connectez-vous au cluster endpoint (remplacez par le vôtre) et créez tutorial_db. Le <<< permet d'exécuter SQL en une ligne. Testez la connexion ; si timeout, vérifiez Security Group (port 3306 inbound depuis votre IP).

Créer tables et insérer données

schema.sql
USE tutorial_db;

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  email VARCHAR(255) UNIQUE NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO users (name, email) VALUES
  ('Alice', 'alice@example.com'),
  ('Bob', 'bob@example.com'),
  ('Charlie', 'charlie@example.com');

SELECT * FROM users;

CREATE INDEX idx_email ON users(email);

Crée une table users avec index pour perf queries. Insère 3 lignes et vérifie. Copiez-collez dans mysql client. Aurora optimise auto les indexes pour lectures scalables.

Étape 3 : Données et schémas

Exécutez schema.sql via mysql ... < schema.sql. Aurora gère les transactions ACID ; testez avec SELECT COUNT(*) FROM users pour confirmer.

Activer scaling automatique (Serverless v2)

enable-serverless.sh
aws rds modify-db-instance \
  --db-instance-identifier aurora-tutorial-writer \
  --engine aurora-mysql \
  --scaling-config MinCapacity=1,MaxCapacity=16,AutoPause=true,SecondsUntilAutoPause=300 \
  --region us-east-1

Convertit en Serverless v2 : scale de 1-16 ACU, pause auto après 5 min d'inactivité (éco). Idéal pour workloads variables. Appliquez et testez charge avec sysbench.

Configurer backup et monitoring

backup-monitoring.sh
aws rds modify-db-cluster \
  --db-cluster-identifier aurora-tutorial-cluster \
  --backup-retention-period 7 \
  --preferred-backup-window 03:00-04:00 \
  --cloudwatch-logs-export-configuration '{ "EnableLogTypes": ["error", "slowquery"] }' \
  --region us-east-1

aws cloudwatch put-metric-alarm \
  --alarm-name HighCPU \
  --metric-name CPUUtilization \
  --namespace AWS/RDS \
  --statistic Average \
  --period 300 \
  --threshold 80 \
  --comparison-operator GreaterThanThreshold \
  --dimensions Name=DBInstanceIdentifier,Value=aurora-tutorial-writer \
  --evaluation-periods 2 \
  --alarm-actions arn:aws:sns:us-east-1:123456789012:NotifyMe \
  --region us-east-1

Active backups 7 jours + logs CloudWatch. Crée alarme CPU >80% notifiant via SNS (créez la topic ARN d'abord). Aurora PITR récupère en <1 min.

Étape 4 : Optimisation avancée

Vos métriques CloudWatch trackent CPU, IOPS (Aurora IO-optimized gratuit). Ajoutez replicas readers : aws rds create-db-instance --db-instance-class db.r6g.large --... --promotion-tier 1.

Bonnes pratiques

  • Toujours chiffrer : Activez KMS pour data-at-rest et TLS pour transit.
  • Utilisez cluster endpoint : Pas d'instance endpoints pour failover auto.
  • Parameter Groups custom : Tunez max_connections=1000, innodb_buffer_pool_size pour perf.
  • IAM Database Auth : Évitez mots de passe avec tokens temporaires.
  • Performance Insights : Activez pour top queries lentes (gratuit 7j).

Erreurs courantes à éviter

  • Oublier Security Group : Port 3306 bloqué → timeout connexion.
  • Subnets publics : Aurora refuse ; utilisez privés + NAT Gateway.
  • Mot de passe faible : Changez post-création via aws rds modify-db-cluster.
  • Ignorer costs : Serverless pause auto, surveillez ACU avec Budgets AWS.

Pour aller plus loin

  • Docs AWS : Aurora MySQL
  • Migrez depuis MySQL : aws dms create-replication-instance
  • Serverless Data API : Queries HTTP sans client DB.
  • Découvrez nos formations AWS Learni pour certif Architect pro.