Aller au contenu principal

Bases de données

Kuploy met à votre disposition des bases de données infogérées, simples à mettre en place et sauvegardées automatiquement. Toutes tournent sur le réseau privé de votre projet, pour des raisons de sécurité.

Les bases disponibles​

BaseUsagePort par défaut
PostgreSQLDonnées relationnelles, requêtes complexes, conformité ACID5432
MySQLApplications web, charges à dominante lecture3306
MariaDBCompatible MySQL, performances améliorées3306
MongoDBStockage documentaire, schémas souples27017
RedisCache, sessions, données temps réel6379

Créer une base de données​

  1. Ouvrez votre projet
  2. Cliquez sur Add Resource → Database
  3. Choisissez le type de base
  4. Renseignez les réglages :
    • Name : un identifiant unique
    • Version : la version de la base (la dernière version stable est recommandée)
    • Size : les ressources allouées en processeur et en mémoire
  5. Cliquez sur Create

La base est opérationnelle en quelques minutes.

Dimensionner une base​

TailleProcesseurMémoireStockageUsage
Starter0,5 vCPU512 Mo5 GoDéveloppement, petites applications
Standard1 vCPU2 Go20 GoCharges de production
Pro2 vCPU8 Go100 GoApplications à fort trafic
Enterprise4 vCPU32 Go500 GoProduction à grande échelle

Chaînes de connexion internes​

Vos bases sont joignables depuis le réseau privé de votre projet, en utilisant le nom applicatif de la base comme nom d'hôte — un Service Kubernetes dans l'espace de noms de votre projet. Il ne se résout que depuis l'intérieur du cluster, c'est-à-dire depuis vos autres services du même projet, et jamais depuis l'extérieur. La chaîne de connexion exacte figure dans l'onglet General de la base.

L’onglet General d’une base PostgreSQL : ses identifiants internes, mot de passe et URL de connexion masqués jusqu’à affichage

PostgreSQL​

# Format de la chaîne de connexion
postgresql://[utilisateur]:[motdepasse]@[hote]:5432/[base]

# Exemple
postgresql://kuploy:abc123xyz@pg-mabase:5432/app_production

# Éléments séparés
POSTGRES_HOST=pg-mabase
POSTGRES_PORT=5432
POSTGRES_USER=kuploy
POSTGRES_PASSWORD=abc123xyz
POSTGRES_DATABASE=app_production

MySQL​

# Format de la chaîne de connexion
mysql://[utilisateur]:[motdepasse]@[hote]:3306/[base]

# Exemple
mysql://kuploy:abc123xyz@mysql-mabase:3306/app_production

# Éléments séparés
MYSQL_HOST=mysql-mabase
MYSQL_PORT=3306
MYSQL_USER=kuploy
MYSQL_PASSWORD=abc123xyz
MYSQL_DATABASE=app_production

MariaDB​

# Format de la chaîne de connexion
mysql://[utilisateur]:[motdepasse]@[hote]:3306/[base]

# Exemple
mysql://kuploy:abc123xyz@mariadb-mabase:3306/app_production

# Même format que MySQL
MYSQL_HOST=mariadb-mabase
MYSQL_PORT=3306

MongoDB​

# Format de la chaîne de connexion
mongodb://[utilisateur]:[motdepasse]@[hote]:27017/[base]

# Exemple
mongodb://kuploy:abc123xyz@mongo-mabase:27017/app_production

# Avec une base d'authentification
mongodb://kuploy:abc123xyz@mongo-mabase:27017/app_production?authSource=admin

# Éléments séparés
MONGO_HOST=mongo-mabase
MONGO_PORT=27017
MONGO_USER=kuploy
MONGO_PASSWORD=abc123xyz
MONGO_DATABASE=app_production

Redis​

# Format de la chaîne de connexion
redis://:[motdepasse]@[hote]:6379

# Exemple
redis://:abc123xyz@redis-mabase:6379

# Éléments séparés
REDIS_HOST=redis-mabase
REDIS_PORT=6379
REDIS_PASSWORD=abc123xyz
astuce

Servez-vous de Link Resource, dans l'onglet Environment de votre application, pour que ces chaînes de connexion y soient injectées automatiquement. Voir Lier une base de données.

Mutualisation des connexions​

En production, mutualisez les connexions pour réduire le coût de leur établissement.

PostgreSQL avec PgBouncer​

Si votre plateforme met PgBouncer à disposition, connectez-vous au point d'entrée du mutualiseur plutôt que directement à PostgreSQL. Son nom d'hôte suit ce schéma :

# Connexion mutualisée (recommandée en production)
DATABASE_URL=postgresql://kuploy:motdepasse@pgbouncer-mabase:5432/app_production

# Connexion directe (pour les migrations et l'administration)
DATABASE_URL=postgresql://kuploy:motdepasse@pg-mabase:5432/app_production

Mutualisation côté application​

La plupart des ORM savent mutualiser les connexions. Dimensionnez le pool d'après les ressources de votre offre :

# Exemple : taille du pool définie par variable d'environnement
DATABASE_POOL_SIZE=10

Sauvegardes​

Sur Kuploy Cloud, vos bases infogérées sont sauvegardées automatiquement. Chaque base reçoit une sauvegarde quotidienne dès sa création : vous n'avez rien à activer, et rien à configurer avant que vos données soient protégées.

QuandUne fois par nuit, entre 2 h et 6 h UTC. Chaque base se voit attribuer sa propre minute dans cette plage.
Ce qui est conservéLes 7 sauvegardes les plus récentes. Les plus anciennes sont supprimées automatiquement.
OùSur un stockage de sauvegarde chiffré, géré par votre fournisseur.
CoûtCompris.
Kuploy auto-hébergé

Les sauvegardes automatiques sont une fonctionnalité de Kuploy Cloud. Sur une instance auto-hébergée, vous définissez vous-même votre planification et votre destination S3, comme décrit plus bas dans Votre propre stockage de sauvegarde.

Consulter vos sauvegardes​

Ouvrez votre base → onglet Backups. Les sauvegardes gérées pour vous par votre fournisseur portent la mention Managed by your provider. Vous ne pouvez ni modifier ni supprimer cette entrée — elle appartient à celui qui détient le stockage — mais deux boutons vous reviennent :

▶ Run Manual BackupPrend une sauvegarde supplémentaire immédiatement, en plus de celle de la nuit. À utiliser avant une migration délicate ou une suppression massive.
🕘 HistoryChaque exécution de cette sauvegarde, et son résultat.

Une base nouvellement créée affiche sa planification tout de suite ; la première sauvegarde apparaît après le passage de la nuit suivante.

Une sauvegarde manuelle a l'air de ne rien faire

La carte ne change pas après un appui sur ▶ : l'exécution est consignée dans History, pas sur la carte elle-même. Ouvrez History pour confirmer qu'elle a réussi.

Une sauvegarde manuelle ajoute une copie, elle n'en remplace jamais une : appuyez trois fois et vous obtenez trois sauvegardes distinctes, chacune prise au moment de l'appui. Elles comptent dans le nombre de copies conservées, si bien que la plus ancienne disparaît dès que la limite est dépassée.

Ce que ces sauvegardes sont — et ne sont pas​

Les sauvegardes nocturnes sont des copies intégrales : l'état complet de la base au moment où la sauvegarde s'est exécutée. En restaurer une ramène vos données à cet instant ; vous pouvez donc perdre jusqu'à une journée d'écritures.

Ce n'est pas de la restauration à un instant précis. Si vous avez besoin de revenir à un moment donné — « juste avant la migration ratée de 14 h 32 » — une copie nocturne ne sait pas le faire. Voyez avec votre fournisseur ce que votre offre permet.

Restaurer​

Votre fournisseur peut toujours restaurer pour vous une sauvegarde gérée par la plateforme, quelle que soit votre offre. Indiquez-lui la base et la date voulues. Rien dans votre offre ne peut rendre vos données irrécupérables.

Certaines offres incluent en outre la restauration en libre-service, qui vous permet de faire l'opération vous-même sans attendre. Si c'est le cas de la vôtre, ouvrez Backups dans la barre latérale, choisissez une base, puis une sauvegarde, et donnez un nom à la copie restaurée. Sinon, la page vous le dit — et solliciter votre fournisseur reste gratuit.

Une restauration crée une nouvelle base

Une restauration n'écrase jamais la base existante. Elle en crée une nouvelle à partir de la sauvegarde, ce qui vous laisse le temps de vérifier les données avant d'y basculer votre application — et si la sauvegarde n'était pas celle que vous pensiez, vous n'avez rien perdu.

Puisqu'elle crée une base, une restauration a besoin de place dans votre offre. Si vous êtes au maximum, supprimez une base dont vous n'avez plus l'usage, ou demandez à votre fournisseur : il peut restaurer pour vous indépendamment de votre limite.

Deux endroits proposent « Restore » — ils ne font pas la même chose​

C'est un piège classique, et trente secondes de lecture valent mieux qu'un clic malheureux.

Où vous êtesCe que fait « Restore »
Backups, dans la barre latéraleCrée une nouvelle base à partir de la sauvegarde. Votre base actuelle n'est pas touchée.
Une base → onglet Backups → Restore BackupÉcrit dans la base que vous consultez, en remplaçant son contenu.

La page de la barre latérale est la plus sûre, et celle à choisir dans le doute. La fenêtre au niveau d'une base sert à ramener délibérément cette base à un état antérieur : c'est utile, mais cela écrase — vérifiez bien qu'il s'agit de la bonne sauvegarde avant de confirmer.

Si une restauration tourne mal, vos sauvegardes sont toujours là : restaurer ne les supprime ni ne les modifie jamais.

Si vous avez configuré votre propre stockage de sauvegarde, vous pouvez restaurer ces sauvegardes vous-même depuis l'onglet Backups, à tout moment et quelle que soit votre offre.

Restaurer vos propres sauvegardes peut écraser sur place

Les restaurations gérées par la plateforme créent toujours une nouvelle base. Restaurer depuis votre propre stockage, non : l'opération peut écrire directement dans une base existante et en écraser tout le contenu. Préférez restaurer vers une nouvelle base, puis y basculer votre application une fois les données vérifiées.

Changer la planification, ou l'arrêter​

La planification par défaut appartient à votre fournisseur : elle est donc en lecture seule pour vous. Pour en changer l'heure ou la rétention, ou pour l'arrêter, adressez-vous à lui.

Les entrées de sauvegarde que vous créez vous-même — vers votre propre stockage — sont en revanche entièrement modifiables :

  • changer l'heure ou la fréquence : modifiez l'expression cron ;
  • conserver plus ou moins de copies : modifiez le nombre de rétentions ;
  • l'arrêter : désactivez l'entrée.

Désactiver une sauvegarde signifie que votre base n'est plus sauvegardée. Votre fournisseur voit que vous y avez renoncé et ne le traitera pas comme un incident : rien ne vous le rappellera plus tard.

Votre propre stockage de sauvegarde​

Vous pouvez envoyer vos sauvegardes vers un stockage que vous maîtrisez, en complément de celui de la plateforme ou à sa place. C'est aussi ce qui débloque la restauration en libre-service.

  1. Allez dans Settings → Destinations et cliquez sur Add Destination
  2. Saisissez vos identifiants :
    • Endpoint — le point d'accès S3 de votre fournisseur
    • Bucket, Region, Access Key ID, Secret Access Key
  3. Cliquez sur Test Connection, puis sur Save
  4. Dans l'onglet Backups de votre base, créez une entrée de sauvegarde qui pointe dessus

Fonctionne avec n'importe quel fournisseur compatible S3 : Amazon S3, Cloudflare R2, DigitalOcean Spaces, Backblaze B2, Wasabi, MinIO.

Sauvegardes manuelles​

Pour prendre une sauvegarde immédiatement — avant une migration délicate, par exemple — ouvrez l'onglet Backups et cliquez sur Manual Backup sur l'entrée voulue. Elle utilise la destination et la rétention de cette entrée.

Administrer une base​

La console​

Pour accéder directement à la base :

  1. Ouvrez votre base
  2. Cliquez sur Console
  3. Servez-vous du terminal web

Ou connectez-vous depuis votre application avec la chaîne de connexion.

Redimensionner​

Pour changer la taille de votre base :

  1. Allez dans Settings → Resources
  2. Choisissez une nouvelle taille
  3. Cliquez sur Apply
info

Le redimensionnement impose un bref redémarrage. Prévoyez quelques minutes d'indisponibilité.

Les logs​

Pour consulter les logs de la base en direct :

  1. Ouvrez votre base
  2. Cliquez sur Logs
  3. Filtrez par gravité ou recherchez une entrée précise

Sécurité​

Isolation réseau​

Les bases ne sont joignables que depuis le réseau privé de votre projet. Les connexions extérieures sont bloquées par défaut.

Ouvrir l'accès depuis l'extérieur​

Pour du développement ou une migration :

  1. Allez dans Settings → Network
  2. Activez Public Access
  3. Autorisez des adresses IP précises
  4. Utilisez la chaîne de connexion externe qui vous est fournie
attention

N'ouvrez l'accès public que lorsque c'est indispensable. Et toujours avec une liste d'adresses IP autorisées.

Renouveler les identifiants​

Changez périodiquement les identifiants de vos bases :

  1. Allez dans Settings → Credentials
  2. Cliquez sur Rotate Password
  3. Mettez à jour les variables d'environnement de votre application
  4. Redéployez votre application

Bonnes pratiques​

  1. Mutualisez les connexions — réduisez le coût d'établissement avec un outil comme PgBouncer
  2. Activez des sauvegardes planifiées — ne comptez jamais uniquement sur les sauvegardes manuelles
  3. Surveillez les performances — consultez régulièrement les métriques pour repérer les requêtes lentes
  4. Dimensionnez juste — commencez petit, agrandissez au besoin
  5. Restez sur le réseau interne — évitez l'accès public en production
  6. Renouvelez les identifiants — changez les mots de passe régulièrement
  7. Testez vos restaurations — vérifiez périodiquement que vos sauvegardes fonctionnent