Comparaison entre MySQL autogéré et Cloud SQL pour MySQL

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.

MySQL autogéré

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.

  • Disponibilité  : les composants matériels et logiciels sont susceptibles de tomber en panne. Cependant, il incombe à l'utilisateur de concevoir le système de sorte qu'il tolère les pannes matérielles et logicielles et garantisse la disponibilité continue de la base de données, du serveur et de l'application.  
  • Maintenance de la base de données  : dans l'option MySQL autogéré, les utilisateurs doivent maintenir les différentes couches de la pile d'applications à jour avec les dernières versions du logiciel, et prendre des décisions sur la compatibilité des versions obsolètes, anciennes ou non compatibles du matériel, du système d'exploitation et des autres logiciels. De plus, les utilisateurs doivent installer régulièrement des correctifs de logiciels, de système d'exploitation et de MySQL, tout en gardant la base de données opérationnelle, sans interruption majeure.
  • Évolutivité  : à mesure que l'utilisation des applications augmente au fil du temps, il est nécessaire d'améliorer les performances de la base de données. De même, pour pouvoir gérer une charge de travail ou une clientèle importante, vous devez augmenter ou réduire la capacité des ressources matérielles. Cette responsabilité incombe à l'utilisateur dans le cas d'une solution MySQL autogérée. Le scaling des ressources matérielles dans un environnement sur site est une activité complexe et chronophage, qui entraîne parfois des temps d'arrêt du système.
  • Sécurité : ces derniers temps, la sécurité est devenue l'aspect le plus important qui s'applique à plusieurs couches du système de base de données, de la sécurisation physique du matériel à la configuration des pare-feu de mise en réseau, en passant par la sécurisation des connexions à la base de données, etc. Il s'agit d'activités complexes qui nécessitent des efforts importants et une expertise spécialisée en cas de configuration autogérée.
  • Surveillance : en plus de la mise en place, de l'installation et de la configuration de MySQL, les utilisateurs doivent également se soucier de la surveillance de divers composants à toutes les couches de la pile, telle que la surveillance au niveau du matériel, du système d'exploitation et de MySQL, et l'application de mesures correctives en cas de défaillance.

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.

Image montrant que toutes les responsabilités d'un administrateur de base de données sont l'hébergement de la base de données autogérée

Qu'est-ce que Cloud SQL pour 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.

Image pour l'hébergement de base de données entièrement géré

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.  

Créer une instance de base de données MySQL dans Cloud SQL pour MySQL

Avantages et inconvénients de la solution MySQL autogérée

Avantages

  1. Possibilité d'utiliser n'importe quelle bifurcation MySQL de l'écosystème MySQL comme MariaDB ou Percona pour configurer MySQL.
  2. Flexibilité sur la configuration de MySQL lorsque les utilisateurs disposent d'un contrôle total sur l'instance, les ressources et le système d'exploitation. De plus, les utilisateurs peuvent utiliser le système d'exploitation de leur choix, le configurer comme ils le souhaitent et configurer MySQL selon leurs besoins, sans aucune limite.
  3. Les utilisateurs ne sont pas contraints par les limites de Cloud SQL, telles que la taille maximale d'espace de stockage de 64 To. Les utilisateurs peuvent dépasser la limite d'espace de stockage de 64 To et utiliser une infrastructure de calcul beaucoup plus élevée pour héberger MySQL.
  4. Les utilisateurs disposent d'un accès complet à l'instance MySQL, y compris des droits SUPER, et d'un accès complet au système d'exploitation, y compris les autorisations sudo.
  5. Les utilisateurs ont la possibilité de configurer des topologies de haute disponibilité et de réplication en fonction de leurs besoins, même si elles ne sont pas compatibles avec Cloud SQL.  

Inconvénients

  1. Les utilisateurs sont chargés de gérer les opérations complexes liées à l'infrastructure matérielle, à la mise en réseau et aux centres de données dans un environnement sur site. Même lorsqu'ils gèrent eux-mêmes MySQL dans le cloud, les utilisateurs doivent faire face à la complexité de la configuration, des disques persistants et des instances, ainsi qu'à la conception et la gestion des clusters à haute disponibilité, la sécurité, la reprise après sinistre et l'évolutivité.
  2. Le fait de maintenir les versions de base de données, les versions des systèmes d'exploitation et les systèmes matériels à jour avec les derniers correctifs pour éviter les bugs et les failles de sécurité peut entraîner des coûts, des ressources, une complexité et des temps d'arrêt considérables.
  3. Parallèlement à la configuration de la base de données, les utilisateurs doivent configurer et gérer la sécurité à tous les niveaux, et pas seulement la base de données elle-même. Par exemple, vous devez vous assurer que les connexions sont chiffrées à l'aide du protocole SSL en transit, maintenir les certificats à jour, chiffrer les données au repos, et gérer l'accès des utilisateurs et des comptes de service aux bases de données.
  4. Pour garantir la disponibilité de l'instance, vous devez surveiller les différentes couches du système de base de données afin de détecter toute défaillance. Les utilisateurs doivent consacrer des ressources supplémentaires à l'installation et à la configuration des outils de surveillance. Les alertes doivent être définies pour avertir les utilisateurs en cas d'erreur, et des mesures correctives doivent être prises pour corriger les défaillances.
  5. Les utilisateurs doivent consacrer beaucoup de temps, de ressources et d'efforts à la configuration et à la gestion des bases de données au lieu de se concentrer sur le développement d'applications.

Avantages et inconvénients de Cloud SQL pour MySQL

Avantages

  1. Cloud SQL pour MySQL fournit une interface conviviale permettant aux ingénieurs et développeurs de créer, gérer, consulter et surveiller la base de données MySQL, même ceux qui ne disposent pas d'expertise en bases de données. Pour commencer rapidement, Cloud SQL offre également un moyen simple de migrer des bases de données MySQL existantes depuis le site ou d'autres clouds vers Cloud SQL pour MySQL de Google Cloud.
  2. Cloud SQL pour MySQL offre un ensemble des fonctionnalités nécessaires à l'hébergement de bases de données MySQL pour des applications variées : bases de données pour microsites, applications d'entreprise extrêmement critiques et de grande envergure, applications de jeu, données pour des cas d'utilisation d'analyse. Grâce à ces nombreuses fonctionnalités, les utilisateurs peuvent créer des applications hautement fiables et évolutives.
  3. Cloud SQL partage la responsabilité de la sécurité avec les utilisateurs. Cloud SQL assure la sécurité à des niveaux inférieurs de l'infrastructure et du réseau, ce qui permet aux utilisateurs de se concentrer sur la configuration et le développement d'applications de niveau supérieur. 
  4. Cloud SQL fournit diverses fonctionnalités de sécurité telles que les plug-ins de validation de mot de passe et les journaux d'audit qui ne sont pas facilement disponibles dans les versions de la communauté et qui sont complexes à mettre en œuvre dans les environnements autogérés. Cloud SQL simplifie ces fonctionnalités et les met à la disposition des utilisateurs.
  5. Cloud SQL offre plusieurs façons d'interagir avec la base de données. Les utilisateurs peuvent se servir de l'IUG, de la CLI et de l'API pour personnaliser les opérations en fonction de leurs besoins avec un minimum d'efforts.
  6. Cloud SQL s'intègre facilement à d'autres solutions et produits tels que BigQuery, ce qui permet de développer des solutions analytiques avec un minimum d'efforts.
  7. Cloud SQL prend en charge la fiabilité de l'instance de base de données grâce à son infrastructure hautement disponible, à ses solutions d'autoréparation et surtout aux équipes d'ingénierie SRE disponibles 24h/24, 7j/7.
  8. Les utilisateurs consacrent moins de temps et d'efforts aux tâches opérationnelles liées à la base de données. Ils peuvent ainsi se concentrer sur le développement d'applications et augmenter leur capacité à apporter des solutions pour répondre aux besoins de leur entreprise.
  9. Outre la gestion de la base de données, Cloud SQL fournit également des conseils et des recommandations pour améliorer les performances de la base de données à l'aide de fonctionnalités telles que les insights sur les requêtes et les recommandations. Grâce à ces fonctionnalités, l'hébergement et la gestion de la base de données sur le cloud s'avèrent simples, sécurisés et économiques.
  10. Cloud SQL propose des services client pour simplifier et optimiser l'assistance requise en cas de problème ou de requête lié aux bases de données.

Inconvénients

  1. Les bifurcations MySQL de l'écosystème MySQL comme MariaDB et Percona ne sont pas compatibles avec Cloud SQL. 
  2. Certaines fonctionnalités MySQL ne sont pas compatibles. En savoir plus sur les fonctionnalités non prises en charge
  3. Les types de machines offrant jusqu'à 624 Go de RAM et 96 processeurs sont compatibles avec Cloud SQL. Vous pouvez stocker jusqu'à 64 To. Si la base de données a besoin de davantage de capacité, l'option autogérée serait la seule option aujourd'hui.

Passez à l'étape suivante

Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Console
  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud