Dans notre dernier blog, nous avons discuté des offres disponibles dans Amazon Web Services (AWS) lors de l'exécution d'un cluster MySQL Galera. Dans ce blog, nous poursuivrons la discussion en examinant plus en détail les offres permettant d'exécuter la même technologie de clustering, mais cette fois sur Google Cloud Platform (GCP).
GCP, en tant qu'alternative à AWS, attire en permanence des applications adaptées au DevOps en offrant une prise en charge d'un large éventail de technologies complètes, d'applications conteneurisées et de grands systèmes de base de données de production. Google Cloud est un environnement complet et éprouvé qui alimente sa propre infrastructure matérielle chez Google pour des produits tels que YouTube et Gmail.
GCP a gagné du terrain en grande partie grâce à sa liste sans cesse croissante de fonctionnalités. Il offre un support pour des plates-formes telles que Visual Studio, Android Studio, Eclipse, Powershell et bien d'autres. GCP possède l'un des réseaux informatiques les plus vastes et les plus avancés et il donne accès à de nombreux outils qui vous aident à vous concentrer sur la création de votre application.
Une autre chose qui incite les clients à migrer, importer ou utiliser Google Cloud est leur solide support et leurs solutions de conteneurisation. Kubernetes (GKE :Google Kubernetes Engine) est construit sur leur plate-forme.
GCP a également lancé récemment une nouvelle solution appelée Anthos. Ce produit est conçu pour permettre aux organisations de gérer les charges de travail à l'aide de la même interface sur Google Cloud Platform (GCP) ou sur site à l'aide de GKE On-Prem, et même sur des clouds concurrents tels qu'Amazon Web Services (AWS) ou Azure.
En plus de ces technologies, GCP propose des types de machines sophistiquées et puissantes, optimisées pour le calcul, comme la famille C2 dans GCE, qui s'appuie sur la dernière génération de processeurs évolutifs Intel (Cascade Lake).
GCP continue également à prendre en charge l'open source, ce qui profite aux utilisateurs en fournissant un cadre simple et bien pris en charge qui facilite la livraison d'un produit final en temps opportun. Malgré cette prise en charge de la technologie open source, GCP ne fournit pas de support natif pour le déploiement ou la configuration d'un cluster MySQL Galera. Dans ce blog, nous allons vous montrer la seule option qui s'offre à vous si vous souhaitez utiliser cette technologie, le déploiement via une instance de calcul que vous devez gérer vous-même.
Le moteur de calcul Google (GCE)
GCE dispose d'un ensemble sophistiqué et puissant de nœuds de calcul disponibles pour votre consommation. Contrairement à AWS, GCE possède le nœud de calcul le plus puissant disponible sur le marché (n1-ultramem-160 avec 160 vCPU et 3,75 To de mémoire). GCE a également récemment introduit un nouveau type de famille d'instances de calcul appelé type de machine C2. Construits sur la dernière génération de processeurs évolutifs Intel (Cascade Lake), les types de machines C2 offrent un turbo tout cœur soutenu jusqu'à 3,8 GHz et offrent une transparence totale dans l'architecture des plates-formes de serveur sous-jacentes ; vous permettant d'affiner les performances. Les types de machines C2 offrent beaucoup plus de puissance de calcul, s'exécutent sur une plate-forme plus récente et sont généralement plus robustes pour les charges de travail intensives en calcul que les types de machines N1 à processeur élevé. Les offres de la famille C2 sont limitées (au moment de la rédaction) et ne sont pas disponibles dans toutes les régions et zones. C2 ne prend pas non plus en charge les disques persistants régionaux, bien qu'il s'agisse d'un excellent complément pour les services de base de données avec état qui nécessitent une redondance et une haute disponibilité. Les ressources d'une instance C2 sont trop importantes pour un nœud Galera, nous allons donc nous concentrer sur les nœuds de calcul, qui sont idéaux.
GCE utilise également KVM comme logiciel de technologie de virtualisation, tandis qu'Amazon utilise Xen. Jetons un coup d'œil aux nœuds de calcul disponibles dans GCE qui conviennent à l'exécution de Galera parallèlement à son équivalence dans AWS EC2. Les prix diffèrent selon la région, mais pour ce graphique, nous utilisons la région us-east en utilisant le type de tarification à la demande pour AWS.
Type de machine/instance | Google Compute Engine | AWS EC2 |
Partagé | f1-micro G1-petit Les prix commencent à 0,006 $ - 0,019 $ de l'heure | t2.nano – t3.2xlarge' Le prix commence à 0,0058 $ - 0,3328 $ de l'heure |
Standard | n1-standard-1 – n1-standard-96 Les prix commencent à 0,034 $ - 3,193 $ de l'heure | m4.large – m4.16xlarge m5.large – m5d.metal Les prix vont de 0,1 $ à 5,424 $ de l'heure |
Mémoire élevée/Mémoire optimisée | n1-highmem-2 – n1-highmem-96 n1-megamem-96 n1-ultramem-40 – n1-ultramem-160 Les prix commencent à 0,083 $ - 17,651 $ de l'heure | r4.large – r4.16xlarge x1.16xlarge – x1.32xlarge x1e.xlarge – x1e.32xlarge Les prix commencent à 0,133 $ - 26,688 $ de l'heure |
Optimisation CPU/stockage élevé | n1-highcpu-2 – n1-highcpu-32 Les prix commencent à 0,05 $ - 2,383 $ de l'heure | h1.2xlarge – h1.16xlarge i3.large – i3.metal I3en.large - i3en.metal d2.xlarge – d2.8xlarge Les prix commencent entre 0,156 $ et 10,848 $ de l'heure |
Prix (instance de calcul, disque, vCPU, mémoire et réseau)
Le prix dépend également de la région où il se trouve, du type de système d'exploitation ou de licence (RHEL vs Suse Linux Enterprise), ainsi que du type de stockage sur disque que vous utilisez.
GCP propose également des remises qui vous permettent d'économiser votre consommation de ressources. Pour Compute Engine, il propose différentes remises.
Les remises pour utilisation soutenue s'appliquent aux ressources suivantes :
-
Les processeurs virtuels et la mémoire pour les types de machines personnalisés et prédéfinis à usage général
-
Les processeurs virtuels et la mémoire pour les types de machines à mémoire optimisée
-
Les processeurs virtuels et la mémoire pour les types de machines optimisées pour le calcul
-
Les vCPU et la mémoire pour les nœuds à locataire unique
-
Le surcoût de 10 % pour les nœuds à locataire unique, même si les vCPU et la mémoire de ces nœuds sont couverts par des remises sur engagement d'utilisation
-
Périphériques GPU1
Notez que les remises pour utilisation soutenue ne s'appliquent pas aux VM créées à l'aide de l'environnement flexible App Engine et de Cloud Dataflow.
Vous pouvez également utiliser les remises sur engagement d'utilisation lorsque vous achetez un VMS lié à un contrat. Ce type de choix est idéal pour les charges de travail prévisibles et les besoins en ressources. Lorsque vous achetez un contrat d'utilisation avec engagement, vous achetez une certaine quantité de vCPU, de mémoire, de GPU et de SSD locaux à un prix réduit en échange d'un engagement à payer ces ressources pendant 1 an ou 3 ans. La remise peut atteindre 57 % pour la plupart des ressources telles que les types de machines ou les GPU. La remise peut atteindre 70 % pour les types de machines à mémoire optimisée. Une fois acheté, vous êtes facturé mensuellement pour les ressources que vous avez achetées pour la durée du terme que vous avez sélectionné (que vous utilisiez les services ou non).
Une VM préemptive est une instance que vous pouvez créer et exécuter à un prix bien inférieur à celui des instances normales. Compute Engine peut toutefois résilier (préempter) ces instances s'il a besoin d'accéder à ces ressources pour d'autres tâches. Les instances préemptives utilisent la capacité excédentaire de Compute Engine. Leur disponibilité varie donc en fonction de l'utilisation.
Si vos applications sont tolérantes aux pannes et peuvent résister à d'éventuelles préemptions d'instances, alors les instances préemptives peuvent réduire considérablement vos coûts Compute Engine. Par exemple, les tâches de traitement par lots peuvent s'exécuter sur des instances préemptives. Si certaines de ces instances se terminent pendant le traitement, la tâche ralentit mais ne s'arrête pas complètement. Les instances préemptives complètent vos tâches de traitement par lots sans imposer de charge de travail supplémentaire à vos instances existantes et sans vous obliger à payer le plein tarif pour des instances normales supplémentaires.
Pour Compute Engine, la taille du disque, la mémoire du type de machine et l'utilisation du réseau sont calculées en gigaoctets (Go), où 1 Go correspond à 230 octets. Cette unité de mesure est également connue sous le nom de gibioctet (GiB). Cela signifie que GCP vous propose de ne payer qu'en fonction de la consommation de ressources que vous avez allouée.
Maintenant, si vous avez une application de base de données de production de haute qualité, il est recommandé (et idéal) d'attacher ou d'ajouter un disque persistant séparé. Vous utiliserez ensuite ce disque comme volume de base de données, car il vous offre des performances de disque fiables et cohérentes dans GCE. Plus la taille que vous configurez est élevée, plus les IOPS qu'elle vous offre sont élevées. Consultez leur liste de prix de disque persistant pour déterminer le prix que vous obtiendriez. En plus de cela, GCE dispose d'un disque persistant régional qui convient au cas où vous auriez besoin d'une haute disponibilité plus solide et durable au sein de votre cluster de base de données. Le disque persistant régional ajoute plus de redondance dans le cas où votre instance se termine, tombe en panne ou est corrompue. Il fournit une réplication synchrone des données entre deux zones dans une région qui se produit de manière transparente dans l'instance de VM. Dans le cas peu probable d'une défaillance de zone, votre charge de travail peut basculer vers une autre instance de VM dans la même zone ou dans une zone secondaire. Vous pouvez ensuite forcer l'association de votre disque persistant régional à cette instance. Le temps de fixation forcée est estimé à moins d'une minute.
Si vous stockez des sauvegardes dans le cadre de votre solution de reprise après sinistre et que vous avez besoin d'un volume à l'échelle du cluster, GCP propose Cloud Filestore, NetApp Cloud Volumes et d'autres solutions alternatives de partage de fichiers. Ce sont des services entièrement gérés qui offrent des services standard et premium. Vous pouvez consulter la page de tarification de NetApp ici et la tarification de Filestore ici.
Cryptage Galera sur GCP
GCP n'inclut pas de support spécifique pour le type de chiffrement disponible pour Galera. Toutefois, GCP chiffre par défaut les données client stockées au repos, sans aucune action supplémentaire de votre part. GCP propose également une autre option pour chiffrer vos données à l'aide de clés de chiffrement gérées par le client (CMEK) avec Cloud KMS, ainsi qu'avec des clés de chiffrement fournies par le client (CSEK). GCP utilise également le chiffrement SSL/TLS pour toutes les communications interceptées lors du transfert de données entre votre site et le fournisseur de cloud ou entre deux services. Cette protection est obtenue en cryptant les données avant transmission; authentifier les terminaux ; et décrypter et vérifier les données à l'arrivée.
Parce que Galera utilise MySQL sous le capot (version Percona, MariaDB ou Codership), vous pouvez tirer parti du plug-in de cryptage de gestion de clé de fichier de MariaDB ou en utilisant les plug-ins MySQL Keyring. Voici un blog externe de Percona qui est une bonne ressource sur la façon dont vous pouvez mettre cela en œuvre.
Déploiements de clusters Galera multi-AZ/multi-régions/multi-cloud avec GCP
Semblable à AWS, GCP n'offre pas de support direct pour déployer un cluster Galera sur un Multi-AZ/-Region/-Cloud.
Haute disponibilité, évolutivité et redondance du cluster Galera sur GCP
L'une des principales raisons d'utiliser un cluster de nœuds Galera est la haute disponibilité, la redondance et sa capacité à évoluer. Si vous servez du trafic à l'échelle mondiale, il est préférable que vous approvisionniez votre trafic en fonction des régions avec votre conception architecturale, y compris une géo-distribution de vos nœuds de base de données. Pour y parvenir, un déploiement multi-AZ et multi-région ou multi-cloud/multi-centre de données est recommandé et réalisable. Cela empêche le cluster de tomber en panne ou un dysfonctionnement du cluster en raison d'un manque de quorum.
Pour vous aider davantage dans votre conception d'évolutivité, GCP dispose également d'un autoscaler que vous pouvez configurer avec un groupe d'autoscaling. Cela fonctionnera tant que vous aurez créé votre cluster en tant que groupes d'instances gérés. Par exemple, vous pouvez surveiller l'utilisation du processeur ou vous fier aux métriques de Stackdriver définies dans votre règle d'autoscaling. Cela vous permet de provisionner et d'automatiser les instances lorsqu'un certain seuil est atteint, ou de résilier les instances lorsqu'elles reviennent à leur état normal.
Pour un déploiement multirégional ou multicloud, Galera a son propre paramètre appelé gmcast.segment pour lequel vous pouvez le définir au démarrage du serveur. Ce paramètre est conçu pour optimiser la communication entre les nœuds Galera et minimiser la quantité de trafic envoyé entre les segments du réseau. Cela inclut le relais du jeu d'écriture et la sélection des donneurs IST et SST. Ce type de configuration vous permet de déployer plusieurs nœuds dans différentes régions. En plus de cela, vous pouvez également déployer vos nœuds Galera sur un routage de fournisseur de cloud différent à partir de GCP, AWS, Microsoft Azure ou sur site.
Nous vous recommandons de consulter notre blog Multiple Data Center Setups Using Galera Cluster for MySQL or MariaDB and Zero Downtime Network Migration With MySQL Galera Cluster Using Relay Node pour recueillir plus d'informations sur la façon d'implémenter ces types de déploiements.
Performances de la base de données du cluster Galera sur GCP
Étant donné qu'il n'y a pas de prise en charge disponible pour Galera dans GCP, vos choix dépendent des exigences et de la conception du trafic de votre application et des demandes de ressources. Pour les requêtes qui consomment beaucoup de mémoire, vous pouvez commencer avec l'instance n1-highmem-2. Les instances à processeur élevé (famille n1-highcpu*) peuvent convenir s'il s'agit d'une base de données à transactions élevées ou pour les applications de jeu.
Choisir le bon stockage et les IOPS requises pour votre volume de base de données est un must. Généralement, le disque persistant basé sur SSD est votre choix ici. Cela dépend du volume de trafic requis, vous devrez peut-être vérifier les options de stockage GCP afin de déterminer la bonne taille pour votre application.
Nous vous recommandons également de consulter et de lire notre blog Comment améliorer les performances de Galera Cluster pour MySQL ou MariaDB pour en savoir plus sur l'optimisation de votre Galera Cluster.
Sauvegardes de données Galera sur GCP
Non seulement vos données MySQL Galera doivent être sauvegardées, mais vous devez également sauvegarder l'ensemble du niveau qui comprend votre application de base de données. Cela inclut les fichiers journaux (logiques ou binaires), les fichiers externes, les fichiers temporaires, les fichiers de vidage, etc. Google vous recommande de toujours créer un instantané de vos volumes de disques persistants qui sont utilisés par vos instances GCE. Vous pouvez facilement créer et planifier des instantanés. Les instantanés GCP sont stockés dans Cloud Storage et vous pouvez sélectionner l'emplacement ou la région de votre choix où la sauvegarde sera située. Vous pouvez également configurer un calendrier pour vos instantanés et définir une politique de conservation des instantanés.
Vous pouvez également utiliser des services externes tels que ClusterControl, qui vous fournit à la fois des solutions de surveillance et de sauvegarde. Consultez ceci si vous voulez en savoir plus.
Surveillance de la base de données du cluster Galera sur GCP
GCP n'offre pas de surveillance de base de données lors de l'utilisation de GCE. La surveillance de l'état de votre instance peut être effectuée via Stackdriver. Pour la base de données, cependant, vous devrez saisir un outil de surveillance externe doté de métriques de base de données avancées et très granulaires. Vous pouvez choisir parmi de nombreux choix, tels que PMM de Percona, DataDog, Idera, VividCortex ou notre propre ClusterControl (la surveillance est GRATUITE avec la communauté ClusterControl.)
Sécurité de la base de données du cluster Galera sur GCP
Comme indiqué dans notre blog précédent, vous pouvez adopter la même approche pour sécuriser votre base de données dans le cloud public. Dans GCP, vous pouvez configurer un sous-réseau privé, des règles de pare-feu pour autoriser uniquement les ports requis pour l'exécution de Galera (en particulier les ports 3306, 4444, 4567, 4568). Vous pouvez utiliser la passerelle NAT ou configurer un hôte bastion pour accéder à vos nœuds de base de données privés. Lorsque ces nœuds sont encapsulés, ils ne sont pas accessibles depuis l'extérieur des locaux de GCP. Vous pouvez lire notre blog précédent Déploiement de la réplication MySQL multicloud sécurisée sur AWS et GCP avec VPN sur la façon dont nous avons configuré cela.
En plus de cela, vous pouvez sécuriser vos données en transit en utilisant une connexion TLS/SSL ou en chiffrant vos données lorsqu'elles sont au repos. Si vous utilisez ClusterControl, le déploiement d'un transfert de données sécurisé est simple et facile. Vous pouvez consulter notre blog SSL Key Management and Encryption of MySQL Data in Transit si vous souhaitez essayer. Pour les données au repos, vous pouvez suivre la discussion que j'ai mentionnée plus tôt dans la section Chiffrement de ce blog.
Dépannage du cluster Galera
GCP propose Stackdriver Logging que vous pouvez exploiter pour répondre aux exigences d'observabilité, de surveillance et de notification. L'avantage de Stackdriver Logging est qu'il offre une intégration avec AWS. Avec lui, vous pouvez capturer les événements de manière sélective, puis déclencher une alerte en fonction de cet événement. Cela peut vous tenir au courant de certains problèmes qui peuvent survenir et vous aider lors du dépannage. GCP dispose également de journaux d'audit cloud qui vous fournissent des informations plus traçables depuis l'intérieur de l'environnement GCP, à partir de l'activité d'administration, de l'accès aux données et des événements système.
Si vous utilisez ClusterControl, accédez à Journaux -> Journaux système et vous pourrez parcourir les journaux d'erreurs capturés provenant du nœud MySQL Galera lui-même. En dehors de cela, ClusterControl fournit une surveillance en temps réel qui amplifie votre système d'alarme et de notification en cas d'urgence ou si votre ou vos nœuds MySQL Galera sont en panne.
Conclusion
Google Cloud Platform offre une grande variété de services efficaces et puissants que vous pouvez exploiter. Il y a en effet des avantages et des inconvénients pour chacune des plates-formes de cloud public, mais GCP prouve qu'AWS n'a pas de verrou sur le cloud.
Il est intéressant de noter que de grandes entreprises telles que Vimeo migrent vers GCP en venant sur site et qu'elles ont obtenu des résultats intéressants dans leur pile technologique. Bloomberg est également satisfait de GCP et utilise Percona XtraDB Cluster (une variante de Galera). Dites-nous ce que vous pensez de l'utilisation de GCP pour les configurations MySQL Galera dans les commentaires ci-dessous.