Allez, on s'y met ! Voyons comment lancer un serveur de base de données entièrement géré dans le cloud (eh, ça sonne bien ce que je viens de dire).
Je vous propose ici de découvrir comment lancer un serveur RDS utilisant MySQL. Si vous utilisez un autre moteur de base de données, la procédure sera la même.
Découvrez l’interface RDS
Rendez-vous sur la section Relational Database Service (RDS) sur votre console AWS. La page d'accueil devrait ressembler à ceci la première fois :
Premier constat : il y a moins de sous-menus dans RDS que dans EC2. Ouf !
Et en effet, vous allez voir que le service est heureusement moins complexe.
Voici les deux menus à connaître :
Bases de données : la liste de vos serveurs RDS ;
Instantanés : les sauvegardes de vos bases de données.
Il y a d'autres sections, comme vous le voyez : groupes de sous-réseaux, de paramètres, d'options, évènements... On peut s'en servir pour faire une configuration plus poussée de nos serveurs et suivre leur utilisation. Je vous propose de les laisser de côté pour l'instant.
Lancez une instance RDS
Pour lancer une instance de serveur RDS, rendez-vous dans le menu "Bases de données". Il ne devrait y avoir aucune instance lancée pour l'instant :
Deux boutons principaux vous sont proposés :
Lancement d'une instance DB : pour lancer un nouveau serveur ;
Restaurer à partir de S3 : pour restaurer un serveur depuis une sauvegarde précédente. Pourquoi S3 ? Parce que certaines personnes stockent leurs sauvegardes sur S3, le service de stockage de fichiers d'Amazon, que nous verrons par la suite.
Nous allons lancer un nouveau serveur. Cliquez donc sur "Lancement d'une instance DB".
Choix du moteur
La première question qu'on nous pose est celle du choix du moteur de base de données :
Comme promis, il y a du choix ! Aurora est optimisé pour RDS et compatible avec MySQL et PostgreSQL, mais il n'est pas open source et n'est pas disponible dans l'offre gratuite. Nous allons donc utiliser MySQL, ici.
On vous demande tout d'abord quelle version de MySQL vous souhaitez utiliser. À moins que vous ayez un besoin précis, laissez la valeur par défaut.
Cas d'utilisation
On nous demande ensuite ce que nous comptons faire de la base de données :
Le mode “Production” sélectionne par défaut la réplication de base de données, aussi appelée déploiement multi-AZ, et propose 1 000 Go de stockage. Le mode “Dév” par contre propose des valeurs plus raisonnables, plus adaptées aux tests : 20 Go de stockage.
Pour nos besoins, l’offre gratuite ira très bien.
Spécification de l'instance
Il vous faut ensuite donner un nom à votre instance (appelez-la comme vous voulez). Vous devrez aussi indiquer un nom d'utilisateur pour vous connecter à la base de données, et un mot de passe :
Plus bas sur la même page, vous trouverez de nombreuses autres options :
Vu que nous avons coché l’option “Offre gratuite”, AWS ne nous laisse pas le choix, ce sera une instance de type db.t3.micro.
On garde l’espace de stockage proposé par défaut.
OK, on peut passer à l'étape suivante !
Configurez les paramètres avancés
Sur ce nouvel écran, vous avez là encore de nombreuses options. On commence par vous demander dans quel VPC vous souhaitez lancer votre serveur. C'est une option importante :
Le VPC est un sous-réseau qui vous permet de "regrouper" vos serveurs entre eux, pour qu'ils communiquent plus facilement et en toute sécurité.
Amazon a fait une illustration qui explique bien le concept, je me permets de la reprendre ici sans vergogne :
Le VPC est un sous-réseau qui vous permet de créer une zone dans laquelle vos serveurs peuvent parler librement entre eux.
Si vous désactivez bien "Accessibilité publique" dans les options, alors votre serveur RDS n'aura même pas d'IP publique. Cela voudra dire qu'il ne sera tout simplement pas accessible depuis Internet, et c'est une bonne chose. Vous n'imaginez pas le nombre de gens dont le boulot consiste à chercher des serveurs SQL mal configurés ouverts à tous sur le Net.
Bien sûr, pour des raisons pratiques, vous pouvez ouvrir votre serveur SQL (en indiquant "Accessibilité publique : oui"). Il faut simplement retenir qu'il est préférable d'éviter cela si vous en avez la possibilité.
Plus bas sur la page, vous pouvez aussi demander à créer une première base de données à l'intérieur de votre instance. Si vous ne le faites pas maintenant, pas de panique : vous pourrez toujours le faire par la suite.
Une autre option vous permet de choisir la durée de sauvegarde (par défaut : 7 jours). Celles-ci sont mises en place automatiquement et sauvegardées pendant 7 jours par défaut.
Ne touchez pas au reste des options et cliquez sur “Créer une base de données”.
Ouf, notre instance est lancée !
Nous pouvons maintenant voir que notre instance est lancée et tourne, si nous allons dans la section "Instances" de RDS.
Si vous cliquez sur le nom de l'instance, vous aurez tous les détails sur celle-ci. L'un de ceux qui vous seront le plus utiles est le point de terminaison de l'instance (son adresse). Prenez-en note, vous en aurez besoin pour indiquer où se trouve votre serveur SQL afin de vous y connecter dans vos scripts !
En résumé
Lorsque vous lancez votre serveur RDS, vous pouvez choisir des modèles qui présélectionnent certaines options de configuration par défaut, pour correspondre à votre usage.
Un VPC est un sous-réseau qui assigne des adresses IP privées à des serveurs. Il leur permet donc de communiquer entre eux.
Dans un environnement de production, il faut éviter d'exposer un serveur RDS sur Internet. Ce dernier ne doit être accessible que depuis son VPC.
Chaque serveur RDS dispose d’un point de terminaison qui constitue son adresse de connexion.
Votre instance est désormais prête à recevoir de la donnée. Bien entendu, tout service de stockage doit pouvoir assurer l'intégrité et la disponibilité des données. Que se passe-t-il si une mauvaise requête SQL se glisse dans le code et supprime un millier de lignes en trop ? (Comment ça, cela ne vous est jamais arrivé ?). Rendez-vous dans le prochain paragraphe pour pallier ce risque.