MySQL est l'une des bases de données relationnelles Open Source les plus populaires au monde. L'une des raisons de sa popularité est la possibilité d'héberger et de gérer la base de données de nombreuses façons conformes aux exigences de la charge de travail de l'utilisateur. L'utilisateur peut choisir de gérer la base de données de sorte qu'elle soit autogérée sur site, autogérée dans des machines virtuelles dans le cloud, ou bénéficier de l'offre entièrement gérée d'un fournisseur de services cloud. Cet article porte sur l'option MySQL autogérée et la solution entièrement gérée, Cloud SQL pour MySQL, fournies par Google Cloud. Nous aborderons les avantages et les inconvénients de chaque option.
L’option MySQL autogérée signifie que l’utilisateur, dans la plupart des cas un administrateur de base de données, est responsable de la plupart des activités impliquées dans la configuration, l’installation et la maintenance de la base de données, du système d’exploitation (OS), de la mise en réseau, du stockage, de l'instance de machine virtuelle (VM) et du matériel qui héberge l'instance de base de données et le serveur. Certaines de ces tâches, comme celles liées au matériel, aux instances de VM, au stockage, à la mise en réseau et au système d'exploitation, peuvent être réalisées plus facilement en faisant appel à un fournisseur de services cloud tel que Google Cloud. Qu'un utilisateur gère lui-même une base de données sur site ou dans le cloud, il est responsable de certaines tâches majeures de gestion de base de données nécessaires au bon fonctionnement du système. Ces tâches sont énumérées ci-dessous.
Le schéma ci-dessous illustre la responsabilité de l'utilisateur lorsqu'il opte pour la configuration autogérée. Bien que l'autogestion sur Google Cloud permette de réduire certaines tâches liées au matériel, au calcul, à la mise en réseau et au stockage, c'est l'utilisateur qui est responsable de la gestion des autres couches de la pile. L'administrateur de base de données et le développeur d'applications doivent toujours consacrer suffisamment de temps, d'énergie et de ressources à la gestion de MySQL.
Cloud SQL est un service de base de données entièrement géré qui facilite la configuration, la maintenance, la gestion et l'administration de bases de données MySQL, PostgreSQL et SQL Server sur Google Cloud. Cloud SQL gère tous les aspects liés au matériel, à la mise en réseau, au système d'exploitation, à la sécurité, à la surveillance, à la maintenance, à la disponibilité et au scaling de la base de données MySQL. Toutes ces responsabilités sont dissimulées aux utilisateurs, ce qui leur permet de se concentrer sur le développement d'applications et la création de valeur ajoutée pour leurs clients.
Le schéma ci-dessous est semblable au schéma ci-dessus, qui montre les tâches de gestion des différentes couches de la base de données MySQL. La seule différence est que toutes les tâches gérées par Cloud SQL pour le compte de l'utilisateur apparaissent en bleu.
Outre la gestion des nombreuses tâches illustrées ci-dessus, Cloud SQL offre diverses fonctionnalités et solutions qui ne sont pas disponibles de manière native dans un environnement autogéré. Certaines des principales fonctionnalités proposées par Cloud SQL sont listées ci-dessous.
Fiabilité : la sauvegarde et la récupération sont les activités les plus importantes de la gestion de bases de données. Cloud SQL propose des sauvegardes automatiques et des sauvegardes à la demande, qui permettent de restaurer la base de données à un moment précis en cas de corruption, de sinistre ou de modification accidentelle des données.
Disponibilité : Cloud SQL offre une haute disponibilité en instanciant plusieurs serveurs hébergeant la base de données sur plusieurs zones, avec une capacité de basculement automatisée pour fournir la disponibilité en cas de défaillance d'une VM ou d'un centre de données. Cloud SQL garantit une disponibilité de plus de 99,95 % partout dans le monde.
Outre la fonctionnalité de haute disponibilité, Cloud SQL propose également une équipe d'ingénierie en fiabilité des sites (SRE, Site Reliability Engineering) 24h/24 et 7j/7 qui est chargée de garantir la fiabilité des instances de base de données Cloud SQL pour MySQL sur Google Cloud.
Les instances répliquées interrégionales avec accès en lecture constituent une autre fonctionnalité qui peut être utilisée en tant que mécanisme de reprise après sinistre en cas de défaillance. Cette fonctionnalité permet à un utilisateur d'afficher rapidement la base de données concernée sur un autre site (région) avec un impact minimal sur l'entreprise.
Évolutivité : Cloud SQL permet de créer des instances répliquées avec accès en lecture MySQL, telles que des instances supplémentaires en lecture seule de MySQL, dans la même région ou dans des régions distantes permettant le traitement des requêtes des instances répliquées et de l'instance principale, améliorant ainsi les performances de lecture. Les instances répliquées avec accès en lecture peuvent également servir à des fins de reporting et peuvent être détruites lorsque les besoins de l'entreprise sont satisfaits.
Cloud SQL permet le scaling à la hausse des ressources (processeur, mémoire et espace de stockage) et le scaling à la baisse des ressources de l'instance MySQL avec un temps d'arrêt très court. Alors que dans le cas d'une configuration autogérée, ces activités complexes nécessitent d'important efforts, de l'expertise et une planification.
Sécurité : les serveurs de base de données Cloud SQL pour MySQL sont situés dans les centres de données sécurisés de Google Cloud et offrent le plus haut niveau de sécurité possible. De plus, Google Cloud offre une connectivité privée avec le cloud privé virtuel, ainsi qu'un accès réseau contrôlé par l'utilisateur avec une protection par pare-feu. Les serveurs de base de données utilisateur sont donc hors de portée des acteurs malveillants.
Un autre aspect de la sécurité est la conformité avec les réglementations de sécurité. Cloud SQL est conforme à de nombreuses réglementations reconnues, telles que les normes SSAE 16, ISO 27001, PCI DSS et HIPAA.
Cloud SQL offre la possibilité de gérer les utilisateurs et leur accès à la base de données via l'intégration IAM. Cette intégration gère les autorisations et l'authentification des utilisateurs de Google Cloud, et fournit un accès précis à des ressources Google Cloud spécifiques, empêchant ainsi tout accès non autorisé à la base de données. De plus, Cloud SQL facilite le contrôle des identités et des accès en fournissant des rôles prédéfinis conçus pour contrôler l'accès à vos ressources Cloud SQL.
Autre fonctionnalité de sécurité de Cloud SQL : le chiffrement des données au repos et en transit, qui garantit qu'aucun utilisateur non autorisé ne pourra accéder aux données utilisateur.
Cloud SQL propose une fonctionnalité de validation du mot de passe pour les utilisateurs de bases de données. Elle permet aux clients de définir des règles concernant la complexité du mot de passe, la longueur minimale du mot de passe, l'intervalle de changement du mot de passe et l'utilisation du nom d'utilisateur dans le mot de passe au niveau de l'instance. Les clients peuvent également définir des règles concernant les jours d'expiration des mots de passe, le nombre de tentatives infructueuses et les anciennes exigences de changement de mot de passe au niveau de chaque utilisateur. Ces fonctionnalités de Cloud SQL fournissent de bonnes pratiques concernant la conformité en termes de sécurité et réduisent le risque d'accès non autorisé aux données critiques.
Cloud SQL permet également d'auditer les actions et les opérations sur la base de données MySQL à l'aide d'un plug-in de journal d'audit. Le journal d'audit fournit des renseignements sur les actions effectuées, les objets concernés ainsi que les moments où elles ont été effectuées et par qui. L'audit de base de données vous permet de suivre des actions spécifiques des utilisateurs dans la base de données, telles que des mises à jour de table, des requêtes de lecture, des attributions de droits d'utilisateur, etc.
Observabilité : Cloud SQL propose diverses solutions de surveillance et une liste croissante de métriques prêtes à l'emploi, qui fournissent des insights sur l'état de la base de données. Les utilisateurs peuvent se servir de ces métriques pour créer des alertes et tenir les administrateurs au courant de l'état de la base de données.
Cloud SQL fournit également des fonctionnalités telles que les insights sur les requêtes et les outils de recommandation, qui permettent aux utilisateurs de résoudre et d'identifier les goulots d'étranglement qui affectent les performances d'une requête ou d'une charge de travail. Ces fonctionnalités sont difficiles à répliquer dans un environnement MySQL autogéré.
Intégration : Cloud SQL facilite la connectivité réseau et s'intègre à d'autres services de Google Cloud tels que Google Kubernetes Engine, Compute Engine et Cloud Run, qui simplifient le développement de solutions parfaitement intégrées. Cloud SQL offre également une intégration native avec BigQuery et Looker, qui peuvent être utilisées pour le traitement analytique des données présentes dans Cloud SQL.
Application de correctifs : en tant que service géré, Cloud SQL met automatiquement à jour les instances afin de garantir que le matériel et le système d'exploitation sous-jacents sont fiables, performants, sécurisés et à jour. La plupart de ces mises à jour sont effectuées tant que votre instance Cloud SQL est opérationnelle. Cependant, certaines mises à jour du système peuvent nécessiter une brève interruption de service, pendant laquelle les utilisateurs peuvent définir des intervalles de maintenance pour l'activité de mise à niveau.
Mises à niveau de versions : Cloud SQL fournit également un processus automatisé de mise à niveau de la version (MySQL) de la base de données. Les utilisateurs peuvent également mettre à niveau la version majeure en migrant les données vers une instance de version supérieure.
Avantages
Inconvénients
Avantages
Inconvénients
Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.