Déploiement
Déploiement • Chapitre 7 : Déploiement et connexion à une base de données

Création d'une base de données distante

Provisionnez une base de données managée dans le cloud (Supabase, Neon, AWS RDS, PlanetScale, Railway) et comprenez la structure normalisée d'une chaîne de connexion (Connection URI).

☁️
Bases Managées (DBaaS)

Zéro administration Linux : mises à jour, sauvegardes et réplication gérées par le fournisseur cloud.

🔗
Format Connection URI

protocole://utilisateur:motdepasse@hote:port/nom_base?parametres.

🔒
Chiffrement SSL Requis

L'option sslmode=require est obligatoire pour traverser internet de façon sécurisée.

🏊
Connection Pooling

Multiplexage des connexions (PgBouncer) pour éviter d'épuiser la mémoire de la base.

connection-string-anatomy.txt
# Anatomie universelle d'une chaîne de connexion de production :
# postgresql://app_user:K8f9#mZ2!x9Q@ep-silent-db-12.eu-west-1.aws.neon.tech:5432/production_db?sslmode=require
# │          │ │        │             │                                     │    │             │               │
# │          │ │        │             │                                     │    │             │               └── SSL forcé
# │          │ │        │             │                                     │    │             └── Nom de la base
# │          │ │        │             │                                     │    └── Port standard PostgreSQL
# │          │ │        │             │                                     └── Hôte cloud distant
# │          │ │        │             └── Mot de passe fort
# │          │ │        └── Utilisateur applicatif
# │          │ └── Séparateur identifiants
# └── Protocole / Moteur (postgresql / mysql)

Guide Approfondi & Architecture Système

1. DBaaS (Database-as-a-Service) vs Base Auto-Hébergée sur VPS

Pour un projet intermédiaire, deux choix s'offrent à vous :
  • Le DBaaS Managé (Supabase, Neon, PlanetScale, Render DB) : Idéal pour démarrer vite. Le fournisseur gère la tolérance aux pannes, les sauvegardes horaires et le dimensionnement automatique. Vous recevez simplement une URL de connexion.
  • L'Auto-Hébergement sur votre VPS : Idéal pour maîtriser vos coûts à long terme. Vous installez MySQL ou PostgreSQL directement sur la machine, réduisant le prix à zéro euro de surcoût.

2. Le Piège du Nombre de Connexions Simultanées (Connection Pool)

Chaque fois qu'une instance de votre API backend se connecte à la base, elle consomme entre 2 et 10 Mo de RAM sur le serveur SQL.
Attention aux fonctions Serverless : Si vous déployez sur Vercel avec 100 fonctions exécutées simultanément, 100 connexions directes peuvent saturer la base et déclencher une erreur fatale too many connections. Utilisez toujours un Connection Pooler (comme PgBouncer ou Prisma Accelerate) pour mutualiser les connexions.

Tableau Comparatif : Principales Solutions de Bases Managées Cloud

Service CloudMoteur SQLOffre GratuitePoint Fort
Neon.techPostgreSQL ServerlessOui (0.5 Go)Branchement de base instantané comme Git (Branching)
SupabasePostgreSQLOui (500 Mo)Écosystème complet avec Auth, Storage et Realtime
PlanetScaleMySQL (Vitess)Essai gratuitScalabilité horizontale massive sans verrouillage de table
AWS RDSMySQL / Postgres / MariaDB12 mois gratuitsStandard de l'industrie pour les infrastructures critiques