Amazon RDS est la base de données « entretenue par Amazon » : vous choisissez le moteur et la taille, et eux s'occupent d'installer, de mettre à jour, de sauvegarder et de surveiller. C'est l'étape naturelle quand un site grandit ou quand vous voulez que la base de données ne vive pas sur la même machine que le site. Le formulaire a beaucoup d'options et un piège : la case accès public. Si vous la cochez, la base de données est exposée à Internet ; si vous ne la cochez pas et que vous ne faites pas le reste correctement, le site ne se connecte pas et vous ne savez pas pourquoi. Ce guide suit le bon chemin.
Avant de commencer : ce que signifie chaque chose
- RDS
- Relational Database Service, le service de bases de données managées d'Amazon. Il prend en charge MySQL, PostgreSQL, MariaDB et d'autres.
- Instance de base de données
- Chaque base de données que vous créez dans RDS, avec sa taille et son adresse.
- Moteur
- Le système de base de données : MySQL est l'habituel pour les sites web ; PostgreSQL pour beaucoup d'applications sur mesure.
- Point de terminaison (endpoint)
- L'adresse à laquelle votre site se connecte, à la place de « localhost ».
- Accès public
- Si la base de données a une adresse sur Internet. Il doit être désactivé : seules vos machines AWS doivent pouvoir l'atteindre.
- Groupe de sécurité
- Le pare-feu d'AWS. La base de données en aura un qui doit autoriser l'entrée depuis le groupe de votre machine web.
- Multi-AZ
- Option pour avoir une réplique dans un autre centre de données qui prend le relais si le principal tombe en panne. Coûte le double ; pour commencer, ce n'est pas nécessaire.
- Utilisateur principal
- L'utilisateur principal de la base de données. Son mot de passe est défini par vous ou géré par AWS.
Pas à pas
Préparez le groupe de sécurité de la base de données
Avant le formulaire, dans EC2, Groupes de sécurité, Créer : nom
bd-interna, une règle entrante de type MYSQL/Aurora (port 3306) avec comme source le groupe de sécurité de votre machine web (choisissez le groupe dans la liste déroulante plutôt qu'une IP). Ainsi, seules les machines portant ce groupe pourront se connecter. Si vous préférez, le formulaire RDS propose un raccourci qui le fait pour vous (« Se connecter à une instance EC2 »), mais savoir le faire à la main vous servira plus tard.Ouvrez le formulaire RDS
Console RDS, même région que votre machine, Créer une base de données. Choisissez Création standard (la création facile cache la case d'accès public), moteur MySQL, la version recommandée. Dans les modèles, Offre gratuite si votre compte y a droit et que c'est pour tester, ou Développement/test pour un petit site ; Production active Multi-AZ et coûte plus cher.
Nom, utilisateur et taille
Identifiant
bd-web. Utilisateur principaladminou un nom à vous ; mot de passe : laissez AWS Secrets Manager le gérer si un petit coût ne vous dérange pas, ou mettez-en un long à vous et conservez-le dans un gestionnaire de mots de passe. Classe d'instance : la plus petite de la famille t (db.t4g.microoudb.t3.micro) pour commencer ; cela se change ensuite. Stockage gp3, 20 Go, avec la mise à l'échelle automatique activée et un plafond raisonnable (par exemple 100 Go) pour qu'elle ne se remplisse pas.Connectivité : la partie qui compte
Dans Connectivité : ressource de calcul Ne pas se connecter (vous le faites avec le groupe de sécurité), le VPC par défaut, Accès public : Non. Dans groupe de sécurité, Choisir existant et sélectionnez
bd-interna; retirez ledefault. Laissez le port 3306. Plus bas, dans Configuration supplémentaire, écrivez un nom de base de données initiale (tienda) pour ne pas avoir à la créer à la main, laissez les sauvegardes automatiques activées avec 7 jours et une fenêtre de nuit, et activez le chiffrement. Créez. Cela prend environ 5 à 10 minutes.Testez la connexion depuis la machine web
Quand l'état est « Disponible », ouvrez la base de données et copiez le point de terminaison depuis l'onglet Connectivité. Connectez-vous en SSH à votre machine web et essayez :
mysql -h tu-endpoint.eu-west-1.rds.amazonaws.com -u admin -p tiendaSi vous entrez, tout est bon. Si la commande reste bloquée sans répondre, c'est le groupe de sécurité (étape 1) ; si elle dit « Access denied », c'est l'utilisateur ou le mot de passe.
Connectez le site et faites une sauvegarde
Dans la configuration de votre application, remplacez le serveur par ce point de terminaison, avec l'utilisateur et le mot de passe. Si vous apportez des données d'une autre base, exportez-les avec
mysqldumpet importez-les avecmysqlcomme dans toute migration. Quand cela fonctionne, faites un instantané manuel depuis RDS : votre premier point de retour sûr. Les sauvegardes automatiques continueront chaque jour.
Ce qui peut mal tourner
Le site ne se connecte pas et la base est « Disponible »
Groupe de sécurité dans 95 % des cas : la règle entrante 3306 n'a pas comme source le groupe de votre machine web, ou la machine web ne porte pas ce groupe. Vérifiez les deux côtés.
Je veux me connecter depuis mon ordinateur avec un programme graphique
Sans accès public, vous ne pouvez pas directement. La bonne méthode est un tunnel SSH à travers la machine web (les programmes graphiques l'ont généralement intégré). Activer l'accès public « un moment » s'oublie et reste activé.
La facture est plus élevée que prévu
Regardez si Multi-AZ a été activé (modèle Production), si le stockage s'est agrandi tout seul ou si Secrets Manager et Performance Insights sont actifs. Et rappelez-vous que RDS est facturé à l'heure même si personne ne l'utilise : il y a un guide sur comment l'arrêter.
On me demande un mot de passe que je n'ai pas
Si vous avez laissé le mot de passe dans Secrets Manager, il y est (console Secrets Manager, le secret de la base). Si vous l'avez défini vous-même et l'avez perdu, dans RDS vous pouvez Modifier l'instance et en définir un nouveau sans redémarrer.
Dans Simplio
Dans Simplio, vous créez la base de données RDS depuis un formulaire court, en choisissant à quelle machine elle doit pouvoir se connecter : Simplio crée le bon groupe de sécurité, laisse l'accès public fermé et les sauvegardes actives, et vous montre le point de terminaison prêt à coller dans le site. Les bases de données apparaissent à côté de leurs machines avec l'état, les sauvegardes et un bouton d'instantané, et chaque personne ne voit que celles que vous lui avez attribuées.
La même chose, dans AWS et dans Simplio
| Dans la console AWS | Dans Simplio | |
|---|---|---|
| Créer la base de données correctement | Groupe de sécurité dans EC2 plus formulaire RDS de 8 blocs : 30 minutes et savoir ce qu'est l'accès public | Formulaire de 4 champs avec accès public fermé et pare-feu ouvert uniquement à la machine de votre choix |
| Tester la connexion | SSH vers la machine web et commande mysql | Bouton « Tester la connexion » depuis la machine choisie |
| Sauvegardes et état | Onglets de RDS | Sur la même fiche que la machine, avec alerte si une sauvegarde manque |